2017-04-18 82 views
0

利用JMeter我要檢查鎖定節只允許1個更新的JMeter檢查不同的說法在不同的線程

我正在運行的線程組,10個線程,預計只有1(並不總是第一個)線程返回0和另外9人返回1 我該如何聲明它?

線程組(10) - HTTP Sampler - - ?斷言

編輯

10實際上是一個動態屬性。所以我需要任何線程數來期望只有1個斷言才能返回成功。

測試是檢查記錄的鎖定是否正常工作,即使在壓力/負載測試中也只能更新一次記錄。

編輯2

使用關鍵部分控制器沒有給我失敗的確切結果

+0

什麼是鎖定部分:如果不僅 1成功請求成功呃失敗了? –

+0

代碼中的測試鎖定只允許一次執行操作,而其他進程將失敗 – user7294900

回答

0

最後我成功了,我保存在一個唯一的ID每個線程失敗計數和我用tearDown Thread Group末與If Controller

請求覈查後計算出故障

在線程組爲無效響應

並根據它JSR223 Sampler它通過每個線程唯一ID標記的故障標誌:

String threadNumber = String.valueOf(ctx.getThreadNum()); 
props.put("failures" + threadNumber, 1); 

JSR SAMPL

int numberOfFailures = 0; 
for (i=0; i < 10; i++) { 
    String id = "failures"+ String.valueOf(i); 
    failureFlag = props.get(id); 
    log.info("failureFlag=" + failureFlag); 
    if (failureFlag == 1){ 
     numberOfFailures ++; 
    } 
} 
if (numberOfFailures != 9) { 
    SampleResult.setSuccessful(false); 
} 
0

我可以看到實現您的方案有2種方法:

  1. 使用AutoStop Listener可通過JMeter Plugin s,它具有AutoStop on Error Rate功能,因此如果失敗的採樣器的百分比高於90,您將能夠停止測試。您可以安裝設置AutoStop監聽使用JMeter Plugins Manager

    JMeter Plugins Manager Autostop

  2. 使用Taurus tool作爲JMeter測試的包裝,金牛座有Pass/Fail Criteria subsystem,你可以把你的邏輯有條件地失敗,整個測試如果一個頁面錯誤率將超過90%。 Taurus將返回非零退出代碼,您可以稍後使用它(即在持續集成服務器中觸發構建失敗)。

+0

我只需要Jmeter解決方案。我用Jmeter使用Jenkins,期望所有Jmeter採樣器都能成功 – user7294900

相關問題