一、Locust简介
1.Locust是一个易于使用的分布式用户负载测试工具。它是用于负载测试网站(或其他系统)计算出一个系统能处理多少并发用户。
2.特定
①用普通的Python编写用户测试场景
②分布式和可扩展-支持数十万用户
③基于Web的UI
④可以测试任何系统
⑤可破解
二、安装Locust
1.若是您使用的是python2.7,请直接运行以下命令:
python -m pip install locustio
2.对于python3,请运行:
python3 -m pip install locustio
3.如果您想要一个新版本,可以使用pip直接从Git存储库安装。例如,使用Python 3到主分支安装:
python3 -m pip install -e git://github.com/locustio/locust.git@master#egg=locustio
4.一旦安装了Locust,您的shell中就应该有Locust命令了。(如果你不使用virtualenv您应该确保python脚本目录在您的系统路径上)要查看可用选项,请运行:
lucust --help
运行截图如下:

5.目前Locust支持Python 2.7, 3.5, 3.6, 3.7, 3.8.等版本。
三、运行Locust
1.话不多说先上代码:请将以下代码保存为文件:locust_1.py即可运行。
# coding=utf-8
import requests
from locust import HttpLocust,TaskSet,task,between
# 禁用安全请求警告
requests.packages.urllib3.disable_warnings()
class MyCSDNBlogs(TaskSet):
@task(1) # 访问我的博客首页
def get_blog(self):
# 定义请求头
header = {"user-agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0Name"}
req = self.client.get("/Rico_Rico_", headers=header, verify=False)
if req.status_code == 200:
print("请求成功!")
else:
print("请求失败!")
class websitUser(HttpLocust):
task_set = MyCSDNBlogs
wait_time = between(3, 6)
if __name__ == "__main__":
import os
os.system("locust -f locust_1.py --host=https://blog.csdn.net")
2.若是有的同学木有使用集成编译环境如PyCharm,而使用CMD窗口,需将目录切换到locust_1.py所在的目录后,使用命令即可运行:
python -f loust_1.py --host=https://blog.csdn.net
3.使用以上方式成功运行Locust后,打开你的浏览器并且输入网址:http://127.0.0.1:8089,你将看到这样的画面:

其中Number of users to simulate指要模拟的用户数,而Hatch rate (users spawned/second)指的是同一请求的最大次数(并发),Host指我们需要测试的网址了。
4.上几个运行状态的截图:


如上图,当前参数情况下,平均每秒56.9个请求数,错误率3%
四、总结
好了,本期分享到这里就结束了,能力有限难免有遗漏或者不足,请看官们批评指正,并在评论中留言,谢谢大家~


324

被折叠的 条评论
为什么被折叠?



