博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Locust性能测试_百度案例
阅读量:5066 次
发布时间:2019-06-12

本文共 1921 字,大约阅读时间需要 6 分钟。

一、安装:

                1、Locust在PyPI上可用,可以通过pip或easy_install安装:pip install locustio

                2、查看Locust可用选项:locust --help
                3、在Windows上安装蝗虫在Windows上,运行pip安装locustio应该可以工作。但是,如果没有,很有可能可以通过首先为pyzmq、gevent和greenlet安装预构建的二进制包来修复它。下载地址:http://www.lfd.uci.edu/~gohlke/pythonlibs/,当你下载了.whl文件后,你 可以通过以下命令安装:pip install name-of-file.whl
                补充知识点:增加打开文件的最大数量限制机器上的每个HTTP连接都打开一个新文件(技术上是一个文件描述符)。操作系统可以为可打开的文件的最大数量设置一个低限制。如果限制小于测试中模拟用户的数量,就会发生故障。将操作系统的默认最大文件数量限制增加到 比您希望运行的模拟用户数量更高的数量。如何做到这一点取决于正在使用的操作系统。
                注意:在Windows上运行蝗虫应该可以很好地开发和测试负载测试脚本。但是,在运行大规模测试时,建议您在Linux机器上这样做,因为gevent在Windows下的性能很差。

二、大家最关心的是如何使用locust去实战,这一节先说一下基础入门的,下面的代码是完成一个百度的请求性能测试

# -*- coding: utf_8 -*-# locust性能测试from locust import HttpLocust, TaskSet, taskimport subprocessimport json# 性能测试任务类 TaskSet.class UserBehavior(TaskSet):    # 开始    def on_start(self):        pass    # 任务    @task(10)    def getTagVals(self):        u"""        request_url:请求路径        request_params:请求头参数        request_json:请求json参数        """        request_url = "https://www.baidu.com/" # (待测试的路径)        response = self.client.get(            url=request_url,        )        if response.status_code != 200:            print(u"返回异常")            print(u"请求返回状态码:", response.status_code)        elif response.status_code == 200:            print(u"返回正常")        # 这里可以编写自己需要校验的返回内容        # content = json.loads(response.content)["content"]        # if content["tagKey"] == 25:        #     print u"校验成功"        #     print json.dumps(content, encoding="UTF-8", ensure_ascii=False)# 性能测试配置class MobileUserLocust(HttpLocust):    u"""    min_wait :用户执行任务之间等待时间的下界,单位:毫秒。    max_wait :用户执行任务之间等待时间的上界,单位:毫秒。    """    # weight = 3    task_set = UserBehavior    host = "https://www.baidu.com/"  # (待测试的ip或者域名)    min_wait = 3000    max_wait = 6000if __name__ == "__main__":    subprocess.Popen("locust -f main_pt.py", shell=True)

 

 RPS是 每秒用户数、FAILUSERS是 失败率​

 

转载于:https://www.cnblogs.com/lixy-88428977/p/9367190.html

你可能感兴趣的文章
ES6内置方法find 和 filter的区别在哪
查看>>
Android实现 ScrollView + ListView无滚动条滚动
查看>>
java学习笔记之String类
查看>>
UVA 11082 Matrix Decompressing 矩阵解压(最大流,经典)
查看>>
jdk从1.8降到jdk1.7失败
查看>>
硬件笔记之Thinkpad T470P更换2K屏幕
查看>>
iOS开发——缩放图片
查看>>
HTTP之URL的快捷方式
查看>>
满世界都是图论
查看>>
配置链路聚合中极小错误——失之毫厘谬以千里
查看>>
代码整洁
查看>>
蓝桥杯-分小组-java
查看>>
Android Toast
查看>>
iOS开发UI篇—Quartz2D使用(绘制基本图形)
查看>>
docker固定IP地址重启不变
查看>>
桌面图标修复||桌面图标不正常
查看>>
JavaScript基础(四)关于对象及JSON
查看>>
JAVA面试常见问题之Redis篇
查看>>
jdk1.8 api 下载
查看>>
getElement的几中属性介绍
查看>>