标签:表达式 info sed tps key 开始 ops 内容 read
此次我的例子包含了A接口的值做B接口的参数。
commons-codec-1.11.jar 包下载地址:http://commons.apache.org/proper/commons-codec/download_codec.cgi
在做base64解密之前需要去下载 commons-codec-1.11.jar ,下载完成后,把jar放在C:\apache-jmeter-4.0\lib\ext 目录下
在测试计划页面添加JAR.点击浏览,选择刚刚下载的jar
1.在A采集器中右键-->后置处理器-->正则表达式提取器
引用名称:可以看作是变量名称,在B接口中引用使用 ${resp_str} 的方式
正则表达式:提取内容的表达式,提取需要的值,相当于resp_str变量的值
() 括起来的部分就是需要提取的,对于你要提的内容需要用小括号括起来
. 点号表示匹配任何字符串
+ 一次或多次
? 在找到第一个匹配项后停止
模板:表示使用提取到的第几个值,此处有多少值与上面匹配的值有关,如上面正则表达式中有2个提取值,此处写$2$就是提取第二个
$-1$:表示取所有值
$0$:表示随机取值
$1$:表示取第1个
$2$:表示取第二个
以此类推:$n$:表示取第n个
匹配数字 :
0 代表随机取值
1 代表取第一个值
-1 代表全部取值
缺省值:如果正则表达式没有搜找到值,则使用此缺省值。
2.在A采集器右键-->后置处理器-->BeanShell PostProcessor
3.添加B http采集器。在BODY里面添加A采集器中响应值 resp_str
4.给B 采集器也添加正则表达式提取器和BeanShell PostProcessor
同样把B采集器中的响应值提取到,在BeanShell PostProcessor中对响应值进行base64解码
代码为:
import java.io.*;
import org.apache.commons.codec;
String resp_data =vars.get("resp_str");
log.info("加密后获取的响应值------->>"+resp_data);
log.info("------------开始解密-------------------");
org.apache.commons.codec.binary.Base64 base64=new org.apache.commons.codec.binary.Base64();
String s=new String(base64.decode(resp_data));
log.info("解密后的值------->>"+s);
log.info("------------解密结束-------------------");
附、Bean Shell常用内置变量
log:写入信息到jmeber.log文件,使用方法:log.info(“hello world !”);
ctx:该变量引用了当前线程的上下文,使用方法可参考:org.apache.jmeter.threads.JMeterContext。
vars - (JMeterVariables):操作jmeter变量,这个变量实际引用了JMeter线程中的局部变量容器(本质上是Map),它是测试用例与BeanShell交互的桥梁,常用方法:
a) vars.get(String key):从jmeter中获得变量值
b) vars.put(String key,String value):数据存到jmeter变量中
props - (JMeterProperties - class java.util.Properties):操作jmeter属性,该变量引用了JMeter的配置信息,可以获取Jmeter的属性,它的使用方法与vars类似,但是只能put进去String类型的值,而不能是一个对象。对应于java.util.Properties。
a) props.get("START.HMS"); 注:START.HMS为属性名,在文件jmeter.properties中定义
b) props.put("PROP1","1234");
prev - (SampleResult):获取前面的sample返回的信息,常用方法:
a) getResponseDataAsString():获取响应信息
b) getResponseCode() :获取响应code
sampler - (Sampler):gives access to the current sampler
更多方法可参考:org.apache.jmeter.samplers.SampleResult
标签:表达式 info sed tps key 开始 ops 内容 read
原文地址:https://www.cnblogs.com/dongfenghai/p/13639458.html