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);
    }
    复制代码

     

     
     
  • 相关阅读:
    小注意1
    javascript求相对路径
    js网页返回顶部和楼层跳跃的实现原理
    函数传值的学习笔记
    每日一题——归并排序
    python文件处理
    Docker数据卷
    Docker镜像原理
    Docker可视化之Portainer
    Docker部署Nginx、Tomcat
  • 原文地址:https://www.cnblogs.com/hjianhui/p/10011561.html
Copyright © 2011-2022 走看看