jmeter beanshell断言 判断 且写入txt文件

import org.json.  * ;

/ / 获取上一个请求的返回值
String response   = prev.getResponseDataAsString();
/ / 将返回值转换为json
JSONObject responseJson   = new JSONObject(response);

log.info(  "message的值:" + ResponseCode);

if (  "200" .equals(ResponseCode)) {     / / 判断请求码是否为  200
    FailureMessage   = "新用户输出" ;

/ / 有效用户写入txt
    FileWriter token   = new FileWriter(  "/Users/lucax/Desktop/探月压测协助/获取用户token+报名/b2c新用户.txt" ,true);
    BufferedWriter out   = new BufferedWriter(token);
    out.write(  vars .get(  "u_id" )  + ',' );
    out.write(  vars .get(  "phone" )  + ',' );
    out.write(  vars .get(  "token" )  + "\n" );
    out.close();
    token.close();
/ / log.info(  "message的值:" + 1111111111 );
 }  else {
    Failure   = true; 
    FailureMessage   = "旧用户抛弃" ;
/ / log.info(  "message的值:" + 2 );
   } 

 

prev.setDataEncoding("utf-8"); //解决响应乱码问题
String json = prev.getResponseDataAsString();
if(json.contains("\"status\":0")){           -------这个貌似是获取响应是否包含
  Failure=false;
}else{
  Failure=true;
  FailureMessage=json;
}

参考:https://blog.csdn.net/yiqin3399/article/details/87857385

参考:https://blog.csdn.net/tomoya_chen/article/details/77981707

 

要下载一个jar包   链接: https://pan.baidu.com/s/1Qe6r-y4wO6WT-aiyWkaAFQ 提取码: qvn9 复制这段内容后打开百度网盘手机App,操作更方便哦

放到jmeter的 lib目录下

图例:

ResponseCode是beanshell断言特有的注意

 

获取json里面的值对比

import org.json.  * ;
String response   = prev.getResponseDataAsString();
JSONObject responseJson   = new JSONObject(response);


if (  "2743" .equals(responseJson.getString(  "termIds" ))) {
    FailureMessage   = "新用户输出" ;
    FileWriter token   = new FileWriter(  "/Users/lucax/Desktop/b2c用户伪造--探月压测协助/获取用户token+报名/new_out2.txt" ,true);
    BufferedWriter out   = new BufferedWriter(token);
    out.write(  vars .get(  "uid" )  + ',' );
    out.write(  vars .get(  "phone" )  + '\n' );
    out.close();
    token.close();
}  else {
    Failure   = true; 
    FailureMessage   = "旧用户抛弃" ;
}

  

vars.get() #获取JMeter中的变量

prev.getResponseDataAsString() #获取当前请求的响应结果

Failure、FailureMessage 是Beanshell断言特有的参数,用于指定断言失败。

 

后记,可以加一个仅一次的逻辑控制器 

使用BenShell取样器

FileWriter token   = new FileWriter(  "/Users/lucax/Desktop/b2c用户伪造--探月压测协助/获取用户token+报名/new_out2.txt" );  参数true去掉 那么这个文件就会被清空

 

后记: 获取字符变数字

String aa=vars.get("beginPhone");
//log.info("获取手机号: "+aa);
Long phone2 =Long.valueOf(aa);
//每次加一
phone2 = phone2+1;
String newPhone=String.valueOf(phone2);
vars.put("beginPhone",newPhone);

 

后计:

String response  = prev.getResponseDataAsString();
JSONObject responseJson  = new JSONObject(response);
log.info( "message的值:" + responseJson);
 
 查看返回是否包含msg_status字段
if (response.contains("msg_status")) { }

 

posted @ 2021-05-15 14:05  凯宾斯基  阅读(363)  评论(0编辑  收藏  举报