beanshell preprocessor
发送哀求前实行
beanshell postprocessor
发送哀求前实行
==================================
获取哀求干系信息
在beanshell实行可以,beanshell断言试着不可- import java.util.Random;
- import java.security.MessageDigest;
- import java.text.SimpleDateFormat;
- import java.util.Date;
- import org.apache.commons.lang.StringUtils;
- import org.apache.jmeter.config.Arguments;
- import org.apache.jmeter.config.Argument;
- 获取请求body
- String body = sampler.getArguments().getArgument(0).getValue();
- 获取url
- String url = sampler.getPath();
- 获取响应报文
- String response=prev.getResponseDataAsString();
- 获取变量
- String deviceId = vars.get("deviceId");
- 设置变量
- vars.put("deviceHttpsToken", xxxx);
复制代码 =======================================
获取request header ,response header- import org.apache.commons.lang.StringUtils;
- // 获取请求头、响应头
- String a = ctx.getPreviousResult().getRequestHeaders();
- String b = ctx.getPreviousResult().getResponseHeaders();
- //获取响应报文
- String response=prev.getResponseDataAsString();
- log.info("================"+a);
- log.info("================"+b);
- log.info("================"+response);
复制代码- //import org.apache.jmeter.config.Arguments;
- import org.apache.commons.lang.StringUtils;
-
- // 获取响应头
- String a = ctx.getPreviousResult().getRequestHeaders(); // 获取当前请求header
- //获取响应报文
- String response = prev.getResponseDataAsString(); //获取当前请求响应结果
- log.info("=========="+response);
- if(a.contains("jp") ){
- if (response.contains("建物") == false){
- Failure = true;
- FailureMessage = "断言失败";
- return;
- }else{
- Failure = false;
- return;
- }
-
- }else if (a.contains("zh-cn") ){
- if (response.contains("My Home") == false){
- Failure = true;
- FailureMessage = "断言失败";
- return;
- }else{
- Failure = false;
- return;
- }
- }else if (a.contains("th") ){
- if (response.contains("ครอบครัวของฉัน") == false){
- Failure = true;
- FailureMessage = "断言失败";
- return;
- }else{
- Failure = false;
- return;
- }
- }else{
- Failure = true;
- FailureMessage = "断言失败";
- return;
- }
复制代码 举例:获取返回数据中的字段- 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);
复制代码 注:list是返回字段不是列表肯定写list
for 循环获取
- 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);
- String totalCount=rootNode.get("totalCount").asText();
- log.info("==========取到的totalCount值:"+totalCount);
- int num = Integer.valueOf(totalCount);
- String zhufujian = vars.get("zhufujian");
- for(int i =0;i<num;i++){
- deviceId=rootNode.get("shareDevs").get(i).get("devInfo").get("deviceId").asText();
- //log.info("==========取到的deviceId值:"+deviceId);
- if (deviceId.equals(zhufujian)){
- devRoomId1=rootNode.get("shareDevs").get(i).get("devRoomId").asText();
- vars.put("devRoomId1",devRoomId1);
- log.info("==========取到的devRoomId1值:"+devRoomId1);
- }else if (deviceId.equals("fujian1")){
- devRoomId2=rootNode.get("shareDevs").get(i).get("devRoomId").asText();
- vars.put("devRoomId2",devRoomId2);
- log.info("==========取到的devRoomId2值:"+devRoomId2);
- }else if (deviceId.equals("fujian2")){
- devRoomId3=rootNode.get("shareDevs").get(i).get("devRoomId").asText();
- vars.put("devRoomId3",devRoomId3);
- log.info("==========取到的devRoomId3值:"+devRoomId3);
- }else if (deviceId.equals("fujian3")){
- devRoomId4=rootNode.get("shareDevs").get(i).get("devRoomId").asText();
- vars.put("devRoomId4",devRoomId4);
- log.info("==========取到的devRoomId4值:"+devRoomId4);
- }else{
- }
- }
复制代码 获取当前时间beanshell
- import java.text.SimpleDateFormat;
- import java.util.Calendar;
- Calendar calendar = Calendar.getInstance();
- SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- String currentDate = dateFormat.format(calendar.getTime());
- vars.put("current_time", currentDate);
复制代码
截取字符串
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);
import java.math.BigDecimal;
import java.math.RoundingMode;
log.info("=====total======="+vars.get("totalcount"));
BigDecimal a=new BigDecimal("319");
BigDecimal b=new BigDecimal("10");
BigDecimal c=a.divide(b);
String d1;
if(c.toString().contains(".") == true){
BigDecimal c=a.divide(b, RoundingMode.DOWN);
BigDecimal e=new BigDecimal("1");
BigDecimal d=c.add(e);
d1=d.toString();
log.info("=====d1======="+d1);
}else{
d1=c.toString();
log.info("===整除==d1======="+d1);
}
vars.put("page",d1);
log.info("=====page======="+vars.get("page"));
检察日志
打开日志 选项,beanshell的log可以在日志 中检察log.info("deviceId")
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!qidao123.com:ToB企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金 |