Beanshell断言

 BeanShell是用Java写成的,一个小型的、免费的、可以下载的、嵌入式的Java源代码解释器,具有对象脚本语言特性。

有以下五个组件:
• Beanshell Sampler
• Beanshell PreProcessor
• Beanshell PostProcessor
• Beanshell Assertion
• __Beanshell Function
————————————————

常用对象

1、vars:实际引用Jmeter线程的局部变量,连通Jmeter和beanshell(本质上是个map)
vars.get(String key)//获取字符串变量值
vars.put(String key,String value)//存储value到变量key

vars.putObject("object_name", Object);//保存对象(包括List, Map, closure之类)
vars.getObject("OBJECT_NAME");//读取对象

2、log:写入信息到日志中
log.info("")

3、prev:获取前一个sample的响应
prev.getResponseDataAsString():以字符串形式获取响应信息
prev.getResponseCode():获取状态码

4、props:HashTable对象,可以跨线程组使用
props.put("some_variable',vars.get("some_variable"))

常用脚本

import org.json.*;
String response = prev.getResponseDataAsString();//获取前一个sample的响应
//log.info("response的值:" + response);//将返回值转换为json对象
JSONObject responseJson = new JSONObject(response);
JSONObject dataObj= responseJson.getJSONObject("data");//获取data对象
JSONArray answersArr= dataObj.getJSONArray("answers");//获取answers数组

Failure=true;//标记该断言失败 
FailureMessage="内容检查失败";//在log中输出失败原因

JSONObject和JSONArray区别及基本用法

JSONObject的数据是用 {  } 来表示的,

        例如:   { "id" : "123", "courseID" : "huangt-test", "title" : "提交作业", "content" : null  }  

JSONArray,顾名思义是由JSONObject构成的数组,用  [ { } , { } , ......  , { } ]  来表示

       例如:   [ {  "id" : "123", "courseID" : "huangt-test", "title" : "提交作业" }  ,  {  "content" : null, "beginTime" : 1398873600000  "endTime" } ] ; 

如何从字符串String获得JSONObject对象和JSONArray对象

        JSONObject  jsonObject  = new JSONObject (String  str);

        JSONArray jsonArray = new JSONArray(String str  ) ;

如何从JSONArray中获得JSONObject对象

       大家可以把JSONArray当成一般的数组来对待,只是获取的数据内数据的方法不一样

       JSONObject   jsonObject = (JSONObject)jsonArray.get(i);

        JSONObject   jsonObject  =  jsonArray.getJSONObject(i) ;  (常用)

     两者都可。第一种注意转换 

获取JSON内的数据

       int   jid= jsonObject.getInt ( "id" ) ;    //  这里的jid得到的数据就是123.

       String  jcourse=jsonObject.getString( "courseID") ;   // 这里的jcourse得到的数据就是huangt-test.

       Strirng jcourse = jsonObject.get("courseID").toString();

原文地址:https://www.cnblogs.com/crystal1126/p/12011669.html