之前写过一些文章讲了Groovy如何在JMeter中协助测试:
下面分享一下Groovy如何在JMeter修改请求参数,这个在正常测试中用处还是很广的,跟设置变量不一样,很多参数可能需要校验签名,而且每一次请求的参数也不尽相同。需要在设置完请求参数后,然后用程序统一处理一下。比如计算参数签名、加密明文、从数据库中取值等等。
- 首先新建一个简单的线程组和一个简单的请求:
- 添加JSR223 预处理程序(后置处理程序需要下一次次请求)
脚本内容:
sampler.addArgument("name","data");
log.info(sampler.getArguments().toString())
经过测试这个方法对于get和post请求均有效,包括post请求的不同参数类型。
- 控制台输出
这里只发get请求的控制台输出,多余的输出已经删除了。
2020-03-04 23:24:23,239 INFO o.a.j.e.StandardJMeterEngine: Running the test!
2020-03-04 23:24:23,239 INFO o.a.j.s.SampleEvent: List of sample_variables: []
2020-03-04 23:24:23,240 INFO o.a.j.g.u.JMeterMenuBar: setRunning(true, *local*)
2020-03-04 23:24:23,358 INFO o.a.j.e.StandardJMeterEngine: Starting ThreadGroup: 1 : 线程组
2020-03-04 23:24:23,358 INFO o.a.j.e.StandardJMeterEngine: Starting 1 threads for group 线程组.
2020-03-04 23:24:23,358 INFO o.a.j.e.StandardJMeterEngine: Thread will continue on error
2020-03-04 23:24:23,359 INFO o.a.j.t.ThreadGroup: Starting thread group... number=1 threads=1 ramp-up=1 perThread=1000.0 delayedStart=false
2020-03-04 23:24:23,361 INFO o.a.j.t.ThreadGroup: Started thread group number 1
2020-03-04 23:24:23,361 INFO o.a.j.e.StandardJMeterEngine: All thread groups have been started
2020-03-04 23:24:23,361 INFO o.a.j.t.JMeterThread: Thread started: 线程组 1-1
2020-03-04 23:24:23,456 INFO o.a.j.m.J.JSR223 预处理程序: t=FunTester()&s=funt3est1583335463413()&name=data()
2020-03-04 23:24:23,628 INFO o.a.j.t.JMeterThread: Thread is done: 线程组 1-1
2020-03-04 23:24:23,630 INFO o.a.j.t.JMeterThread: Thread finished: 线程组 1-1
2020-03-04 23:24:23,630 INFO o.a.j.e.StandardJMeterEngine: Notifying test listeners of end of test
2020-03-04 23:24:23,631 INFO o.a.j.g.u.JMeterMenuBar: setRunning(false, *local*)
- 查看结果树
下面展示三种情况get请求、post请求json参数、post请求表单参数的请求体信息:
- 郑重声明:文章首发于公众号“FunTester”,禁止第三方(腾讯云除外)转载、发表。
技术类文章精选
- Linux性能监控软件netdata中文汉化版
- 性能测试框架第三版
- 如何在Linux命令行界面愉快进行性能测试
- 图解HTTP脑图
- Java并发BUG基础篇
- Java并发BUG提升篇
- 性能测试中图形化输出测试数据
- 压测中测量异步写入接口的延迟
- 多种登录方式定量性能测试方案