是否满足前提条件:针对是否满足前置条件(假设有n个条件),设计0-n条用例(逆向用例)
例如:查询已发布文章详情,文章id存在且状态为已发布(前提条件)
是否携带默认参数:带默认参数的都不填参,不传参,必填项都正确填写且存在的常规参数(正向参数)
还要注意传其他正确参数的情况,例如有以参数默认为0,当传1(存在且正确)时,应可以传
业务规则,功能需求:根据实际情况,结合接口参数说明,分别设计正向用例及逆向用例
参数是非必填,多参数是否必填:每一个必填参数都设计不填参,不传参的逆向用例
多参数是否必填时设计参数组合测试
参数之间是否存在关联:有些参数可能会存在相互制约关系,例如:当选择推送为标签用户时会传标签用户名,当为全部用户时,标签
用户名就不能传(无需传)
参数类型及长度:运用边界值及等价类设计正向及逆向用例
异常情况测试:针对post接口,做幂等(重复提交)验证,并发测试
安全测试:敏感信息加密测试(前后端数据加密传输,日志信息加密),SQL注入
接口测试怎么测?
测试的时候我先冒烟,看这个接口通不通,然后我们再进行接口的功能测试。一般我会采用等价类、边界值、场景分析、等基本方法去考虑,比如说:参数的必填、参数的组合、测试的类型和长度,以及参数为空、为空格、为特殊字符的校验,同时我们不仅要看接口的请求地址、请求方式、请求参数、和响应结果是否正确、还有关注业务逻辑的校验,要考虑接口上下游的数据流,以及请求幂等(幂等:防止重复提交数据),然后还有一些新增,更新的接口还有考虑数据库的落地情况。查询接口要考虑数据返回的是否完整,并与数据库进行对比。
针对一些特殊的接口:比如说绕过验证测试,(比如说提交订单时,在传递商品价格参数时,修改商品价格,就要看后端有没有验证了。或者我支付时,抓个包,修改订单金额,如果能以我修改后的金额支付,那么这个接口的问题就严重了)。还有权限验证参数,(就是某些功能只有特殊权限的用户才能操作使用,那我传递一个普通用户的参数能否进行操作),以及参数是否加密测试(比如我们在做一下登录操作时,要看一些登录信息是否加密。还有身份证号,银行卡号,等等,都应该是加密的。)
数据脱敏;就是脱离敏感数据,加密的意思。