我们在面试时接口测试流程是必问的。
在回答时我们要记得结合自己的项目来回答就可以了。
接口测试我们是在xx项目做的,主要有xx接口,xx接口等
1.首先是从开发那里拿到API接口文档,了解接口业务、包括接口地址、接口方式、入参、出参、token鉴权,返回格式等信息。
2.然后使用postman或jmeter工具执行接口测试,一般使用Jmeter的步骤是这样的:
首先建立一个线程组;
然后就是新建一个HTTP请求默认值。(输入接口服务器IP和端口);
再新建很多HTTP请求,一个请求一个用例。(输入接口路径,询问方式,参数等);
然后创建断言和查看结果数据。
3.最后调试并执行用力,最后编写接口测试报告。
4.其实我们做接口的时候也碰到过很多的问题,都是自己独立解决的,比如返回值乱码(修改jmeter的配置文件为UTF-8编码方式),比如需要登陆后才能取得token鉴权编码并且这个鉴权码在下面的请求中需要用到(使用正则表达式提取器提取token的值等等。0
对于这个问题我们可以从接口的组成来进行分析,一个接口主要有请求地址、请求方法、请求参数,其中请求地址和方法都是固定的,
所以我们主要应该从请求参数入手,主要可以从以下几个方面考虑:
1、参数字段个数:必填字段和可选填
2、参数合法性:输入输出合法、非法参数
3、边界:请求参数边界值等
4、容错能力:大容量数据、频繁请求、重复请求(如:订单)、异常网络等的处理
5、响应数据校验:断言、数据提取传递到下一级接口
6、逻辑校验:如两个请求的接口有严格的先后顺序,需要测试调转顺序的情况
7、性能:对接口模拟并发测试,逐步加压,分析瓶颈点
8、安全性:构造恶意的字符请求,如:SQL注入、XSS、敏感信息、业务逻辑(如:跳过某些关键步骤;未经验证操纵敏感数据)
这个问题应该是每一个做接口测试人员都能回答的问题,但是要注意说到重点:
1、get方法的参数是在URL中,post的参数是在body中 (本质区别)
2、get的参数是不加密的,post的是加密的
3、get方法的安全性没post的高
4、get方法能被缓存而post不可以
5、GET请求在URL中传送的参数是有长度限制的,而POST没有。
当然还有其他的很多区别,但是回答这几个主要的就差不多了。
抓包工具有很多种,但是我们技术人员最常用的不外乎就是Fiddler、青花瓷、F12这几种,所以选一个你自己最常用的就可以了。
当然面试官接下来的问题多半会问你为什么会用抓包工具?公司不是有接口文档吗?
对于中大型公司里面的开发人员都会编写好有完整的接口文档,那我们做接口测试的时候对照接口文档不就可以了吗?
所以对于还没有真正接口项目经验的小伙伴就不知所措了。那么我们测试人员抓包其实一般都是为了验证我们测试的数据在接口传递过程中是否正常或者为了判断某个问题是前端问题还是后端问题。
这是很多面试官都会问到的问题,而且在工作中为了防止前端开发和后端开发人员相互踢皮球也是我们测试人员必须要掌握的知识点。
其实很容易判断,我们可以先抓包看请求报文,对着接口文档,看请求报文有没问题,有问题就是前端发的数据不对,请求报文没问题,那就看返回报文,返回的数据不对,那就是后端开发的问题,这样我们测试人员才能有自己的判断,而不是任由开发相互扯皮。
每个公司做接口测试所使用的工具都是不一样的,有的会使用postman来做一些简单的单接口测试,但是对于一定数量的接口测试postman就很难胜任了,所以这时候不少公司就会选择开源的jmeter来做,因为脚本也相对比较好管理维护也方便。
但是对于不少公司来说jmeter也满足不了自己的要求,这时候就会有测试人员自己编写测试框架(也就是测试开发),然后通过编码自己设计完成自己公司需要的功能。
很多小伙伴都会说我会使用unittest、pytest再或者testNG,其实这些框架对公司来说还不能满足要求。
应该说我们的框架是在unittest或者pytest框架之上进行二次封装集成了邮件系统和测试报告以及日志、重跑等功能,然后再说这样设计的优势,这样就会让人觉得这人是懂具体的框架实现过程的。
这要看你们公司是用的什么工具来做接口测试的了,假如是postman和jmeter那么用例就是直接在它们的请求文件里面,但是假如是有自己的框架那么用例一般都在表格或者表里面的。
如果你想干出一番事业,绝不能半途而废!在奋斗的过程中也许布满荆棘,但是请相信自己,你的辛勤劳动将会有所回报的!
决定今天的不是今天,而是昨天对人生的态度;决定明天的不是明天,而是今天对事业的作为。我们的今天由过去决定,我们的明天由今天决定!
不要责怪自己的轻狂,那是年轻最明亮的标记;不要自卑自己的浅薄,经过岁月的打磨,你会得到满载的智慧和经验。