Locust性能-零基礎入門系列(2) -重寫wait_time

       在虛擬模擬的時候,可能對等待時間有更高的要求,好比假若有這麼一個場景要求:某任務要求每被執行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

qrcode_for_gh_39009e949117_258-1.jpg

相關文章
相關標籤/搜索