面试题之接口测试
目录
- 1、什么是接口测试?
- 2、为什么要做接口测试?
- 3、为什么要进行抓包测试?
- 4、怎么区分bug是前台还是后台的bug?
- 5、没有接口文档如何做接口测试?
- 6、GET请求和POST请求的区别?
- 7、常用的接口测试工具?抓包工具?
- 8、常见的状态码?
- 9、HTTP和HTTPS的区别?
1、什么是接口测试?
1、所谓接口测试就是通过测试不同情况下的入参与之相应的出参信息来判断接口是否符合或满足相应的功能性、安全性要求。
2、软件对外提供的一个功能,(一个门,一个口)写入所需要的参数,调用软件里的方法,检验返回的结果是否是我们期望的。
2、为什么要做接口测试?
1、可以发现页面上发现不了的bug
2、检测系统异常处理的能力(发送错误的数据看会有什么影响)
3、检查系统的安全性、稳定性(模块与模块之间传输数据是否安全、传输是否稳定)
4、前端和后端都校验好了(代码在哪都能使用)
3、为什么要进行抓包测试?
1、有些公司没有标准的接口文档,测试人员就需要抓包来获取接口信息
2、抓包可以看到请求的的整个过程以及响应过程,可以通过抓包来分辨bug是前台还是后台bug
3、通过抓包可以看是否有敏感信息泄露(用户的密码和个人账号信息)、检查系统的安全性
4、抓包可以拦截请求,修改请求数据,查看请求响应数据等
4、怎么区分bug是前台还是后台的bug?
一般我会使用Fiddler抓包工具,去获取前后台的数据交互过程
1、检查发送的请求是否有问题,请求的URL是否错误,如果是URL或者是入参有问题,那就是前端bug
2、如果请求没有问题,查看后台返回的数据是否有问题
(1)状态码以5开头的基本都是后台的问题
(2)状态码以2开头的,但是响应数据与预期不一致,也是后台的问题
3、如果前端URL和入参没有问题,后台的响应数据也没有问题,那可能就是前端代码转换有问题,是前端bug
5、没有接口文档如何做接口测试?
1、先了解是否有设计文档,只是开发没发过来,或者是否有其他的参考文档。若无,则自行去咨询开发,整理接口测试规则,再将整理好的文档用邮件发送评审或开发评审
2、使用Postman工具调试接口,看接口是否是通的,如果接口没有问题,再用Fiddler等进行抓包,把需要的信息抓出来,根据抓取的数据设计测试用例
3、执行测试用例,用Postman或Jmeter把多个接口按业务流程测试
4、验证结果。如:GET请求参数,POST请求的body正文内容是否有正确的返回数据等
5、提交BUG,跟进BUG修改,编写报告
6、GET请求和POST请求的区别?
1、GET是明文提交,key和value是跟在接口地址后面的,数据会显示出来,不安全;POST提交数据在表单里面,是隐藏起来的,相对GET来说,更加安全一点(但是也可以通过抓包工具获取信息)
2、GET提交数据时,内容有字数限制;POST在表单里面提交数据,没有字数限制
3、GET是获取数据,POST是发送数据
7、常用的接口测试工具?抓包工具?
接口测试工具:Postman、Jmeter
抓包工具:Fiddler、Charles
8、常见的状态码?
以2开头:
200 -- 请求成功,服务器也返回了响应信息
以3开头:请求重定向了,请求的位置转移了
301 -- 永久性定向,请求的资源被分配了新的URL地址,而且以后请求的时候都是用新的URL地址
302 -- 临时性定向,请求的资源被分配了新的URL地址,这次访问是这个新的URL地址,下次访问可能就是另外的URL地址
303 -- 临时性定向,请求的资源被分配了新的URL地址,请求的时候使用GET方法定向获取资源(与302的区别就是303要求客户端使用GET请求方式)
以4开头:
401 -- 表示访问的页面没有授权
403 -- 表示没有权限访问这个页面
404 -- 表示没有这个页面,服务器上无法找到请求的资源(也可以是服务器拒绝请求但是不想给拒绝原因)
以5开头:
500 -- 表示服务器内部异常
503 -- 表示服务器正处于超负载或者正在进行停机维护,无法处理请求
504 -- 表示服务器请求超时,没有返回结果
9、HTTP和HTTPS的区别?
1、https需要ca申请证书,并且大多数证书都是收费的
2、http以明文的形式传输信息,https则是具有安全性的ssl加密传输协议
3、http使用80或者8080端口,https使用的是443端口
4、http的连接简单,无状态,这次请求结束了,下次请求重新开通道;https是一直开通的;https比http安全(原因:https是在http的基础上加上ssl层,构建出来的可以进行加密传输,身份认证的网络协议)