当前位置: 首页 > news >正文

jmeter学习(7)beanshell

beanshell preprocessor

发送请求前执行

beanshell postprocessor

发送请求前执行

==================================

获取请求相关信息

String body = sampler.getArguments().getArgument(0).getValue();
String url = sampler.getPath();

获取响应报文
String response=prev.getResponseDataAsString();

获取变量

String deviceId = vars.get("deviceId");

设置变量

vars.put("deviceHttpsToken", xxxx);

举例:获取返回数据中的字段

import org.apache.jmeter.config.Arguments;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
//获取响应报文
String response=prev.getResponseDataAsString();
ObjectMapper mapper = new ObjectMapper();
JsonNode rootNode=mapper.readTree(response);retCode=rootNode.get("retCode").asText();
log.info("==========取到的retCode值:"+retCode);
vars.put("code",code);

 有列表

import org.apache.jmeter.config.Arguments;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
//获取响应报文
String response=prev.getResponseDataAsString();
ObjectMapper mapper = new ObjectMapper();
JsonNode rootNode=mapper.readTree(response);retCode=rootNode.get("payload").get("list").get(0).get("creator").asText();
log.info("==========取到的retCode值:"+retCode);
//vars.put("code",code);

截取字符串

No=vars.get("No");
log.info("获取到的No:"+No);
No=No.substring(1);
log.info("去掉第一位后的No:"+No);
No1=No.substring(0,3);
log.info("截取出来的001:"+No1);

计算

import java.math.BigDecimal;
 
BigDecimal a=new BigDecimal("6");
BigDecimal b=new BigDecimal("2");
BigDecimal c=a.add(b);
String c1=c.toString();
log.info("a+b="+c1);
 
BigDecimal c=a.subtract(b);
String c1=c.toString();
log.info("a-b="+c1);
 
BigDecimal c=a.multiply(b);
String c1=c.toString();
log.info("a*b="+c1);
 
BigDecimal c=a.divide(b);
String c1=c.toString();
log.info("a/b="+c1);

查看日志

打开日志选项,beanshell的log可以在日志中查看log.info("deviceId")

http://www.lryc.cn/news/456030.html

相关文章:

  • TCP_SOCKET编程实现
  • 螺蛳壳里做道场:老破机搭建的私人数据中心---Centos下Docker学习07(基于docker容器的防火墙及NAT企业实战)
  • ②EtherNet/IP转ModbusTCP, EtherCAT/Ethernet/IP/Profinet/ModbusTCP协议互转工业串口网关
  • Java 集合(Collection)
  • Windows系统编程(三)线程并发
  • 【Qt】控件概述(2)—— 按钮类控件
  • Java访问器方法和更改器方法
  • CAN协议帧结构
  • valgrind 单例模式的自动释放(多线程)
  • OpenFegin
  • LeetCode-2608. 图中的最短环【广度优先搜索 图,腾讯面试真题】
  • IDEA 编译报错 “java: 常量字符串过长” 的解决办法
  • RK3568平台开发系列讲解(I2C篇)I2C 总线实现 client 设备方法
  • K8S安装和部署
  • Singleton(单例模式)
  • 【Linux报错】“-bash: cd: too many arguments“
  • C# WebService返回参数为DataTable报错“XML文档有错误”
  • [paddle]paddleseg快速开始
  • UNIAPP popper气泡弹层【unibest框架下】vue3+typescript
  • launcher.py: error: the following arguments are required: --output_dir
  • C语言基础之结构体
  • Redis入门第四步:Redis发布与订阅
  • MySQL 之权限与授权
  • 解决方案:Pandas里面的loc跟iloc,有什么区别
  • C# 和 C++ 混合编程
  • Vxe UI vue vxe-table 实现表格单元格选中功能
  • 组合模式详解
  • AltiumDesigner脚本开发-DIP封装制作
  • 乌班图基础设施安装之Mysql8.0+Redis6.X安装
  • 【动态规划-最长递增子序列(LIS)】力扣673.最长递增子序列的个数