簡體   English   中英

Jmeter 開始新用戶迭代時,變量值重置為默認值

[英]Variable value reset to default when new user iteration starts in Jmeter

我正在使用 JMeter BeanShell 預處理器在每次迭代中生成唯一的日期值。 我正在使用兩 (2) 個用戶對數據庫進行負載測試。 對於用戶 1,日期值按預期生成,但當用戶更改為 2 時,日期變量值重置為默認值。 我應該怎么做才能防止在插入時重置日期變量值我面臨違反唯一鍵約束錯誤。[在此處輸入圖像描述]( https://i.stack.imgur.com/euEc9.png

我在屏幕截圖中提到了我的嘗試。 我需要幫助來解決我的問題

  1. 不要將代碼作為圖像發布
  2. 不要使用 Beanshell, 因為 JMeter 3.1 你應該使用 JSR223 測試元素和 Groovy 語言來編寫腳本

您的問題是兩個用戶都在日期上添加了 1 天,如果數據庫以這種方式配置,則不允許相同的日期 - 插入或更新將失敗。

我不知道你的測試場景的細節,但你可以考慮將當前迭代號和/或當前虛擬用戶號添加到用戶定義變量的日期,相關功能是:

然而,最好的選擇是在setUp Thread Group中的某處預先生成日期列表

示例 Groovy 代碼:

def now = new Date()

1.upto(200000,{index ->
    def date = now.plus(index)
    new File('dates.csv') << date.format('yyyy-MM-dd') << System.getProperty('line.separator')
})

然后使用CSV Data Set Config從主線程組中的dates.csv文件中讀取生成的日期

假設您有 2 個用戶和 100k 次迭代,這意味着最后日期為2570-08-11 ,因此請確保它符合您的要求,並且數據庫能夠接受這么遠的未來日期

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM