需求:目前有一个请求,请求的响应中有2个值,aaa和bbb,我们比较aaa和bbb,如果aaa大于bbb,则断言通过,否则失败。

1.添加一个Dummy Sampler,模拟请求。

2.添加2个正则表达式处理器,分别提取aaa和bbb的值。

3.添加BeanShell断言。代码如下:

//方式1:直接取aaa,bbb的值,并将结果进行比较
int x=${aaa};
int y=${bbb}; if(x<=y){
Failure=true;
FailureMessage="aaa小于等于bbb";
}
//方式2:通过vars.get("变量名")取得字符串的值,然后通过Integer.parseInt()将其变为整型再进行比较
String x = vars.get("aaa");
String y = vars.get("bbb"); if(Integer.parseInt(x)<=Integer.parseInt(y)){
Failure=true;
FailureMessage="aaa小于等于bbb";
//log.info("断言失败:aaa小于等于bbb");
}

4.在查看结果树中查看结果如下

5.思考:如果aaa,bbb的值带有小数呢,上述两种方式还可以吗?

比如说把请求的响应修改为{"aaa":"1.9","bbb":"1.1"},则

通过方式1运行结果,还是断言失败,因为本来aaa大于bbb,取整后,aaa等于bbb了;

通过方式2运行结果,报错:Error invoking bsh method: eval Sourced file: inline evaluation of: ``String  x = vars.get("aaa"); String  y = vars.get("bbb");  if(Integer.parseInt(x . . . '' : Method Invocation Integer.parseInt 。

显然不可以。

因此,当需要比较的两个值可能是小数时,我们需要用方式3或方式4来写断言。

//方式3:
double x=${aaa};
double y=${bbb}; if(x<=y){
Failure=true;
FailureMessage="aaa小于等于bbb";
}
//方式4:
String x = vars.get("aaa");
String y = vars.get("bbb"); if(Double.parseDouble(x)<=Double.parseDouble(y)){
Failure=true;
FailureMessage="aaa小于等于bbb";
log.info("断言失败:aaa小于等于bbb");
}

说白了,就是将int换成double,Integer.parseInt()换成Double.parseDouble()了。

BeanShell断言:根据响应的2个数据的比较结果来决定断言的更多相关文章

  1. Jmeter—4 添加断言 判断响应数据是否符合预期

    发出请求之后,通过添加断言可以判断响应数据是否是我们的预期结果. 1 在Jmeter中发送一个登录的http请求(参数故意输入错误).结果肯定是登陆失败啦. 但结果树中http请求的图标显示‘绿色’表 ...

  2. Jmeter入门4 添加断言 判断响应数据是否符合预期

    发出请求之后,通过添加断言可以判断响应数据是否是我们的预期结果. 1 在Jmeter中发送一个登录的http请求(参数故意输入错误).结果肯定是登陆失败啦. 但结果树中http请求的图标显示‘绿色’表 ...

  3. Jmeter 02 Jmeter断言之响应断言

    看完上一篇博客,相信大家应该可以使用Jmeter发送HTTP请求了.那么我们既然是要测试,就肯定需要判断结果了.Jmeter对于请求的响应数据提供了几种断言机制,这里大概说一下比较常用的几种断言. 响 ...

  4. Jmeter系列(3)- 常用断言之响应断言

    断言的作用 确定请求是有效还是无效的 添加断言 面板模块介绍 Apply to 作用:指定断言作用范围 Main sample and sub-sample:作用于主main sample和子sub- ...

  5. Jmeter JSON断言和响应断言的区别是什么?

    假设响应数据是{"code":0,"datas":{"informationStatus":1}} 响应断言:"code" ...

  6. Jmeter之断言(响应断言,断言持续时间)

    断言是测试环节中,十分重要的一节. 响应结果是否正确,可以通过断言判断,无需人工确认. 1.为请求添加断言 常使用:响应断言>Bean Shell断言>断言持续时间 2.响应断言 ●常用来 ...

  7. jmeter之--断言json响应&json path espressions的语法

    一.提取所需要断言的内容: 响应数据如下:加入需要提取id为90的值 { , "name" : "python", "url" : &quo ...

  8. 掌握BeanShell,轻松处理jmeter中的数据

    作者:季沐测试笔记 原文地址:https://www.cnblogs.com/testero/p/15424558.html 博客主页:https://www.cnblogs.com/testero ...

  9. 详细解读XMLHttpRequest(二)响应属性、二进制数据、监测上传下载进度

    本文主要参考:MDN 分析并操作 responseXML属性 如果你使用 XMLHttpRequest 来获得一个远程的 XML 文档的内容,responseXML 属性将会是一个由 XML 文档解析 ...

随机推荐

  1. Nginx笔记总结七:root和alias文件路径配置

    1. root path 配置段:http.server.location.if location ~ ^/weblogs/ { root /data/weglogs/www.ttlsa.com; a ...

  2. JS去重函数的扩展应用

    数据: 账单id[1,1,1,1,2,2,2,3,3,3,3,3,3,3], 相对于账单id的金额[100,120,110,150,200,180,220,115,150,120,180,220,14 ...

  3. leetCode-nSum

    Given an array S of n integers, are there elements a, b, c, and d in S such that a + b + c + d = tar ...

  4. Ruby爬虫header发送cookie,nokogiri解析html数据

    之前用php写过一个爬虫,同样是获取局域网的网站数据,这次我使用相同的网络环境,更低的电脑配置,使用ruby来再次爬虫,惊人的发现ruby使用自带的类库net/http爬取速度要远远超过php的cur ...

  5. 文本快速分类利器fasttext使用心得(踩坑之路)

    fasttext是文本分类的一大利器,优点:快,嗷嗷快:缺点:暂未发现.但是我在使用其做文本分类时候还是遇到了挺多坑,今天先总结一个: 网上有人说设置训练参数的时候,ngrams设置大于2可以提高模型 ...

  6. APP内计费规范出台 手游乱收费现象能被遏制?

    手游乱收费现象能被遏制?" title="APP内计费规范出台 手游乱收费现象能被遏制?"> 在一个混乱.无秩序的环境中竞争,虽然有可能不择手段地获取更多的利益,但 ...

  7. [PyTorch入门之60分钟入门闪击战]之训练分类器

    训练分类器 目前为止,你已经知道如何定义神经网络.计算损失和更新网络的权重.现在你可能在想,那数据呢? What about data? 通常,当你需要处理图像.文本.音频或者视频数据时,你可以使用标 ...

  8. Nginx之负载节点状态监测

    前言 nginx做负载均衡性能很好,但是负载中的节点有异常怎么处理呢? 当然是nginx发现某一个节点为异常节点后自动将请求转移至其他节点直至转移到一个正常节点. 为了实现这一步有如下两个解决方案可供 ...

  9. Docker深入浅出系列 | 单机Nginx+Springboot实战

    目录 Nginx+Springboot实战 前期准备 实战目标 实战步骤 创建Docker网络 搭建Mysql容器 搭建额度服务集群 搭建Nginx服务 验证额度服务 附录 Nginx+Springb ...

  10. TCP/IP协议族的四个层次

    OSI7层模型的小结 : 在7层模型中,每一层都提供一个特殊的网络功能.从网络功能的角度看:下面4层(物理层.数据链路层.网络层和传输层)主要提供数据传输和交换功能,即以节点到节点之间的通信为主:第4 ...