接口测试是工作中非常重要的部分,也是能力提升过程中必须接触的一部分,针对接口测试和测试工具postman进行一次总结,若有异议请留言,万分感谢!
1、简介
接口测试与协议知识必不可分,协议部分不做详解。仅针对接口测试和工具的使用进行说明。
接口测试的介绍:
测试策略:
实际测试过程中,业务流程测试是非常重要的部分,需要考虑的地方是与业务息息相关的:
接口用例的编写与功能测试差不多,要素包括:用例编号、用例名、接口url、请求类型、请求头、请求参数、预置条件、返回结果等,与接口自动化接口用例如出一辙:
单纯对接口进行测试的时候,postman是非常不错的工具,可以实现很多测试方式:https://www.cnblogs.com/ziweiqi/p/13065900.html
一、postman---Tests断言
-----断言是用来验证接口是否实现某一功能的利器,postman中自带了很多断言的方式,点击Tests后,窗口右侧即是提供的断言方法,点击后,有针对性的修改即可:
参考:https://www.cnblogs.com/suim1218/p/8931159.html
二、接口依赖
-----A接口的返回结果中,某一参数作为接口B入参;也需要使用到Tests,提取A接口的返回参数设置为环境变量,并配置到environment中,代码中的变量用 {{....}}表示,接口B的入参会从environment中获取入参值,从而实现上下游传参问题
https://www.cnblogs.com/mo-nian/p/13830973.html https://huajiakeji.com/utilities/2019-01/1771.html
- -----实现接口依赖的过程,需要注意几个问题:1、环境变量的选择和设置:1)参数变量设置:https://segmentfault.com/a/1190000023135024 https://www.cnblogs.com/yoyoketang/p/14743039.html 一般我们将参数设置为environment变量,因为global全局变量在使用过程中容易出问题;
2)测试接口一般分为微服务接口和jetty接口,区别在于域名不同,为了方便呢,我们同城将域名设置为环境变量--environment,测试不同类型的接口时,选择不同的环境即可https://segmentfault.com/a/1190000023121162
2、当上下游接口涉及的比较多时,存在多个接口对同一个接口数据依赖的问题,全部要求必须先执行完接口A,B和C接口才能执行的问题:如,在执行接口B之前,必须先执行一次接口A,也就意味着批量测试接口时,必须把接口A放在接口B前面。
另,当又出现一个接口C,负责更新地址信息,这个接口放在接口B后面,意味着,接口A生成地址流水号后,紧接着就被接口B删掉了,此时接口C再调用时就会提示该地址流水号不存在。此时,引出Pre-request Script标签使用方法https://huajiakeji.com/utilities/2019-01/1771.html
三、Pre-request Script发送请求
-----需要用到pm.sendrequest方法https://segmentfault.com/a/1190000023337229 https://huajiakeji.com/utilities/2019-01/1771.html https://www.cnblogs.com/yoyoketang/p/14750473.html
四、postman---数据驱动
-----执行测试用例的过程,本质上是执行的不同数据,不同输入输出的过程。所以,在计算机中,我们可以使用预先设定好的数据文件,来执行测试用例,实现覆盖测试点。
https://segmentfault.com/a/1190000023139067 https://blog.csdn.net/itcast_cn/article/details/102967794 https://www.cnblogs.com/mini-monkey/p/12919124.html
Runner ->选择接口 -> 设置循环次数 ->Data处选择测试数据文件 ->点击 ”Run 接口测试集“运行接口
备注:添加测试数据文件后,点击Preview可预览测试数据
四、postman---集合conllection以及执行顺序控制
-------当我们执行的接口非常多的时候,可以保存到集合中,且存放再一个文件夹folder中,执行的时候,可以批量执行 https://www.cnblogs.com/yoyoketang/p/14744541.html
------控制接口执行顺序:1)再collection中,接口的排序就是执行顺序,从上向下执行,且某一个接口是否执行也可以通过点击对勾的部分进行选择https://www.cnblogs.com/gungunaaa/p/13064264.html;
2)再Tests中通过代码控制,想在下一个执行哪个接口https://segmentfault.com/a/1190000023373205 ttps://www.cnblogs.com/superhin/p/11454832.html