JMeter组件之BeanShell Assert的使用

本文介绍如何使用JMeter中的BeanShellAssert组件进行两种典型场景的断言操作:一是比较充值前后金额的变化,确保金额变动符合预期;二是遍历并验证通过正则表达式获取的数据列表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景:JMeter3.2 + fastjson-1.2.47,使用BeanShell Assert组件做断言

步骤:直接上代码

1. 场景一:比较充值前后,从数据库中查询出的值

(这里,笔者尝试了好几种方式,因为金额在代码中是用的BigDecimal类型,使用Float或者Integer,String类型都不能正确转换)

前提:在前面的请求中,已经通过BeanShell PostProcessor保存有查询的值。详见《JMeter组件之BeanShell PostProcessor的使用》

Double cash_old = Double.valueOf("${cash_old}");  

Double cash_new = Double.valueOf("${cash_new}");  

Double act = cash_new - cash_old;

Double exp = Double.valueOf("1000");  // 这里的充值金额可以设置一个变量替换固定值。

if (!act.equals(exp)){

    Failure = true;

    FailureMessage = "充值前后的差额与充值的金额不符";

}

2. 场景二:遍历正则表达式取出的列表

前提:取出来的值存在变量名为order_list中

int len = ${order_list_matchNr};  // 使用Debug Sampler可以查看正则表达式取出的值。这是列表长度,即取出的值的个数

String exp = "12345";  // 这里的期望字符串可以设置一个变量替换固定值,如${order}。

for(int i=1; i<=len; i++){

    String temp = vars.get("order_list_" + i);    // 使用Debug Sampler可以看到正则表达式取出值的规律

    if(exp.equals(temp))

        break;

    if(i == len){

        Failure = true;

        FailureMessage = "未找到订单号\"${order}\"";

    }

}

Rebuild started: Project: Project *** Using Compiler &#39;V6.22&#39;, folder: &#39;E:\Keil_v5\ARM\ARMCLANG\Bin&#39; Rebuild target &#39;Target 1&#39; assembling startup_stm32f10x_md.s... Start/core_cm3.c(445): error: non-ASM statement in naked function is not supported 445 | uint32_t result=0; | ^ Start/core_cm3.c(442): note: attribute is here 442 | uint32_t __get_PSP(void) __attribute__( ( naked ) ); | ^ Start/core_cm3.c(465): error: parameter references not allowed in naked functions 465 | "BX lr \n\t" : : "r" (topOfProcStack) ); | ^ Start/core_cm3.c(461): note: attribute is here 461 | void __set_PSP(uint32_t topOfProcStack) __attribute__( ( naked ) ); | ^ Start/core_cm3.c(479): error: non-ASM statement in naked function is not supported 479 | uint32_t result=0; | ^ Start/core_cm3.c(476): note: attribute is here 476 | uint32_t __get_MSP(void) __attribute__( ( naked ) ); | ^ Start/core_cm3.c(499): error: parameter references not allowed in naked functions 499 | "BX lr \n\t" : : "r" (topOfMainStack) ); | ^ Start/core_cm3.c(495): note: attribute is here 495 | void __set_MSP(uint32_t topOfMainStack) __attribute__( ( naked ) ); | ^ 4 errors generated. compiling core_cm3.c... compiling misc.c... compiling system_stm32f10x.c... compiling stm32f10x_adc.c... compiling stm32f10x_dac.c... compiling stm32f10x_exti.c... compiling stm32f10x_dbgmcu.c... compiling stm32f10x_dma.c... compiling stm32f10x_crc.c... compiling stm32f10x_cec.c... compiling stm32f10x_bkp.c... compiling stm32f10x_can.c... compiling stm32f10x_flash.c... compiling stm32f10x_pwr.c... compiling stm32f10x_fsmc.c... compiling stm32f10x_
03-31
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值