2011-04-11 83 views
28

我正在使用jmeter來測試一個php應用程序。我需要爲每個用戶創建一個具有唯一會話的不同線程。因爲在我的應用程序中,一次只能爲每個用戶登錄一次,因此將同一用戶放置100次我不會得出任何結論。 我創建了40個用戶user0,user1 ....用戶39使用相同的密碼有沒有辦法爲他們每個人自動創建同時線程?多個用戶在jmeter中登錄

謝謝

回答

27

您可以使用CSV數據集配置。該控件將允許您使用外部變量源。 添加 - >配置元件 - > CSV數據集配置 必須設置變量名,是這樣的: 變量名稱(以逗號分隔):用戶名,密碼

然後你就可以在你的HTTP請求參數使用變量例如: $ {USERNAME}和$ {PASSWORD}

+0

感謝您的回答,我會檢查它是否/如何工作,我會給你接受投票;) – 2011-04-12 07:54:42

+0

另請參閱http:// jmeter-tips。blogspot.co.uk/2010/03/tip-10-how-to-add-authorization-to-test.html – wmorrison365 2013-08-14 15:31:24

1

我已經創建了一個CSV文件,並將其放置在bi目錄中,並添加了帶有參數UID和PWD的csv數據配置文件,但是當我運行測試時,它不顯示用戶標識和密碼在csv文件,而不是它顯示爲txtlogin = & txtpassword =。爲什麼它不挑選給定的用戶名和密碼

52

我剛剛使用jmeter爲使用Spring Security的應用程序實現了這一點(它與PHP非常相似)。這是相當簡單的,基本上是:

1)使用文本編輯器 防爆創建一個新的CSV文件:CSVSample_user.csv

username1, password1 
    username2, password2 

2)在JMeter中,創建一個CSV數據集Config元素

Thread Group>add>Config Element>CSV Data Set Config 
    => Assign variable names (see image) 

3)創建一個HTTP請求元素

Thread Group>add>Sampler>HTTP Request 
    => Create a POST with parameters, have the variable you created 
    put the values for the parameter. (See bottom image). 


注意:還有其他您需要的元素,如cookie管理器等。還需要將線程數設置爲登錄用戶數。

enter image description here

1

保持csv文件,並在同一文件夾中測試計劃(即JMX),並重新檢查在任何打字錯誤CSV datasetconfig和http請求的變量名稱。

24

我意識到這個問題已經過了一年多了,但我剛剛遇到了同樣的問題,並認爲我會爲任何其他人在此問題上遇到困難的問題添加我的解決方案。

如果你有一系列用戶名和密碼在值的末尾用數字來區分,你可以使用__threadNum變量來登錄它們。所以對於用戶名的值你可以說用戶$ {__ threadNum }。

此解決方案比包含csv更簡單,但只適用於您擁有列表(例如您在問題中建議的列表)的列表。

+0

您可以將'$ {__ threadNum}'與beanshell或javascript'switch'語句組合在一起。這將克服「僅限於限制」的限制,因爲在交換機本身中,基本上可以用任何東西代替價值。 – Pacerier 2015-10-05 07:26:50

+0

唯一缺少的是使用前導0填充$ {__ threadNum} ... – 2017-04-05 17:15:47