飞道的博客

Jmeter接口测试实例

242人阅读  评论(0)

一、关于Jmeter接口测试

选择使用Jmeter的原因:与其他工具或者框架的比对 - Postman 和 HttpRunner

  • Jmeter本身适合做性能压测,进行接口测试时能够在测试计划中编写测试场景并测试,也可以对特定场景进行性能压测。相对于其他工具来说可能会比较单一
  • Jmeter适合复杂的场景的接口测试,这个功能有点类似HttpRunner框架的自写功能方法。可以利用Java来实现某种场景下的接口功能验证。例如接口的加解密验签操作,支持jar包构建BeanShell语法支持的形式进行(对标HttpRunner,编写py功能类实现对应的加解密验签的功能)
  • Jmeter中可以利用Badboy插件进行录制及生成相应的jmx脚本文件(对标Selenium的插件录制),但是对于这种的录制脚本非常可能出现录制不完全不全面的场景。不建议使用
  • 支持单接口的多线程并发测试,支持一个测试计划下多控制器的请求同时进行,支持接口场景依赖功能(例如进行 创建、调用、取消)

二、关于Jmeter接口测试流程

1、新建一个测试计划,这里的测试计划可以根据项目(或者项目模块进行拆解),我们这边使用模块拆解的形式进行。新建完成之后,输入测试计划名称:XXX_XXX

2、在测试计划的基础上添加线程组。比较常用的线程组为下图三个,其中可根据场景进行线程组的选择(压测场景下一般会选择后俩个进行阶梯式或波浪式),一般的接口suit场景测试可以使用简单线程组(类似使用Postman)

3、设置用户自定义常量(这个一般用于全局的参数化,当接口编写完成后,如果需要变更参数-例如切换环境或者地址时不需要将全部的Http请求进行逐一变更),这个在Postman也有对对应的地址进行全局设置的地方-两个工具异曲同工

  • 我们可以看到,下面的图一为添加变量的地方。图二是Postman在使用时进行的全局地址变量的封装及使用

-  功能类似  -  

  • 下图为Jmeter设置定义变量及变量的使用方法。一般我们会将接口测试的全局字段,例如URL,Port等值进行封装,我们在对这些变量进行使用时,可以借用${XX}来进行使用

4、定义HTTP信息头(Jmeter的特色:不定义直接调用时,容易出现接口服务异常的情况 - 不像Postman在进行测试时会自动对齐对应的请求格式)

  • 下图为该配置的地址,添加完成后,add一个变量,通常这个需要定义的字段一般是Content-Type,这个字段需要根据接口进行值对应赋值。
  • https://www.cnblogs.com/fighter007/p/10917026.html (字段说明链接)

5、添加简单控制器。(类似与PostMan的folder用于模块的划分)

6、添加HTTP请求,在对应的请求内填写接口名称,地址参数,设置POST/GET请求及参数(这里的提供POST的JSON请求格式,及GET的请求参数格式)

7、添加响应断言(Response Assertion)

  • 一般的,我们对接口进行测试调试时会需要对接口的响应进行断言。比如接口的响应返回code = A1000时表示接口调用成功。这个地方可以通过设置响应文件包含该字段来判断接口调用是否正常

8、添加正则表达式提取器(这个东西比较适用与联动接口。类如接口的创建/取消/回调等,会基于创建的返回参数来做后续的取消或者回调)

  • 这个地方介绍简单的正则取值方法:首先添加一个正则取样器,填入名称(这个名称是后续要引用的字段),表达式:根据返回结果例如需要提取"erpOrder":"SP001256889933025",这个返回值,表达式写为:"erpOrder":"(.+?)",模版$1$
  • 提取的参数使用方法:${erpOrder} ,erpOrder这个字段是填写的名称。(需要注意,这个引用参数如果是应用在JSON参数体里面时,要求参数为字符串格式时,直接写成:"${erpOrder}")
  • 详细的介绍可以借鉴文章,后面的正则图说明很详细可以尝试:https://www.cnblogs.com/tudou-22/p/9566894.html

9、添加查看结果树(添加用于运行测试计划,并查看对应的结果)

       result : 

三、关于Jmeter的一点小知识

1、Jmeter自带的时间函数:https://blog.csdn.net/zhangtongyuan0909/article/details/80576944

2、Jmeter的插件安装:https://www.cnblogs.com/imyalost/p/7751981.html

3、Jmeter的jmx脚本文件的Mac环境下运行及查看测试脚本报告

时间函数图例:

插件图例:


转载:https://blog.csdn.net/qq_41360177/article/details/116527491
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场