zoukankan      html  css  js  c++  java
  • 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();

  • 相关阅读:
    46. Permutations 全排列,无重复
    243. Shortest Word Distance 最短的单词index之差
    171. Excel Sheet Column Number Excel列号转数字
    179. Largest Number 用数组中的元素凑一个最大数字
    49. Group Anagrams 多组anagram合并
    电话号码的字母组合(leetcode17)
    最接近的三数之和(leetcode16)
    c#之dynamic类型通过属性获取值(get value by key)
    三数之和(leetcode15)
    java-list与array转换
  • 原文地址:https://www.cnblogs.com/crystal1126/p/12011669.html
Copyright © 2011-2022 走看看