jmeter压测实战

1,设置HTTP请求默认值17a8c4ac111e4ee4ab587dd87958aed2.png

2,设置全局变量04bf025fe6b7465e98be8c1ecd16af0c.png

3,新建线程组

6b8e8813ac574e4bb9f33ab9b4d9cdeb.png

4,设置私钥

d3783a1c28ec42fca66a720b0542cc41.png

5,每个接口新建一个事务控制器

1ce9b6c1b8a6440ea9765e1e2651af75.png

6,新建Java请求

对于有sign签名的需要将jar包放在apache-jmeter-5.4.1\apache-jmeter-5.4.1\lib\ext目录下,然后引入进来。

除此之外,还需要下载bouncycastle.jar包放在jdk的security目录下:C:\Program Files\Java\jdk-11.0.6\lib\security 否则导入脚本会报错。

参照:java.lang.NoClassDefFoundError:org/bouncycastle/jce/provider/BouncyCastleProvider_no manifest section for signature file entry org/b-CSDN博客3ee04385753241d6a386545a2e4db0af.png

7,正则表达式提取signbd1196e2bef547969cb0a7de2bed116c.png

8,新建接口请求7b89916fc9bf400fa584b7cf855dbed7.png

9,新建接口的Http请求入参8741b0852bc84f2993c26ff4457278d3.png

10,查看结果树中显示中文乱码问题可参照:

https://www.cnblogs.com/whitewasher/p/6780473.html

11,获取前面接口的返回对象中的某个字段值作为当前接口的入参:

Post Processors-->JSON Extractor

1,如 提取name属性:$.name

参照:https://www.cnblogs.com/lasdaybg/p/9758743.html

2,如 提取多层列表下的指定字段:

提取数组集合对象第一个对象中某个属性:$.[0].name 或 $.Province[0].name

筛选出name名为“DGV25”的所有list数据:$..[?(@.name=='DGV25供应商')]        

筛选前两条数据:$.[:2]  

多层嵌套的jsonlist,需要提取所有列表下,name=“DGV25供应商”时的 id 和 pId 数据:

$..[?(@.name=='DGV25供应商')].["id","pId"]

参照:Jmeter笔记——如何使用json提取器,提取json多层列表下指定字段所在层的其他数据_多层嵌套 json提取器提取-CSDN博客

3,如 提取响应数据中的多个字段:多个字段之间用 ; 号分割

参照:https://www.cnblogs.com/zhouxuyang1/p/11514893.html

12,读取配置文件内容:CSV Data Set Config

参照:[13] JMeter-详解JMeter参数化之CSV Data Set Config_jmeter中url中的参数如何引用csv data set config-CSDN博客

注:第一行一般是变量名,需要忽略掉

13,通过边界值匹配前一个接口的返参字段作为当前接口的入参:

参照:https://www.cnblogs.com/fighting-gabby/p/11578944.html

14,仅执行一次控制器:Once Only Controller

不管线程组循环几次,它下面的节点只执行一次,但是,多少个线程组就会执行多少次,项目中较常用的场景是登录,一个用户登录一次之后可以执行其他更多的操作。

例:线程组数量为1,循环次数为10;仅一次控制器下有个http请求采样器,请求访问百度;那么察看结果树下是访问了几次百度呢?答案当然是1啦。

例:线程组数量为5,循环次数为10;仅一次控制器下有个http请求采样器,请求访问百度;那么察看结果树下是访问了几次百度呢?答案当然是5啦。

15,Throughput Controller控制该控制器下面元件的执行次数:

  1. Total Executions模式
  • 当勾选Per User时:
  1. 线程数*循环次数>=线程数*吞吐量时,Total Executions模式的执行次数=线程数*吞吐量。
  2. 当线程数*循环次数
  • 当不勾选Per User时:
  1. 线程数*循环次数
  2. 当线程数*循环次数>吞吐量时,Total Executions模式的执行次数=吞吐量。

2. Percent Executions模式

无论Per User是否勾选,按Percent Executions模式的执行次数都不受Per User影响,Percent Executions模式的执行次数=线程数*循环次数*吞吐量%。

PS:循环次数=线程组循环次数*循环控制器循环次数。

参照:https://www.cnblogs.com/luihengk/p/7407186.html

16,响应断言Response Assertion:

用来判断当前执行是否成功,成功则继续执行,否则程序中断

参照:https://www.cnblogs.com/hanxiaomin/p/6709877.html

17,BeanShell脚本语言处理断言、前置处理、后置处理、前一个sample提取值处理(可能需要引入三方json包进行数据解析):

参照:https://www.cnblogs.com/puresoul/p/4915350.html

https://www.cnblogs.com/lisa2016/p/11858591.html

https://www.cnblogs.com/poloyy/p/15257716.html

 

  • 24
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Loren_云淡风轻

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值