? ? ? ? 在運營活動測試過程中闲延,經(jīng)常需要對秒殺活動或定時抽獎活動進行并發(fā)測試端壳。那么怎樣快速便捷的模擬多用戶同時參與活動告丢,抽取獎品,進行并發(fā)測試呢损谦?尤其是岖免,當獎品總數(shù)N<用戶總數(shù)M時,代碼是否會存在獎品多發(fā)給用戶照捡,導致獎品剩余總數(shù)出現(xiàn)負數(shù)的嚴重bug颅湘?
? ? ? ? 下面介紹使用輕量級開源測試工具Jmeter進行并發(fā)測試的方法——巧用集合點。
? ? ? ? 以總產(chǎn)品數(shù)為3栗精,模擬多用戶(5個用戶)同時進行抽獎并發(fā)測試為例闯参,進行介紹。
? ? ? ? 思路:首先在運營后臺配置產(chǎn)品總數(shù)為3悲立,其次模擬多用戶登陸鹿寨,最后通過設置集合點的方式,模擬多用戶同時進行抽獎并發(fā)測試薪夕。
? ? ? ? 下面進行詳細介紹释移。
? ? ? ? 一、模擬多用戶登錄
? ? ? ? 1寥殖、準備M個用戶登錄數(shù)據(jù)玩讳,將數(shù)據(jù)保存到data.txt文件中,如下所示:
? ? ? ? 2嚼贡、將登陸接口參數(shù)化
? ? ? ? 通過添加CSV?Data?Set?Config熏纯,將登陸接口參數(shù)化。如下圖所示:
? ? ? ? 設置好上述步驟后粤策,再在登陸接口中引用手機號和密碼變量:${mobileNo}樟澜,${passWord},如下圖所示:
二叮盘、在抽獎接口前設置集合點
? ? ? ? 性能測試中經(jīng)常要進行多用戶并發(fā)測試秩贰,但真正的并發(fā)是不存在的,為更真實的模擬并發(fā)柔吼,可以在并發(fā)測試的接口前設置集合點毒费。在本次示例中,當所有的虛擬用戶登陸之后愈魏,都相互等待觅玻,然后一起訪問抽獎接口想际。設置集合點的方法如下:
? ? ? ? 1、在剛剛創(chuàng)建的腳本中溪厘,右鍵點擊?線程組---->定時器---->Synchronizing?Timer胡本,如下圖所示:
? ? ? ? 2、將抽獎接口移至集合點下畸悬,并在集合點中設置多少個用戶同時訪問
? ? ? ? 本次示例中侧甫,設置為5個用戶并發(fā)訪問,如下圖所示:
? ? ? ? 注意蹋宦,若設置5個用戶并發(fā)訪問時披粟,需在線程組中設定,用于模擬多用戶同時測試的線程數(shù)為5個妆档。如果線程數(shù)達不到集合點設置的數(shù)僻爽,JMeter會一直不動虫碉,一直在等待達到設定的集合數(shù)到來贾惦。
? ? ? ? 添加完成之后,線程組線程數(shù)設定敦捧,如下所示:
? ? ? ? 集合點用戶數(shù)設定如下圖:
? ? ? ? 以上步驟都設置完成后须板,執(zhí)行結(jié)果,結(jié)果展示中兢卵,第一個用戶抽獎時間為:2016-12-15?08:19:30习瑰,如下圖:
? ? ? ? 第二個、第三個用戶抽獎時間都為:2016-12-15?08:19:30秽荤,如下圖所示:
? ? ? ? 至此甜奄,已達到多用戶同時抽獎并發(fā)測試的目的。