栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

jmete性能测试使用BeanShell断言

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

jmete性能测试使用BeanShell断言

BeanShell脚本是符合java语法规范的语言,支持java用法,在写BeanShell脚本时,与写java脚本一样,需要引用各种jar包。
有一些jar包,安装jmeter时会自带,在jmeter安装目录下的lib文件夹中,可以在测试计划中导入,但一些没有的jar包,需要自己在网上下载,然后放在lib中,导入测试计划中。
本文由于测试需要,用到了jsonPath,对返回参数的提取,起初使用jsonpath的提取器提取的,如下图,先在查看结果数中调试JSONPath的路径,在查看结果数中选择JSON Path Tester。


然后接口请求中新增后置处理区——json提取器,然后填写变量,以及jsonPath的提取路径,如下图

接着添加后置处理器——BeanShell断言,书写BeanShell脚本,但在脚本中引用变量${para}不起作用,于是放弃使用json提取器设置变量的形式,直接在BeanShell脚本中提取。
想要在脚本中使用jsonPath提取返回参数,需要导入jsonPath的jar包,如图:

但在脚本运行中,出现了报错:报错内容为:
用json-path-xxxxx.jar解析json数据时会报错:Error in method invocation: Static method read( java.lang.String, java.lang.String ) not found in class’com.jayway.jsonpath.JsonPath
上面报错大概的意思就是找不到com.jayway.jsonpath.JsonPath类里的静态方法read。
于是想到了一种方法:对read方法再封装一次,使用封装后的函数。
编写代码,代码思路,类JsonUtil中的方法ParaseJson封装read方法,第一个参数是json字符串,第二个参数是jsonpath。代码如下:

import com.jayway.jsonpath.JsonPath;
public class JsonUtil {
    public  String ParaseJson(String str,String paras){
        String res = JsonPath.read(str,paras).toString();
        return  res;
    }
} 

将代码导出为jar包(导出方法自行百度)。这里直接提供我导出的jar包jmeterUtil.jar
链接:https://pan.baidu.com/s/1SObPqEdXN6u8CsrhecyvSg
提取码:0000
jar包放在了jemter/lib/etc中,然后在测试计划中导入
下图是完成的BeanShell脚本截图

代码粘贴在这里:

import jmeterUtil.*

log.info("得到结果数据");
String response = prev.getResponseDataAsString();
if(response == "[]" ){
    Failure=true;
    FailureMessage = "没有领取到任务";
}else {
	JsonUtil t = new JsonUtil();
     String paras = t.ParaseJson(response, "$.[0].para");
     log.info("response为 " + response);
     log.info("para为 " + paras);
     log.info("领取到任务,对para参数进行判断,为空报错,不为空不报错");
     if(paras == "[]"){
     	log.info("response为" + response);
     	Failure=true;
     	FailureMessage = "para为空";
     }else{
         log.info("para不为空");
     }
}

在调试BeanShell脚本时,可以通过看日志看报错内容,如下图:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/693016.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号