我正在使用MailReaderSampler,它从给定的电子邮件ID中获取所有消息。所有电子邮件中都有一个验证令牌。目前,令牌是在邮件主题上传递的。
因此,响应数据将具有:Date:--To: --From: --Subject: token : someToken
我已经在User Defined Variables
中定义了令牌值,并且正在使用Response assertion
检查邮件是否包含令牌。
因此,它将检查所有子结果(所有电子邮件)。现在,每当一封电子邮件包含令牌时,我都想停止测试,并且断言条件不应检入其他电子邮件,因为它已经找到了具有令牌值的电子邮件。
有什么建议吗?
最佳答案
这应该可以解决问题,但是我还没有尝试过……在您的邮件采样器之后,使用以下代码添加BeanShell采样器。
import org.apache.jmeter.samplers.SampleResult;
import org.apache.jmeter.threads.JMeterContextService;
SampleResult[] subResults = JMeterContextService.getContext().getPreviousResult().getSubResults();
for(SampleResult sr : subResults) {
if (sr.getResponseDataAsString().contains(vars.get("Token").toString()))
JMeterContextService.getContext().getEngine().stopTest();
}