jmx脚本编写第一天

  新公司要编写jmeter脚本,Java丢掉N久也不想捡起来的我第一时间寻找其他语言编写的方法,千辛万苦找到了jython,还没开心呢,写完登录和退出脚本问题就来了,jython已经停更多年,很多功能和现在并不接轨了,只能扭头乖乖捡起java。好在jmeter脚本需要的Java包主要只有两个,一个JSONArray一个JsonObject。为了加深印象顺带捡起丢了许久未更新的blog开始记随笔了,目标是一周内熟悉语法,能独立编写beanshell。

基本获取jmeter响应参数都可以套用下面的模板

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

//获取上一个请求的返回值
String json=prev.getResponseDataAsString();
//将返回值转换为json
JSONObject jso = JSON.parseObject(json);
//获取data
JSONObject data = jso.getJSONObject("data");
//获取token
//也可以写作String token = jso.getJSONObject("data").getString("token");
String token = data.getString("token");

log.info("token");
//使用vars.put()方法储存变量token
vars.put("token",token);

在后面的其他接口中如何需要使用变量token,可以使用${token}来获取变量的值;

变量储存好后,在需要断言的接口后面添加BeanShell断言,使用Failrue来标识断言失败,FailureMessage标示断言失败的原因,如:

//使用vars.get()方法获取变量的值
String token= vars.get("token");
 
if(!message.equals("")) {
    Failure = true; 
    FailureMessage = "规则解析失败";
}else{
    FailureMessage = "规则解析成功";
    }

  或者直接在需要断言的接口中进行断言操作

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

//获取上一个请求的返回值
String json=prev.getResponseDataAsString();
//将返回值转换为json
JSONObject jso = JSON.parseObject(json);
//获取data
JSONObject data = jso.getJSONObject("data");
//获取token
//也可以写作String token = jso.getJSONObject("data").getString("token");
String token = data.getString("token");

log.info("token"); 
if(!message.equals("")) {
    Failure = true; 
    FailureMessage = "规则解析失败";
}else{
    FailureMessage = "规则解析成功";
    }

  

  

原文地址:https://www.cnblogs.com/keima/p/11468374.html