zoukankan      html  css  js  c++  java
  • Jmeter之Bean shell使用(五)

    1、在Test Plan中定义如下三个变量:

    2、Bean Shell可脚本如下:

      a、bean shell可以接受传入参数,如下图:${u1} ${u2} ${u3}

      b、参数可以通过bsh.args[]按顺序提取

      c、bean shell提供了一个内置变量Parameters,来保存参数的集合

    3、运行结果:

    下图中1输入的这两句设置:

    ResponseCode = 500;
    ResponseMessage = "This is a test";

    下图中2输入的这两句设置:

    log.info(Parameters);

    log.info(Label);

     十、提取json数据

    需求:提取sample返回json数据中所有name字段值,返回的json格式如下: 

    {“body”:{“apps”:[{“name”:”111”},{“name”:”222”}]}} 

    jmeter中添加后置处理器BeanShell PostProcessor 

    说明:脚本中的导入的json包需要自己去网络下载后放到libext,请悉知

    这里写图片描述 
    这里写图片描述

    复制代码
    import org.json.*;
    
    String response_data = prev.getResponseDataAsString();
    JSONObject data_obj = new JSONObject(response_data);
    String apps_str = data_obj.get("body").get("apps").toString();
    JSONArray apps_array = new JSONArray(apps_str);
    String[] result = new String[apps_array.length()];
    for(int i=0;i<apps_array.length();i++){
        JSONObject app_obj = new JSONObject(apps_array.get(i).toString());
        String name = app_obj.get("name").toString();
        result[i] = name;
    }
    vars.put("result", Arrays.toString(result));
    复制代码

    断言

    复制代码
    import txtWrite.*;
    String response_data = prev.getResponseDataAsString();
    String assert_data="科目${num}";
    TxtWrite writeData=new TxtWrite();
    if(response_data.indexOf(assert_data)!=-1)//请求的response中有包含自定义字符,则断言结果为false
    {
        Failure=false;
        String message="${__time(yyyy-MM-dd HH:mm:ss,)}   新建科目【"+assert_data+"】成功";
        FailureMessage=message;
        writeData.contentToTxt("D:/xykyInterfaceAutoTest.log",message);
        
    }else
    {
        Failure=true;
        String message="${__time(yyyy-MM-dd HH:mm:ss,)}   新建科目【"+assert_data+"】失败----------";
        String response="本次请求response数据:"+prev.getResponseDataAsString()+"----------";
        String need_assert="需要断言的数据:"+assert_data;
        FailureMessage=message+response+need_assert;
        writeData.contentToTxt("D:/xykyInterfaceAutoTest.log",message+response+need_assert);
    }
    复制代码

     

     
     
  • 相关阅读:
    Bootstrap(2)整体架构
    介绍 Microservice
    Websocket实例
    MYSQL-用户权限的验证过程(转)
    don't touch your phone in any unfamiliar way(转)
    你真的会玩SQL吗?Case的用法(转)
    android模拟器与PC的端口映射(转)
    Java Main如何被执行?(转)
    Linux crontab 命令格式与具体样例
    分享一个3D球面标签云
  • 原文地址:https://www.cnblogs.com/hjianhui/p/10011561.html
Copyright © 2011-2022 走看看