[英]JMeter: How to change user defined variable value for second iteration of loop count
[英]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 天,如果數據庫以這種方式配置,則不允許相同的日期 - 插入或更新將失敗。
我不知道你的測試場景的細節,但你可以考慮將當前迭代號和/或當前虛擬用戶號添加到用戶定義變量的日期,相關功能是:
vars.getIteration()
- 迭代次數ctx.getThreadNum()
- 用於用戶編號然而,最好的選擇是在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.