美文网首页
locust性能测试:安装与使用(二)

locust性能测试:安装与使用(二)

作者: HC2 | 来源:发表于2021-09-26 19:12 被阅读0次
      1. 安装 locust

        pip install locust

      1. 查看是否安装成功,查看版本号

    安装成功会输出版本号

    (pressure_env) lxdeMacBook-Pro-2:api_pressure lx$ locust -V
    locust 2.2.1
    
    • 3 更新最新版本号

      pip install -U --pre locust
      
    • 4 简单的接口压测例子:

    from locust import HttpUser,TaskSet,between,task
    import os
    
    headers = {"Content-Type": "application/json", "app_id": "101"}
    
    class UserBehavior(TaskSet):
    
        @task
        def test_baidu(self):
            '''查询全部'''
    
            url = '/widget?id=LocalNews&ajax=json&t=1632650885696'
            param = {
                "limit":8,
                "offset":0,
            }
            with self.client.get(url,params=param,headers={},catch_response = True) as response:
                print("=====", response.json())
    
    class WebsiteUser(HttpUser):
        host = 'http://news.baidu.com'
        tasks = [UserBehavior]
    
        wait_time = between(1, 2)
    
    if __name__ == '__main__':
        os.system("locust -f bb.py")
    
    image.png image.png

    参数解析:

    • Type:请求的类型,例如GET/POST。
    • Name:请求名称
    • requests:当前已完成的请求数量
    • fails:当前失败的数量
    • Median:响应时间的中间值,单位为毫秒
    • 90%ile:根据正态分布,90%的响应时间在正态分布平均值下方
    • Average:平均响应时间,单位为毫秒
    • Min:最小响应时间,单位为毫秒
    • Max:最大响应时间,单位为毫秒
    • average Size:平均每个请求的数据量,单位为字节
    • current RPS(requests per second):每秒钟处理请求的数量,即RPS

    执行结果:

    image.png

    脚本解析:

    1、 @task装饰器装饰的函数表示是要被测试的一个任务
    2、 wait_time = between(1, 3)
    来模拟用户的真实操作,例如用户在实际操作中,从上一步到下一步的操作,中间可能存在思考时间 ,between(1, 3) 表示用户思考的时间,随机为1到3秒

    host = 'http://news.baidu.com' 为要测试的域名

    也可以写为:

    class WebsiteUser(HttpUser):
        # host = 'http://news.baidu.com'
        tasks = [UserBehavior]
    
        wait_time = between(1, 2)
    
    if __name__ == '__main__':
        os.system("locust -f bb.py --host=http://news.baidu.com")
    

    当两处都写时,以#2为主

    class WebsiteUser(HttpUser):
        host = 'http://news.baidu.com222'   #1
        tasks = [UserBehavior]
    
        wait_time = between(1, 2)
    
    if __name__ == '__main__':
        os.system("locust -f bb.py --host=http://news.baidu.com")  #2
    

    ***旧版本写法有点不同:

    from locust import HttpLocust, TaskSet, task,events
    class UserBehavior(TaskSet):
    
        @task
        def test_baidu(self):
            '''查询全部'''
    
            url = '/widget?id=LocalNews&ajax=json&t=1632650885696'
            param = {
                "limit":8,
                "offset":0,
            }
            with self.client.get(url,params=param,headers={},catch_response = True) as response:
                print("=====", response.json())
    
    
    class WebsiteUser(HttpLocust):
        host = 'http://news.baidu.com/'
        task_set = UserBehavior
        min_wait = 1000
        max_wait = 1000
    

    相关文章

      网友评论

          本文标题:locust性能测试:安装与使用(二)

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