码迷,mamicode.com
首页 > 其他好文 > 详细

jmeter 对接口的响应值进行进行base64解码

时间:2020-09-17 19:48:34      阅读:35      评论:0      收藏:0      [点我收藏+]

标签:表达式   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

jmeter 对接口的响应值进行进行base64解码

标签:表达式   info   sed   tps   key   开始   ops   内容   read   

原文地址:https://www.cnblogs.com/dongfenghai/p/13639458.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!