jmeter有一个模拟接口请求和响应的sampler,Dummy Sampler是由一个第三方扩展的,就是一个可以在脚本调试、或者JMeter学习期间作为模拟的数据生成器来使用的一个插件。
插件安装百度即可,本文不做过多详细介绍
现有一需求,领导叫你做一个登陆-查询的一个性能测试,并发设置在50个并发一起请求,响应时间在2s以内算合格,但是现在测试环境没有配好,需要自己去模拟接口请求响应
dummy sampler
添加一个模拟登陆接口,创建线程组,右键点击线程组-sampler-jp@gc - Dummy Sampler
image.png
再添加一个模拟查询接口
image.png
登陆接口请求响应的接口返回
{"email":"user1", "admin":"123456"}
{"successful": true, "account_id":"0123456789"}
image.png
查询接口请求响应的前提是需要拿到登陆接口响应的“account_id”的值进行查询,先在登陆接口下添加一个正则表达式提取器,再将提取的变量名用${...}表示
image.pngimage.png
输入查询接口的请求和响应参数,其中查询接口响应的account_id要引用正则表达式提取器的变量名用来获取account_id的值。
登陆接口的请求id
${account_id}
{"account_name": "test", "account_id":"${account_id}", "name":"张三"}
image.png
添加事务控制器,控制整个登陆,查询所花的时间,打勾,将登陆查询接口放在事务控制器下
image.png
image.png
线程组添加Synchronizing Timer
该定时器的作用主要用于,限制并发量达到一定的并发之后执行。好比开闸放水的原理一样,等水积蓄到一定的量时,再开闸放水。
image.png
设置50个并发一起发送
image.png
线程组添加查看结果树,聚合报告发送请求。
image.png
总结:
事务控制器:我们可以看到登陆到查询所花的时间都打包成一个事务进行,这样就能测出该一系列的登陆到查询所花的时间。
Synchronizing Timer :设置50个并发一起发送。
正则表达式提取器:提取出需要的account_id,查询接口。
分析:根据需求知道,线程数在50并发,运行2分钟的情况下知道平均响应时间为546毫秒,需求为2s,所以合格。
网友评论