我正在使用 MailReaderSampler,它从给定的电子邮件 ID 中获取所有消息。所有电子邮件中都有一个验证 token 。目前, token 正在邮件主题上传递。
所以响应数据将有 :Date:--
To: --
From: --
Subject: token : someToken
我在 User Defined Variables
中定义了一个 Token 值我正在使用 Response assertion
检查邮件是否包含 代币 .
因此它会检查所有子结果(所有电子邮件)。现在,只要电子邮件包含 token ,则 我想停止测试并且断言条件不应该检查其他电子邮件,因为它已经找到了具有 token 值 的电子邮件.
关于如何做到这一点的任何建议?
最佳答案
这应该可以解决问题,但我还没有尝试过...使用以下代码在邮件采样器之后添加 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();
}
关于loops - 当断言为真时退出循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38109597/