一、“除数、被除数”通过JDBC查询数据库得出
二、通过接口获取到比对值
(http请求后,用json提取器/正则表达式把具体内容提取成变量,json提取器可以只用用SCC右键“copy property path”来直接复制json path expressions)
三、添加beanshell断言
import java.math.BigDecimal;
// 统计总数
BigDecimal total=new BigDecimal(${SQLA_1});
// 统计合格数
BigDecimal qualified=new BigDecimal(${SQLB_1});
// 接口返回不合格率
BigDecimal percent=new BigDecimal("${jsonA}").setScale(4, BigDecimal.ROUND_HALF_UP);
// 计算接口返回值得出的合格率
BigDecimal qualifiedRate=qualified.divide(total, 4, BigDecimal.ROUND_HALF_UP);
BigDecimal pc= BigDecimal.ONE.subtract(qualifiedRate).setScale(4, BigDecimal.ROUND_HALF_UP);
// 判断
if (percent.compareTo(pc) == 0) {
boolean val = false;
System.out.println("数值相等");
} else {
boolean val = true;
System.out.println(percent +" 【不等于】"+pc);
}
注意点:
1.使用BigDecimal一定要导入jar包;“import java.math.BigDecimal; ”
2.引用mysql查询到的结果,一定要写明取第几个值,如果不明确要取第几个值,可添加debug sampler来查看具体返回值;
BigDecimal对应的函数
函数 | 例子 | 说明 |
.multiply(number) | 乘法 | |
.divide( 被除数值) | .divide(total, 4, BigDecimal.ROUND_HALF_UP) | 除法(被除数,小数点后位数,BigDecimal.ROUND_HALF_UP) |
.subtract(被减数) | BigDecimal.ONE.subtract(qualifiedRate) | 减法(1减去一个数值) |
.add(bignum2) |
| 加法 |