Jmeter接口压测示例
Apache JMeter™
是 Apache
组织开发的一款开源软件,是典型的纯 Java
开发的应用程序,可以在不同平台比如Windows
、Linux
或macOS
系统上进行软件测试。JMeter
主要用于应用程序的功能负载测试以度量软件的性能,也可以用于其他类型的测试比如接口测试,API测试
等。
下载地址: https://jmeter.apache.org/download_jmeter.cgi
详解jmeter线程组
Threads (Users)线程 用户
- setup thread group 常规线程组前置操作 例如测试前的登录,注册等操作
- teardown thread group 常规线程组后置操作 例如 退出登录进行操作
- thread group(线程组) 常规线程组 正常接口测试 我们就以这个来演示
thread group基本设置
- 线程数
线程数可以理解为并发数,他们互不干扰.
- ramp-up period
设置启动所有线程所需的时间,我们设置了100个线程, 并且ramp-up period是1秒, 那么Jmeter
使用1秒启动100个线程,每个线程之间相隔时间 = 1 / 100
这个值设置比较小,线程数又设置这么大,对系统负载是比较大的,我们可以根据机器调整一下
- 循环次数
设置线程组在结束前每个线程的循环次数,如果设置为1,那么JMeter在停止前只执行测试计划一次,循环开始执行时间几乎与第一遍执行时间并行
http请求设置
请求响应断言
对接口进行断言,如果是正常API
的话用JSON
来断言,这里我就直接用响应码断言
同步定时器 并发测试
同步定时器是jmeter
中一个比较重要的定时器,同步定时器,相当于一个储蓄池,累积一定的请求,当在规定的时间内达到一定的线程数量,这些线程会在同一个时间点一起并发,可以用来做大数据量的并发请求。
最近公司开发了一个转账功能,需要最转账接口做一个并发测试,测试账户余额剩下10的时候,同时发起两个转账请求,请求数额均为10,测试能不能发送成功。自己的话很难做并发测试,我们开发也可以使用这种工具对一些必要的接口进行测试
- 模拟用户组数量
每次释放的线程数量。如果设置为0,等同于设置为线程租中的线程数量。如果设置为10,即集合10个线程等待,同时发送请求。设置此数量不能超过线程组中的线程数量。
- 超时时间以毫秒为单位
如果设置为0,Timer
将会等待线程数达到了模拟用户组数量中设置的值才释放。如果一直没有达到,则会一直等待,除非手动关闭执行。如果大于0,那么如果超过超时时间中设置的最大等待时间(毫秒为单位)后还没达到 模拟用户组数量 中设置的值,Timer将不再等待,释放已到达的线程。默认为0
测试结果查看