美文网首页
locust性能测试:on_start, on_stop(四)

locust性能测试:on_start, on_stop(四)

作者: HC2 | 来源:发表于2021-09-28 23:36 被阅读0次

    一、

    • on_start :每个虚拟用户在启动时都会调用该方法

    • on_stop 当虚拟用户用户停止运行(被终止)时调用

    例如:我们在测试的下单功能的时候,首先要登录用户。

    所以我们可以在测试类声明一个on_start方法。on_start方法内初始化登录操作,每个虚拟用户在启动时都会调用该方法进行登录操作,再进行下单操作.

    当用户完成操作后,声明一个on_stop方法进行退出登录

    from locust import HttpUser,TaskSet,between,task
    
    n = 0
    class UserBehavior(TaskSet):
    
        def login(self):
            global n
            n += 1
            print("%s个虚拟用户开始启动,并登录"%n)
    
        def logout(self):
            print("退出登录")
    
    
    
        def on_start(self):
            self.login()
    
        @task(4)
        def test1(self):
            """
            用户浏览首页商品列表
            :return:
            """
    
            url = '/list'
            param = {
                "limit":8,
                "offset":0,
            }
            with self.client.get(url,params=param,headers={},catch_response = True) as response:
                print("用户浏览首页商品列表")
    
        @task(6)
        def test2(self):
            """
            用户查看商品详情
            :return:
            """
    
            url = '/detail'
            param = {
                'id':1
            }
            with self.client.get(url,params=param,headers={},catch_response = True) as response:
                print("用户浏览商品详情")
    
        @task(1)
        def test3(self):
            """
            用户查看订单列表
            :return:
            """
    
            url = '/order'
            param = {
                "limit":8,
                "offset":0,
            }
            with self.client.get(url,params=param,headers={},catch_response = True) as response:
                print("用户查看订单列表")
    
        def on_stop(self):
            self.logout()
    
    
    class WebsiteUser(HttpUser):
        host = 'http://127.0.0.1'
        tasks = [UserBehavior]
    
        wait_time = between(1, 2)
    
    if __name__ == '__main__':
        os.system("locust -f ccc.py")
    

    运行后停止:

    1个虚拟用户开始启动,并登录
    用户浏览首页商品列表
    2个虚拟用户开始启动,并登录
    用户浏览商品详情
    用户查看订单列表
    [2021-09-28 23:33:51,443] MacBook-Air.local/INFO/locust.runners: All users spawned: {"WebsiteUser": 3} (3 total users)
    3个虚拟用户开始启动,并登录
    用户浏览商品详情
    用户浏览首页商品列表
    用户浏览首页商品列表
    用户浏览商品详情
    用户浏览商品详情
    用户浏览商品详情
    用户查看订单列表
    用户浏览商品详情
    用户浏览商品详情
    用户浏览商品详情
    用户浏览商品详情
    退出登录
    退出登录
    退出登录
    

    每个虚拟用户启动只执行一次on_start和on_stop函数

    相关文章

      网友评论

          本文标题:locust性能测试:on_start, on_stop(四)

          本文链接:https://www.haomeiwen.com/subject/liccnltx.html