在運營活動測試過程當中,常常須要對秒殺活動或定時抽獎活動進行併發測試。那麼怎樣快速便捷的模擬多用戶同時參與活動,抽取獎品,進行併發測試呢?尤爲是,當獎品總數N<用戶總數M時,代碼是否會存在獎品多發給用戶,致使獎品剩餘總數出現負數的嚴重bug?html
下面介紹使用輕量級開源測試工具Jmeter進行併發測試的方法——巧用集合點。併發
以總產品數爲3,模擬多用戶(5個用戶)同時進行抽獎併發測試爲例,進行介紹。工具
思路:首先在運營後臺配置產品總數爲3,其次模擬多用戶登錄,最後經過設置集合點的方式,模擬多用戶同時進行抽獎併發測試。性能
下面進行詳細介紹。測試
1、模擬多用戶登陸ui
一、準備M個用戶登陸數據,將數據保存到data.txt文件中,以下所示:spa
二、將登錄接口參數化線程
經過添加CSV Data Set Config,將登錄接口參數化。以下圖所示:orm
設置好上述步驟後,再在登錄接口中引用手機號和密碼變量:${mobileNo},${passWord},以下圖所示:htm
2、在抽獎接口前設置集合點
性能測試中常常要進行多用戶併發測試,但真正的併發是不存在的,爲更真實的模擬併發,能夠在併發測試的接口前設置集合點。在本次示例中,當全部的虛擬用戶登錄以後,都相互等待,而後一塊兒訪問抽獎接口。設置集合點的方法以下:
一、在剛剛建立的腳本中,右鍵點擊 線程組---->定時器---->Synchronizing Timer,以下圖所示:
二、將抽獎接口移至集合點下,並在集合點中設置多少個用戶同時訪問
本次示例中,設置爲5個用戶併發訪問,以下圖所示:
注意,若設置5個用戶併發訪問時,需在線程組中設定,用於模擬多用戶同時測試的線程數爲5個。若是線程數達不到集合點設置的數,JMeter會一直不動,一直在等待達到設定的集合數到來。
添加完成以後,線程組線程數設定,以下所示:
集合點用戶數設定以下圖:
以上步驟都設置完成後,執行結果,結果展現中,第一個用戶抽獎時間爲:2016-12-15 08:19:30,以下圖:
第二個、第三個用戶抽獎時間都爲:2016-12-15 08:19:30,以下圖所示:
至此,已達到多用戶同時抽獎併發測試的目的。
使用非gui操做
jmeter -n -t admin.jmx -l test.jtl -e -o test_report
-e -o output,指的是在out文件下生成html報告
進入out文件夾,就能看到咱們生成的html報告了:
轉自:https://www.jianshu.com/p/088616023ecd