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.write(System.getProperty( "line.separator" ));

    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  凯宾斯基  阅读(412)  评论(0)    收藏  举报