2、绕过身份授权,比如说修改商品信息接口,那必须得是卖家才能修改,那我传一个普通用户,能不能修改成功,我传一个其他的卖家能不能修改成功
3、参数是否加密,比如说我登陆的接口,用户名和密码是不是加密,如果不加密的话,别人拦截到你的请求,就能获取到你的信息了,加密规则是否容易破解。
4、密码安全规则,密码的复杂程度校验
异常验证:
所谓异常验证,也就是我不按照你接口文档上的要求输入参数,来验证接口对异常情况的校验。比如说必填的参数不填,输入整数类型的,传入字符串类型,长度是10的,传11,总之就是你说怎么来,我就不怎么来,其实也就这三种,必传非必传、参数类型、入参长度。
性能测试
接口并发情况,如上面提到的:一个账号,同时(大于2个请求)对最后一个商品下单,或不同账号,对最后一个商品下单接口响应时间,响应时间太长了,肯定需要优化,一般都是毫秒级别。
6. 接口测试经常遇到的bug和问题,如下:
(1)传入参数处理不当,导致程序crash;
(2)类型溢出,导致数据读出和写入不一致;
(3)因对象权限未进行校验,可以访问其他用户敏感信息;
(4)状态处理不当,导致逻辑出现错乱;
(5)逻辑校验不完善,可利用漏洞获取非正当利益等。
7. 接口自动化测试中携带哪些参数
Url: http、https、tcp、ftp
Method: post、get、delete、put
Data: application/json、application/x-www-form-urlencoded、multipart/form-data、text/xml
Headers: content-type、user-agent、cookie、token、authorization
8. 当一个接口出现异常时候,你是如何分析异常的?
答:先抓包,用 fiddler(charles)工具抓包,或者浏览器上 F12 调试工具;APP 上的话,那就 用 Fiddler 做代理,通过手机设置代理去看请求和返回报文; 查看后端日志,如 Linux 系统通过 xhell 连上服务器,查看接口日志,查看是否有报错信息 (命令:tail -f 日志文件);
9. 接口测试中,依赖登录状态的接口如何测试?
依赖登录状态的接口的本质上是在每次发送请求时需要带上 session 或者 cookie才能 发送成功,在构建 POST 请求时添加必要的 session 或者 cookie。
10. 平常用什么工具测接口的?
答:常用 http 协议接口测试工具,如:postman、fiddler、jmeter;webService接口用SoapUI、 jmeter 等。
11. 没有接口文档,如果做接口测试?
用抓包工具把接口抓取处理,然后针对性进行测试;接口中字段信息不清楚的,找时间集中寻求开发解答。(常用抓包工具 Fiddler、Charles 等)
12. 怎么设计接口测试用例?
通常,设计接口测试用例需要考虑以下几个方面:
①是否满足前提条件 :有些接口需要满足前提,才可成功获取数据。常见的,需要登录 Token。
逆向用例:针对是否满足前置条件(假设为 n 个条件),设计 0~n 条用例;
②是否携带默认值参数
正向用例:带默认值的参数都不填写、不传参,必填参数都填写正确且存在的“常规”值, 其他不填写,设计 1 条用例;
③业务规则、功能需求 这里根据时间情况,结合接口参数说明,可能需要设计 N 条正向用例和逆向用例;
④参数是否必填 逆向用例:针对每个必填参数,都设计 1 条参数值为空的逆向用例;
⑤参数之间是否存在关联 有些参数彼此之间存在相互制约的关系;
⑥参数数据类型限制 逆向用例:针对每个参数都设计 1 条参数值类型不符的逆向用例;
⑦参数数据类型自身的数据范围值限制 正向用例:针对所有参数,设计 1 条每个参数的参数值在数据范围内为最大值的正向用例;