美文网首页
Locust性能测试(1)

Locust性能测试(1)

作者: 钟微 | 来源:发表于2019-07-23 10:22 被阅读0次

    一、安装Locustio模块

    pip install locustio
    安装好后,查看版本号
    pip show locustio


    image.png

    二、开始测试

    # 保存为locust01.py
    # coding:utf-8
    from locust import HttpLocust, TaskSet, task
    
    # 建一个类BlogDemo(TaskSet),继承TaskSet,该类下面写一些准备请求的行为(访问的接口)
    class BlogDemo(TaskSet):
        # 用户行为:打开我的简书首页
        # @task装饰该方法表示为用户行为。
        # 括号里面参数表示该行为挑选执行的权重,数值越大,执行频率越高,不设置默认是1
        @task(1)
        def open_blog(self):
            # 定义requests的请求头
            header = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.80 Safari/537.36"}
    
            # self.client调用get和post方法,跟requests是一样的
            # requests.get 对应client.get
            # requests.post 对应client.post
            r = self.client.get("/u/125ddf84ee1d",  headers=header, verify=False)
            print(r.status_code)
            assert r.status_code == 200
    
    """
    WebsiteUser()类用于设置性能测试。
    task_set :指向一个定义了的用户行为类。
    min_wait :用户执行任务之间等待时间的下界,单位:毫秒。
    max_wait :用户执行任务之间等待时间的上界,单位:毫秒。
    """
    class websitUser(HttpLocust):
        task_set = BlogDemo
        min_wait = 3000  # 单位毫秒
        max_wait = 6000  # 单位毫秒
    
    if __name__ == "__main__":
        import os
        os.system("locust -f locust01.py --host=https://www.jianshu.com")
        # -f 参数是指定运行的脚本
        # --host是指定运行项目的host地址,
        # 这里用的https://www.jianshu.com,
        # 代码里面get访问的是"/u/125ddf84ee1d",拼接起来就是完整地址了
    

    三、运行结果

    [2019-07-23 09:37:29,214] DESKTOP-RV9FIIG/INFO/locust.main: Starting web monitor at *:8089
    [2019-07-23 09:37:29,214] DESKTOP-RV9FIIG/INFO/locust.main: Starting Locust 0.11.0
    

    8089是该服务启动的端口号。
    由于是在本机上搭建的locust,所以可以直接在浏览器输入http://localhost:8089/打开,
    如果是在其它机器上搭建的locust服务,那就通过http://其它机器IP:8089/打开

    四、效果展示

    image.png

    Number of users to simulate 设置虚拟用户总数
    Hatch rate (users spawned/second) 每秒启动虚拟用户数
    点击Start swarming 开始运行性能测试
    设置虚拟用户数20000,每秒启动2000个用户,点击Start swarming 开始运行

    五、结果分析

    image.png

    Type:请求类型;
    Name:请求路径;
    requests:当前请求的数量;
    fails:当前请求失败的数量;
    Median:中间值,单位毫秒,一般服务器响应时间低于该值,而另一半高于该值;
    Average:所有请求的平均响应时间,毫秒;
    Min:请求的最小的服务器响应时间,毫秒;
    Max:请求的最大服务器响应时间,毫秒;
    Content Size:单个请求的大小,单位字节;
    reqs/sec:每秒钟请求的个数。

    Charts栏三个图标分别是:
    吞吐量/每秒响应事务数(rps)实时统计
    平均响应时间/平均事务数实时统计
    虚拟用户数运行

    下图可表明:当前系统每秒可以处理467.5个请求


    total requests per second.png

    响应时间


    response times.png

    当前虚拟用户数为3417


    Number of user.png

    点stop可以停止测试


    stop.png
    点击new test可重新设置用户数
    New test.png

    相关文章

      网友评论

          本文标题:Locust性能测试(1)

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