jmeter的自定義變量可以讓我們隨機選取變量,從而達到在性能測試過程中可以隨機選取變量的目的。但是在實際使用中發現一個問題,並不試用於所有場景,比如登錄
我的自定義變量如圖:
在登錄表單中的隨機變量取值方式為:
運行完后結果為:
可以看到,兩個用戶有一個登錄成功,有一個失敗,這是因為在取值時${__RandomFromMultipleVars(user1|user2)},用戶名是隨機取一個,而密碼${__RandomFromMultipleVars(password1|password2)}也是隨機取一個,而密碼與用戶名取的時候是獨立的,有可能取到的用戶名與密碼不匹配,這是只有兩個用戶,要是用戶多的話可能會導致大量的登錄失敗。此種情況有兩種解決方案,
第一:
不使用${__RandomFromMultipleVars(password1|password2)}這個方法來取變量,${__V(user${__threadNum})},換為這個方法,這個方法取的時候是第一個用戶的__threadNum就是1,這樣就能取到user1,密碼同理也是取到password1,這樣就能保證密碼與用戶名完全匹配了。
第二:
不用用戶自定義變量,而是從csv文件中讀取,在csv中取值是按行從左到右取值的,把一個用戶名密碼寫在同一行,這樣取值的時候也能保證用戶名與密碼保持一致。