Web services 如何打印JMeter bean shell断言中的变量值

Web services 如何打印JMeter bean shell断言中的变量值,web-services,api,jmeter,verification,assertion,Web Services,Api,Jmeter,Verification,Assertion,使用Jmeter,我通过RESTAPI将值传递给Web服务。成功后,API将值更新为mongo DB。 使用JMeter BeanShell断言时..我想显示请求中发送的值和数据库中存储的值 我正在使用下面的脚本 String req_data="${Request_Configuration}"; String res_data="${mongo_db_Configuration}"; if(res_data.equalsIgnoreCase(req_data)){ Failure=

使用Jmeter,我通过RESTAPI将值传递给Web服务。成功后,API将值更新为mongo DB。 使用JMeter BeanShell断言时..我想显示请求中发送的值和数据库中存储的值

我正在使用下面的脚本

String req_data="${Request_Configuration}";
String res_data="${mongo_db_Configuration}";


if(res_data.equalsIgnoreCase(req_data)){
   Failure=false;
   FailureMessage = "Data stored in DB is correct";
   System.out.println("ReqData="+req_data);
   System.out.println("ResData="+res_data);
}
else{
   Failure = true;
   FailureMessage = "Data Stored in DB is NOT correct";
   System.out.println("ReqData="+req_data);
   System.out.println("ResData="+res_data);
}

我只是不能打印ReqData和ResData。请帮忙。

您的脚本有问题。在Beanshell中,您不能访问像
${Request\u Configuration}
这样的变量,您需要使用
vars.get(“Request\u Configuration”)

vars
是当前上下文的类实例的缩写

因此,您的Beanshell断言代码应该如下所示:

String req_data=vars.get("Request_Configuration");
String res_data=vars.get("mongo_db_Configuration");


if(res_data.equalsIgnoreCase(req_data)){
   Failure=false;
   FailureMessage = "Data stored in DB is correct";
   System.out.println("ReqData="+req_data);
   System.out.println("ResData="+res_data);
}
else{
   Failure = true;
   FailureMessage = "Data Stored in DB is NOT correct";
   System.out.println("ReqData="+req_data);
   System.out.println("ResData="+res_data);
}
我还建议使用
log.info()
而不是
System.out.println()
,因为在这种情况下,结果将进入jmeter.log文件,不会因为超过屏幕缓冲区大小而被“吃掉”


有关Beanshell脚本和各种暴露于Beanshell解释的JMeter API对象的更多信息,请参阅指南

我确实在我的
HTTP请求
-采样器中使用了
BeanShell断言
中剪下的以下代码来打印我的三个变量
id
类型

log.info(Thread.currentThread().getName()+": "+SampleLabel+": id: " + vars.get("id"));
log.info(Thread.currentThread().getName()+": "+SampleLabel+":  +-type: " + vars.get("type"));
log.info(Thread.currentThread().getName()+": "+SampleLabel+":  +-value: " + vars.get("value"));

你为什么不能把它们打印出来?输出是否看起来奇怪,或者您是否收到错误?请求\配置:在API请求中发送的值,mongo_db_配置:使用mongodb查询从mongodb获取并使用BSF后处理器处理的值。断言结果显示:断言错误:错误断言失败:正确断言失败消息:数据库中存储的数据不正确。但是不打印断言结果中的值。我在代码中没有看到断言,也没有任何“断言结果”。请将缺少的部分添加到您的问题中。