Locust性能-零基础入门系列(2) -重写wait_time

       在虚拟模拟的时候,可能对等待时间有更高的要求,比如假如有这么一个场景要求:某任务要求每被执行1次,那么下次的等待时间就➕1秒钟。这种情况,是可以实现的,这也就体现了Locust的灵活性。可编程性,很多比较棘手的场景模拟难题,都可以通过编程的方式解决掉。

      具体如何解决呢?自定义wait_time函数,实现源代码如下:

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...... 秒,这么递增的,执行完之后,如下所示,是和预想是一致的。


/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”,会有更多性能测试相关内容分享。

Locust性能-零基础入门系列(2) -重写wait_time

上一篇:Locust 性能测试-小案例(1)-环境搭建


下一篇:【转载】 Locust 官方文档