2016-06-29 10 views
4

私は与えられた電子メールIDからすべてのメッセージを取得するMailReaderSamplerを使用しています。すべての電子メールには、検証トークンが含まれています。今のところ、トークンはメールの件名に渡されています。アサーションが真のときにループを終了します

だから、応答データはを持っています:

Date:-- To: -- From: -- Subject: token : someToken

私はUser Defined Variablesにトークン値を定義していると私はメールがトークンが含まれているかどうかをチェックするためにResponse assertionを使用しています。

したがって、すべてのサブ結果(すべてのメール)を確認します。電子メールにトークンが含まれている場合はいつでも、テストを中止したいと思います。アサーション条件は、トークン値がの電子メールをすでに見つけたので、他の電子メールをチェックインするべきではありません。

どのようにすればいいですか?

答えて

0

これはこのトリックですが、まだ試していません... 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(); 
} 
+0

Ivan Markovic:それは働いた。ありがとう。私もダミーサンプラーを含めたい、メールの結果を得る(トークンが一致するかどうかにかかわらず)、その結果のアサーションを行う。だから、テストを止める代わりに、変数を追加して結果をそこに格納し、それをアサーション用のダミーサンプラーに渡すことはできますか? – Rekha

+0

問題はありません。結果としてトークンだけを取得するのか、それともすべてのメッセージを取得するのかを教えてください。 Btwでは、Beanshell Samplerでアサーションを行うことができます。あるいはBSサンプラーに独自の応答をさえすれば、それをアサートすることができます...? –

関連する問題