因为项目的需要,需要在压测脚本中发送曝光请求给后台服务,记录一下如何来替换请求中的某个参数。
首先介绍下题外话。曝光请求是从上一步的服务请求结果中得到的,这就需要在发送请求中添加Json Path Processor。 作为后置处理器,Json Path Processor需要下载插件才能使用。下载jmeter-plugins-json-2.3.jar放入Jmeter的lib/ext下重启jmeter即可。
之后,配置JSON Path PostProcessor,在variable names中填写参数名称,如astr,此参数将保存Json path expressions中表达式按路径截取的字符串参数,$表示返回的所有字符串,此插件将返回结果进行Json化,通过$.ads[0].monitor[0].url即可取得相应的曝光记录。
然后,再添加正则表达式提取器,选择应用的范围限为上一步设置的Jmeter Variables,如astr, 正则表达式中输入对str的正则提取: .+\?(.*), 其中小括号中的数据将被用来赋于引用名称中bstr,这样, bstr就是通过对astr进行正则提取后的值。
如上面操作,曝光请求的参数即被存放入bstr中,因为项目中此值存在${loction}这种字符,导致第二次请求无法在Jmeter中发送。这时需要做替换。将其用location=10这样的字符串替换出来。接下来重点介绍一下替换的方式。
在第二次请求添加前置处理器:BeanShell PreProcessor 。内置的script如下:
try {
String surl1 = vars.get("bstr");
if(surl1 != null){
if(surl1 != null @and surl1.length() > 0) {
String path_replaced = surl1.split("\\$")[0]+"10";
String other = surl1.split("\\$")[1].split("\\}")[1];
vars.put("NEW_PATH",path_replaced+other);
}
}
}
catch (Throwable ex) {
log.error("Failed to do this or that", ex);
}
|
Beanshell中,vars.get()可以取得系统中设置的参数,vars.put()可以添加参数及及值。需要注意split和try catch的使用。有些样本返回中bstr 空,只用if else就会报错。
拿到NEX_PATH后,曝光请求的路径就可以设置成/s?${NEW_PATH}, 这样就会将${locaiton}替换掉。
相关推荐
支持jmeter5.0 请求参数中文乱码,修改了jar源代码,直接放到lib/ext 覆盖即可
JMeter beanShell修改http请求参数,尝试对http进行修改。
jmeter4.0请求乱码替换包,放到apache-jmeter-4.0\lib\ext下
JMeter请求执行次数 你想执行几次就执行几次,方式一:通过循环控制器控制每个请求的执行次数
JMeter进行性能测试实例Java请求+参数化
1.放在jmeter的 lib-ext目录下重启jmeter即可
JMeter中文手册JMeter中文手册JMeter中文手册JMeter中文手册JMeter中文手册JMeter中文手册JMeter中文手册JMeter中文手册JMeter中文手册JMeter中文手册JMeter中文手册JMeter中文手册JMeter中文手册JMeter中文手册...
JMeter如何把上一个请求的结果作为下一个请求的参数——使.docx
jmeter参数化5种方式脚本:用户自定义、函数、csv、数据库、正则提取。还包含post请求,get请求
jmeter 模拟ip http请求 并发测试 压力测试
JMETER 中间sample 是真正干活的家伙,性能测试过程中间通过sample 中间的组件向服务器发送请求,同时,从服务器端返回响应。由于sample 中间组件较多,不会对所有的sample 中间的所有组件进行讲解,只会讲解比较...
jar包直接放进 jmeter安装目录的lib/ext 下即可使用,添加java请求,老铁赶紧下!!!!
Jmeter参数不重复demo例子
jmeter测试dubbo请求,博客地址:http://blog.csdn.net/qq_34021712/article/details/78956600
Jmeter使用CSV Data Set Config参数化数据不重复的多次循环执行(实现多用户多次抽奖功能)
Jmeter Jmeter Jmeter Jmeter Jmeter Jmeter Jmeter Jmeter Jmeter Jmeter Jmeter Jmeter Jmeter Jmeter Jmeter Jmeter Jmeter Jmeter Jmeter Jmeter Jmeter
使用jmeter测试java请求,博客地址http://blog.csdn.net/qq_34021712/article/details/78870407
jmeter 5.1.1 版本。maven项目。服务端 vertx+kotlin。 实现jmeter tcp链接 发送protobuf消息到服务端,并返回结果的demo。具体看里面的doc目录的说明。
利用jmeter java请求开启端口转发对远程数据库进行压力测试.docx
Jmeter参数化--Post请求的Post body 参数化.该文档讲了怎么编写CSV文件,怎么读取CSV文件,然后用csv中的数据压测http接口。