• Locust登陆压力测试


    debugtalk 大大很早就在国内给大家介绍过locust. 在他的博文里有讲解有例子。真正实用得自己在项目中还得靠自己灵活应用。

    http://debugtalk.com/post/head-first-locust-advanced-script/

    1. 按照locust.io官网推荐的项目结构。如下图

    locust的子类httplocust底层用的是requests. 因此做API性能测试需要最好对rest API有些基础知识。

    2. 登陆例子

    from locust import HttpLocust, TaskSet, task
    from random import randint
    from locust.clients import HttpSession
    import json
    
    # Web性能测试
    class UserBehavior(TaskSet):
    @task
    def login(self):
    self.head = {'Content-Type': 'application/json;charset=utf-8',
    'token': 'planceholder',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36',
    'userId': 'planceholder'
    }
    
    self.form_data = {'account': 'admin',
    'password': 'zs123YL!'}
    
    with self.client.post("/api/chameleon-user/user/login", headers = self.head, data = json.dumps(self.form_data)) as response:
    print(response.status_code)
    print(response.content)
    
    class User(HttpLocust):
    task_set = UserBehavior
    min_wait = 1000
    max_wait = 3000
    host = "http://172.16.78.73:3011"

    3. 脚本运行

    import os
    os.system('locust -f locustfilesop_parameter.py')

    4. 指定压力用户数和用户产生的速度。

     

    5. 开始加压后,就可以看到网页API的响应成功,响应时间,和请求速率等性能参数了。

     

    6. locust 支持master 和slave集群,让locust支持百万级用户压力测试。

    个在应用locust的时候踩过的坑,

    1. 启动locust web interface 报告访问拒绝, 换成http://localhost:8089就OK了。 

    2. 运行locust脚本报套接字地址只允许使用一次。原因是同一个locust脚本多次启动了。


    ---------------------
    作者:warm77
    来源:CSDN
    原文:https://blog.csdn.net/warm77/article/details/80263996
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    HTTP概述
    【HTTP权威指南】第二章URL与资源
    【HTTP权威指南】第三章HTTP报文
    列表生成式
    六一问候
    NYOJ 528 找球号(三)
    NYOJ 138 找球号(二)
    HDU3790 最短路径问题
    NYOJ 228 士兵杀敌(五)
    NYOJ3 3 多边形重心问题
  • 原文地址:https://www.cnblogs.com/happyyangyanghappy/p/10368172.html
Copyright © 2020-2023  润新知