jmeter实现Http接口测试介绍

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jmeter实现Http接口测试介绍相关的知识,希望对你有一定的参考价值。

 

本篇内容主要侧重实战,以我们公司主要应用的Http接口为核心讲解。

1、打开Jmeter

 技术分享
 

主界面介绍:

JMeter的主界面主要分为状态栏、菜单栏、工具栏、树形标签栏和内容栏

状态栏:主要显示JMeter的主版本和release版本。

菜单栏:全部的功能的都包含在菜单栏中。

工具栏:工具栏中的按钮在菜单栏都可以找到,工具栏就相当于菜单栏常用功能的快捷按钮。

树形标签栏:树形标签栏通常用来显示测试用例相关的标签。

内容栏:配合树形标签栏显示,树形标签中点击哪个标签,内容栏中就显示相应的内容和操作。

2、并发请求模拟  -----  线程组

    性能测试主要为了模拟大量并发请求。JMeter使用线程组模拟同时有多个用户并发访问的场景。

在“测试计划”上点击鼠标右键-->添加-->threads(Users)–>线程组,添加测试场景设置组件,接口测试中一般设置为1个“线程数”,根据测试数据的个数设定“循环次数”。

技术分享

 线程组界面介绍:

技术分享

  •  名称:可以给线程组设置一个个性化的命名
  •  注释:可以对线程组添加备注以标记
  •  在取样器错误后要执行的动作:就是在错误之后要如何执行,可选继续执行后续的、停止执行等。
  •  线程数:就是需要设置多少线程执行测试。
  •  Ramp-up Period (in Seconds):用于告知JMeter 要在多长时间内建立全部的线程。默认值是0。如果未指定ramp-up period ,也就是说ramp-up period 为零, JMeter 将立即建立所有线程。假设ramp-up period 设置成T 秒, 全部线程数设置成N个, JMeter 将每隔T/N秒建立一个线程。
  •  循环次数:就是决定一个线程要跑多少次测试。
  •  Delay Thread creation until needed:直到需要时延迟线程的创建
  •  调度器:选中之后可以配置启动时间,立即或者预定的时间

3、测试场景环境参数设置 ———  “Http请求默认值”组件

    当被测系统有唯一的访问域名和端口时,这个组件很好用。

同时更改访问域名和端口时,统一配置数据

技术分享

“HTTP 请求默认值”组件配置页面

技术分享

 

4、 添加“HTTP信息头管理器”组件

请求头信息常常需要包含token、session、type等信息。

技术分享

 

5、设置“HTTP信息头管理器”

设置默认请求头,可以添加Authorization绕过登录验证;

设置Content-Type指定请求内容类型;

设置charset指定请求字符集等;

技术分享

 

6、在“线程组”里添加“HTTP 请求”的Sampler

技术分享

 

7、设置“HTTP请求”

在HTTP请求设置页面,录入被测接口的详细信息,包括请求路径,对应的请求方法,以及随请求一起发送的参数列表

 技术分享

8、添加检查点:在被测接口对应的“HTTP 请求”上,添加“响应断言”

技术分享

 

9、设置检查点

在设置页面上添加对相应结果的正则表达式存在性判断即可。

技术分享

10、添加监听器

方便查看运行后的结果

技术分享

11、查看“聚合报告”

技术分享

  • Label: 定义的HTTP请求名称
  • Samples: 表示这次测试中一共发出了多少个请求
  • Average: 访问页面的平均响应时间
  • Median:访问页面的中位数响应时间
  • 90% Line:访问页面的90%响应时间
  • 95% Line:访问页面的95%响应时间
  • 99% Line:访问页面的99%响应时间
  • Min: 访问页面的最小响应时间
  • Max: 访问页面的最大响应时间
  • Error%: 错误的请求的数量/请求的总数
  • Throughput:每秒完成的请求数
  • KB/Sec: 每秒从服务器端接收到的数据量

关于90% Line:

一组数由小到大进行排列,找到他的第90%个数(假如是12),那么这个数组中有90%的数将小于等于12 。

用在性能测试的响应时间也将非常有意义,也就是90%请求响应时间不会超过12 秒。

 

上述步骤完成了一个简单测试案例的创建,复杂测试案例均在此基础上扩展完成。

使用Jmeter工具开发的接口测试案例,一个子系统建议放在同一个 “测试计划”中,流程测试可以通过“线程组”来区分,这样也便于设定不同的测试数据个数。

比较独立的接口,可以统一放在一个线程组内,顺序完成测试。  

 

 流程性接口的测试:如果要测试的接口可以组成一个流程,只需要顺序添加多个“HTTP 请求”的Sampler,各请求之间可以提取需要在上下文传递的数据作为参数,以保证流程中数据的一致性。


以上是关于jmeter实现Http接口测试介绍的主要内容,如果未能解决你的问题,请参考以下文章

Python自动化测试-Jmeter做接口测试实际案例分享

jmeter 接口测试简介

从0开始Jmeter接口测试实战

jmeter实现webservice接口测试

接口测试 总结

本文主要针对http接口进行测试,使用Jmeter工具实现