zoukankan      html  css  js  c++  java
  • Jmeter 中Bean Shell 使用(二)

    一、使用BeanShell 断言

    当我们在做测试时候,经常需要根据响应的结果,断言结果是否正确返回,除了使用响应断言外,也可以使用BeanShell 断言 准确的判断响应中的值是否与预期相等。

    1、在http请求-->添加-->断言-->bean shell 断言

    引入jar包

     2、获取上一个请求的响应数据,对响应数据做判断

    二、使用BeanShell 前置处理器

    当我们在做测试时候,经常需要在请求前对参数进行预处理操作,比如我们的登录密码可能是需要进行加密操作的,那我们应该怎么做呢?

    接下来再讲另外一种实现方式,在BeanShell 预处理程序先获取请求的body,签名后给sign参数重新赋值,然后发送新的请求body,整体实现思路如下
    1.先获取请求body值
    2.body转JSONObject对象
    3.给jsonObject对象添加属性
    4.JSONObject 转json字符串
    5.给请求的body重新赋值

    在发送请求之前添加上面功能的预处理,就可以实现body参数

    代码实现如下:

    import org.apache.jmeter.config.Arguments;
    import org.apache.jmeter.config.Argument;
    import org.json.JSONObject;
    import org.json.JSONArray;

    Arguments arguments = sampler.getArguments();
    Argument arg = arguments.getArgument(0);
    // 获取请求body值
    String body = arg.getValue();
    log.info("获取body 数据"+body);

    //// body转json对象
    JSONObject jsonObject = new JSONObject(body);


    // 重新设置
    jsonObject.put("purchaserNameLike", "18682366111");

    // JSONObject 转字符串
    String postData = jsonObject.toString();
    log.info(postData);

    // 重新赋值请求的body参数
    arg.setValue(postData);

    // JSONObject 转字符串
    String postData = jsonObject.toString();
    log.info("修改后的请求body:"+postData);

    // 重新赋值请求的body参数
    arg.setValue(postData);

    如图:

     

    查看请求:

     

  • 相关阅读:
    oc中 中文到拼音的转换
    ios 添加全屏返回手势
    自我总结- CGAffineTransform
    解决pod search出来的库不是最新
    四舍五入的函数,保留小数点后几位数不四舍五入
    iOS 键盘变中文
    LanguageImage尺寸
    打包上传64位支持的解决办法
    第1年11月2日 ssh分发秘钥时出现错误“Permission denied (publickey,gssapi-keyex,gssapi-with-mic)” yarn
    第1年11月1日 uniapp原生
  • 原文地址:https://www.cnblogs.com/keenajiao/p/15755612.html
Copyright © 2011-2022 走看看