开发接口测试案例的整体方案:
1、分析测试需求,并拿到开发提供的接口说明文档;
2、从接口说明文档中整理出接口测试案例,要包括详细的入参和出参数据以及明确的格式和检查点
3、和开发一起,进行接口case评审
4、结合数据库,准备入参和出参数据,并整理成csv格式的文件
5、结合接口测试案例文档和csv格式的数据文档,做接口测试案例的自动化案例开发
应用场景:
1、自动化测试(接口层)
技术点:HTTP相关设置+参数化+断言+关联+简单控制器(分组)+查看结果树
关联:通过Json控件或正则表达式获取
(1)测试前置、开发自测:一个新的接口,自动化case开发完成后,直接发给接口对应的开发,安排在开发本地环境执行,一旦开发确认完成接口开发,就开始执行接口测试案例,基本上可以实时拿到测试结果,方便开发快速做出判断。
【开发本地运行的方式就是打开JMeter工具,导入JMX文件,开始执行可。】
(2)回归测试:开发本地测试通过后,或整个需求手工测试通过后,把自动化的接口case做分类整理,挑选出需要回归测试的case,在持续集成环境重新准备测试数据,并把案例纳入到持续集成的job中来,这些用于回归的接口测试案例需要配置到持续集成平台自动运行
2、性能测试(接口层)
技术点:同上,但有一些区别
(1)线程组建议替换为jp@gc - Stepping Thread Group,线程组不能满足线性增长
- this group will start N threads:相当于LR中的并发数
- First,wait for N seconds:启动第一个线程之前,需要等待N秒
- Then start N threads:设置最开始启动N个线程
- Next,add N1 threads every N2 seconds,using ramp-up N3 seconds:在N3秒内启动N1个线程,启动的策略为每隔N2秒启动一个
- Then hold load for N seconds:并发数全部达到后再运行多久
- Finally,stop N1 threads every N2 seconds:每隔N2秒停止N1个
(2)可以加事务控制器
(3)查看结果树替换为聚合报告或类似的报告,如果还是想看查看结果树记得勾选仅日志错误(查看结果树打印的日志比较多,会影响性能)
(4)造数据
总结:
一个子系统建议放在同一个 “测试计划”中,流程测试可以通过“线程组”来区分,这样也便于设定不同的测试数据个数。比较独立的接口,可以统一放在一个线程组内,顺序完成测试。
流程性接口的测试:
如果要测试的接口可以组成一个流程,只需要顺序添加多个“HTTP 请求”的Sampler,各请求之间可以提取需要在上下文传递的数据作为参数,以保证流程中数据的一致性
注:JMeter 不会自动给出它是否正在运行任何显示。
如果JMeter运行,一些监听器使它变明显,唯一确定的方法是检查【Run】菜单。如果【Start】不可用,【Stop】可用,证明JMeter正在运行你的测试计划(或者,至少, 它认为它是)