Jmeter beanshell实现把请求生成的参数化数据写入文件

需求:A-B-C三个功能需要单交易负载测试。其中,功能C的请求入参是功能A、B的出参(返回值),为了能够单独压测C功能,需要把A、B生成的出参保存至csv或txt文件中,作为参数化文件。

实现:1)提取功能A产生的(cookie)需要使用Beanshell Preprocessor插件及cookie管理器;cookie管理器(一定要勾上每次迭代都要清理cookies)

Beanshell Preprocessor插件:

 Beanshell代码:

String str=prev.getResponseHeaders();//获取请求返回头信息
String start="this.sid=";//定义cookie的开始位置
String end=";Path="://定义cookie的结束位置
String cook =str substring(str.indexOf(start)+start.length0,str.indexOf(end));//根据起止信息获取cookie 
vars.put("cookies".cook);//把cookie信息保存到meter变量中,方便后续使用

提取功能B产生的(studentid)出参字段,需要使用正规表达式提取器(Regular Exception Extractor);

2)将功能A、B产生的数据写入文件操作,使用jmeter beanshell sampler插件。

  Beanshell代码:

import java.io.:

public static void writeExternalfile){
String studentld =vars.get("studentld");//获取studentld 

String cookies=vars.get("cookies")://获取cookie

//保存文件名及目录
File file=new File("C:\\tools\\apache-jmeter-3.2-plugins\\bin\\csh\\playGameVar.txt");

FileOutputStream fos=nul;

if(!file.existsO){
        file.createNewFile);

        fos=new FileOutputStream(file);

}else{
        fos=new FileOutputStream(file,true);

}

OutputStreamWriter osw=new OutputStreamWriter(fos,"UTF-8");

try{
osw.write(studentld+","+cookies);//写入studentid与cookie值,并以逗号隔开

osw.write("\r\n");//换行
osw.close0;//关闭
}catch(IOException e){
        e.printStackTrace();

        }

}

writeExternalfile();//调用写入文件方法

看下执行效果:

生成的文件及文件内容:

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

失眠的书

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

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

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

打赏作者

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

抵扣说明:

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

余额充值