在虛擬模擬的時候,可能對等待時間有更高的要求,好比假若有這麼一個場景要求:某任務要求每被執行1次,那麼下次的等待時間就➕1秒鐘。這種狀況,是能夠實現的,這也就體現了Locust的靈活性。可編程性,不少比較棘手的場景模擬難題,均可以經過編程的方式解決掉。
具體如何解決呢?自定義wait_time函數,實現源代碼以下:python
def wait_time(self): self.last_wait_time += 1 return self.last_wait_time
經過以上,每次執行task的時候 wait_time的源碼都會被執行1次,那麼咱們的場景模擬的目的就達到了。完整的locust file源碼以下:編程
from locust import User,task import time class MyUser(User): last_wait_time = 0 #能夠自定義wait time for locust def wait_time(self): self.last_wait_time += 1 return self.last_wait_time @task def my_task(self): nowTime = time.strftime("%Y-%m-%d %H:%M:%S") print("Executing my task,and the time now is:" + nowTime)
經過簡單分析,若是場景模擬是正確的,那麼每次打印的時間差異,應該是1/2/3/4...... 秒,這麼遞增的,執行完以後,以下所示,是和預想是一致的。app
/locust.runners: All users hatched: MyUser: 1 (0 already running) Executing my task,and the time now is:2020-09-20 20:21:52 Executing my task,and the time now is:2020-09-20 20:21:53 Executing my task,and the time now is:2020-09-20 20:21:55 Executing my task,and the time now is:2020-09-20 20:21:58
你們也能夠掃描並關注以下公衆號「TimTest」,會有更多性能測試相關內容分享。ide