2017-01-25 125 views
1

我有一個任務,我需要根據以前的採樣器結果執行兩個任務。如何實現If Else在Jmeter測試計劃中阻塞?

If Assertion fails { send email with the error message. }else { perform the tasks in while controller. }

我已經在如果控制器提供的條件很容易地實現第一部分${JMeterThread.last_sample_ok} == false

我有問題要else塊。我試過兩個IF控制器,但沒有成功。 這裏的情況是隻需要執行一個任務,不管是IF塊還是Else塊。但在我的情況下,它會去兩個塊並執行這兩個任務。 任何人都可以幫助如何實現這一目標? enter image description here

回答

0

JMeter中沒有「Else」塊,因此如果需要「Else」行爲,則只有「If」,因此需要使用具有相反條件的2 IF控制器。

但是,對於第二個如果控制器,你將無法使用這個,因爲這${JMeterThread.last_sample_ok}變量將是覆蓋與您的SMTP採樣的結果,因此,如果您的SMTP採樣會成功${JMeterThread.last_sample_ok}變量將成爲真正因此第二如果控制器也將被執行。

因此,我建議以下方法:

  • 如果你的斷言失敗

    • 在BeanShell的預處理器定義諸如自定義變量:

      vars.put("run_while_controller", "false"); 
      
  • 認沽你的控制器下另外如果控制器和使用${run_while_controller}作爲條件

替代選項,發送電子郵件後停止測試,這可以通過使用即Test Action採樣

今後我會用Debug SamplerView Results Tree Listener仔細檢查提示來完成所有JMeter變量值,這是查看所有JMeter變量和屬性值的最方便的方式。請參閱How to Debug your Apache JMeter Script文章以獲取有關深入瞭解JMeter測試意外行爲的更多信息。

+0

它的工作!謝謝 – Namrata

+0

兩個IF控制器需要兩次寫入相同的條件(儘管一次取反),這是潛在的缺陷來源,在兩個地方有一個IF。可疑。 – Franta

0

Please refer this link

這有詳細的關於如何使用它的步驟。

+0

請不要發佈鏈接只有答案。嘗試添加更多的細節到你的答案,以便如果鏈接死亡你的答案仍然有用 –