我有一个包含如下查询的JDBC请求:
SELECT CUSTOMER_ID, CUSTOMER_NAME, START_DATE, COMPLETE_DATE,
NUMBER_OF_FINDINGS FROM CUSTOMER ORDER BY START_DATE;
这会返回70条记录。现在,我有一个JSON HTTP请求,可以从网页中的网格以相同的顺序提取相同的数据。我得到70条记录。如何比较数据库中的数组中的每个值以及JSON响应中的数组?我找到了有关如何检查单个值但不比较2个数据集之间的所有值的信息。我已经尝试了下面的BeanShell断言,但它无法正常工作。我尝试使用BSF PostProcessor将JSON值放入变量,但这也不起作用。我的调试采样器显示它正在获取值,但似乎没有比较它们。任何想法/想法将不胜感激。
String json_customerId = vars.get("customer_id");
String json_customerName = vars.get("customer_name");
String json_startedOn = vars.get("started_on");
String json_completedOn = vars.get("completed_on");
String json_numberOfFindings = vars.get("number_of_findings");
String db_customerId = vars.get("customer_id");
String db_customerName = vars.get("customer_name");
String db_startedOn = vars.get("started_on");
String db_completedOn = vars.get("completed_on");
String db_numberOfFindings = vars.get("number_of_findings");
int intN = 0
For (intN=0; intN=totalItems; intN++)
if (json_customerId[intN].equals(db_customer_id[intN]))
{
Failure = false;
print("counts match" + json_customerId + db_customer_id);
} else {
Failure = true;
FailureMessage = "Difference detected, json_result: " +
json_customerID >+ " and db_result: " + db_customer_id;
}
答案 0 :(得分:0)
你的代码没有多大意义。你使用的Strings对我来说似乎不对,因为Select查询结果通常看起来不像字符串。
这种比较字符串的方法 - json_customerId[intN]
将导致Beanshell断言失败,因为字符串不是数组类型。
我建议使用Debug Sampler和View Results Tree配置来检查MySQL和JSON中的变量值。如果您未能确定正确的选项 - 使用JDBC Sampler和JSON Path Extractor配置以及要比较的结果JMeter变量值更新您的问题。
目前暂时有一些参考链接: