Locust 集合點

直接編寫接口事務腳本對後臺接口進行測試;有時測試須要讓全部併發用戶完成初始化後再進行壓力測試,這就須要相似於LoadRunner中的集合點的概念,因爲框架自己沒有直接封裝,有以下辦法實現:併發

from gevent._semaphore import Semaphore all_locusts_spawned = Semaphore() all_locusts_spawned.acquire() def on_hatch_complete(**kwargs): all_locusts_spawned.release() //建立鉤子方法 events.hatch_complete += on_hatch_complete //掛載到locust鉤子函數(全部的Locust實例產生完成時觸發) class TestTask(TaskSet): def on_start(self): """ on_start is called when a Locust start before any task is scheduled """ self.login() all_locusts_spawned.wait() //限制在全部用戶準備完成前處於等待狀態

 

思路:框架

經過locust得基於gevent併發得機制,引入gevent的鎖的概念,代入到locust的鉤子函數中,實現集合點統一併發概念函數

相關文章
相關標籤/搜索