接口测试总结
一:接口测试思想
接口测试:通过向服务器端发送请求,获取响应与预期结果做对比的一种服务端黑盒测试过程。
解释:接口就是将浏览器,客户端,手机端,或者服务器调用另一个服务器的请求抽离出来测试,模拟这些请求来测试服务器的过程。
目的:找到服务端与接口文档不符的请求处理或返回响应;找到服务端对不同情况下参数的处理情况,异常处理情况;
测试思路(以下测试思想可根据实际接口服务的重要性来进行使用):
(1):根据测试文档,发送请求,得到预期响应(关注必填与非必填选项的测试,当选填是选填时测试未填写时候响应是否合理)。
(2):测试接口通过参数的多种调用方式,查看返回结果是否一致。
(3):对请求参数做边界值测试和错误推断,测试服务端能否正常处理或处理相应的异常。
(4):若接口为底层核心服务,测试徐覆盖每种返回的情况。根据接口文档定义的响应返回code,做覆盖性测试。
(5):核心的增删改操作需要查看数据库去验证,或者使用查询接口进行验证。
二:接口测试工具选择
根据接口协议选择合适的接口,调试确认正向用例跑通。
2.1:Jmeter总结归纳
1.注意熟悉接口协议类型,选择合适的sampler, 若接口具有某些特殊的信息相应的设置jmeter的选项。
2.对于web项目http请求,cookie管理器和合适的信息头管理器很重要,
3.正则提取器:
注意:正则表达式的设计,转义的使用,注意模板的使用$1$$1$,和匹配数字的使用0为随机,1为第一个,-1为全部提取。当选择-1时 需用变量_1,变量_2,等来表示第一个第二个,同时要注意变量_g0,变量_g1的含义和区别。这些适合用debugsampler去调试。
4.函数的使用:合适的使用表达式对参数进行构造,比如时间戳,比如大小写转换,随机数等等,可以为jmeter添加常用函数。
5.当没有对应的函数,可以自己使用beanshell来处理,思想,使用Java脚本对变量进行处理。可以调用外部的java 文件,class文件和jar包文件。注意两点
这两点博客上大都没有提出来,甚至是错误的。
(1):beanshell 不支持\\和\,所以路径需写成source(“d:/abc.java”)
(2)vars.put(“name”,”${username}”);${username}外边需加上双引号。
6 https请求的实现
首先需要确认访问的网站pc浏览器端是否需要证书。若不需要证明证书在服务端。此时只需要
若需要证书,将证书导入jmeter,具体方法详细百度。
文件上传的http post请求需勾选
三:推荐的测试流程
1.熟悉接口文档,了解测试范围,测试点,设计测试用例。
2.使用Linux,unix ,mac自带的curl命令确认接口正向(冒烟测试)通过,若不通过直接返回开发人员。(不能用工具做这件事由于工具的选项太多很难判断是脚本不正确还是接口本身不正确。)
如:Curl -F name=value http://host:port/road
详细curl命令:http://www.cnblogs.com/duhuo/p/5695256.html
3.确认接口可以跑通后,将接口录制到jmeter,注意jmeter的选项是否正确。进行测试分析归档。有利于回归测试和测试结果及报告的生成。
4.测试完成过,修改脚本添加断言,方便回归测试。这里会用到参数化。
5.测试完成生成测试报告。
6.将需要做性能的脚本简化提取,添加相关性能组件,为可能的压力测试做准备。