Python压力测试工具——Locust
文章目录
- 简介
- 安装
- 初试
- 遇到的坑
- 参考文献
简介
Locust一款开源性能测试工具,易于使用、脚本化、可扩展,对开发者非常友好。
特性:
- 代码定义用户行为
不用笨重的UI或膨胀的XML,只要简单的代码。 - 分布式和可扩展
Locust支持在多台机器上运行分布式的负载测试,可以用来模拟数百万个并发用户。 - 深受考验
Locust已被用来模拟数百万个并发用户。Battlelog是一个通过网页发送游戏连接请求的应用,它使用Locust进行了负载测试,所以说Locust是Battletested (久经沙场)。
安装
pip install locust
初试
app.py
import json
import tornado.web
import tornado.ioloopLOGIN = False # 是否登录def fib(n):"""计算斐波那契数列的第n项"""if n < 2:return nreturn fib(n - 1) + fib(n - 2)class LoginHandler(tornado.web.RequestHandler):def post(self):body = self.request.bodybody = json.loads(body)username = body.get("username")password = body.get("password")if username == "foo" and password == "bar":global LOGINLOGIN = Trueself.write("Welcome!")else:self.set_status(400)class IndexHandler(tornado.web.RequestHandler):def get(self):if LOGIN:self.write("Hello World!")else:self.set_status(400)class ItemHandler(tornado.web.RequestHandler):def get(self):id = self.get_argument("id")id = int(id)self.write(str(fib(id)))if __name__ == "__main__":print("http://localhost:8888")app = tornado.web.Application([(r"/login", LoginHandler),(r"/hello", IndexHandler),(r"/world", IndexHandler),(r"/item", ItemHandler),])app.listen(8888)tornado.ioloop.IOLoop.instance().start()
locustfile.py
import time
from locust import HttpUser, task, betweenclass QuickstartUser(HttpUser):host = "http://localhost:8888" # 访问的站点,最后不要加斜杠wait_time = between(1, 2)@taskdef index_page(self):self.client.get("/hello")self.client.get("/world")@task(3)def view_item(self):for item_id in range(10):self.client.get(f"/item?id={item_id}", name="/item")time.sleep(1)def on_start(self):self.client.post("/login", json={"username": "foo", "password": "bar"})
启动Locust:locust
若需指定路径:locust -f locust_files/my_locust_file.py
访问http://localhost:8089/,模拟用户数设为100,每秒产生用户设为10,开始
结果
遇到的坑
- 无法访问http://0.0.0.0:8089/
关闭科学上网工具,尝试访问http://localhost:8089/。 - 接口运行正确但没有图表出来
如本人使用360浏览器,切换至极速模式即可。
参考文献
- Locust 官网
- Locust 文档
- Locust GitHub
- Locust Examples
- 性能测试工具Locust
Python压力测试工具——Locust相关推荐
- python的web压力测试工具-pylot安装使用
pylot是python编写的一款web压力测试工具.使用比较简单.而且测试结果相对稳定. 这里不得不鄙视一下apache 的ab测试,那结果真是让人蛋疼,同样的url,测试结果飘忽不定,看得人心惊肉 ...
- go python php 压力测试_pyLot 基于python的压力测试工具
因为组内的产品是一个供上海甚至全球所有designer使用的网站,所以并发性很高,于是一直存在访问速度不佳的诟病.为了提高访问速度,就需要对该网站的性能进行测试.于是在网上查了并发性测试和自动化测试的 ...
- 【总结】个人推荐的接口测试工具和接口性能/压力测试工具
一般接口有2种测试,现在很多是模糊了这个,但是如果细分.一般还要写<接口测试用例>和<接口性能测试用例>.同样,也分接口测试报告和接口性能测试报告. 接口的本质及其工作原理 接 ...
- 5款软件压力测试工具分享
一.什么是软件压力测试? 软件压力测试是一种基本的质量保证行为,它是每个重要软件测试工作的一部分.软件压力测试的基本思路很简单:不是在常规条件下运行手动或自动测试,而是在计算机数量较少或系统资源匮乏的 ...
- 基于python的性能测试工具–locust
基于python的性能测试工具–locust https://www.cnblogs.com/chunyanxu/p/8732720.html 性能测试工具Locust https://www.cn ...
- 开源的压力测试工具 PyLot
为什么80%的码农都做不了架构师?>>> 一.什么是Pylot: Pylot(www.pylot.org)是一款开源的用以测试 Web Service性能和扩展性的工具,它运行 ...
- 几种网站压力测试工具调研与使用
在项目上线之前,都需要做压力测试,目的是看下我们的网站能抗住多少的压力,能承担多少并发,如果不做压力测试,一旦出现大访问量时,我们的网站会挂掉.因此,我们对现有较流行的几种网络压力测试工具进行了简单调 ...
- 网站测压机器人_压力测试工具(bots)
压力测试工具(bots) bots机器人介绍: bots就是机器人,可以模拟客户端的连接.通讯.操作等,是一种对服务端进行模拟测试的轻量级客户端程序,并且bots没有渲染等部分.引擎提供了Python ...
- 在线压力测试工具-程序员在线工具网
本文要推荐的[ToolFk]是一款程序员经常使用的线上免费测试工具箱,ToolFk 特色是专注于程序员日常的开发工具,不用安装任何软件,只要把内容贴上按一个执行按钮,就能获取到想要的内容结果.Tool ...
最新文章
- python 怎样让 print 打印的结果不换行
- 【数字信号处理】相关函数应用 ( TDOA 时差估计实例 | 调制波特率 | 带宽 | 码元数量 | 信息量 )
- 音频编码标准发展现状
- ps -aux 和ps -elf 区别(查看进程)
- 飞鸽传书:webbrowser 本生是一个控件
- 从源码分析RocketMQ系列-Producer的SendResult来自哪里?
- android中断言_我可以使用断言在Android设备上?
- python中的元类_理解python中的元类
- ubuntu 安装nvm
- 微信小程序电商实战-购物车(上)
- GPS坐标系转换工具类
- 智铺子微信扫码点餐系统有哪些可操作的功能
- [转]周易入门三十五问答
- [图像特征匹配]SIFT、SURF、ORB算法笔记以及代码实现
- 将bios中的boot mode 从uefi改为legacy之后,进不去bios
- Carson带你学Android:这是一份全面详细的属性动画学习攻略!
- Hander,多线程传递数据
- AI是怎么样的演算的呢?预测《权力游戏》中角色的生死
- 用win7系统如何登录ftp服务器,必备技巧之最详细win7系统登陆ftp服务器的图文教程...
- 学习笔记 | 百度搜索技巧
热门文章
- CC++《数据结构大作业》
- 记录Blynk的使用日记-《小鱼缸那些事001》
- 上市首日大涨15%,投出优步的私募巨头TPG迎来开门红?
- 北京交通大学2019计算机学院拟录取名单,北京交通大学2019年全日制硕士研究生拟录取名单...
- linux hub设备,Linux设备驱动之USB hub驱动(续)
- 哪些人适合学习嵌入式开发
- 点击表格列变色,让表格的偶数排变色,点击表格的行让其变色
- 元宇宙游戏开发APP软件把现实搬到互联网中
- 好看的照片墙效果实现(RecyclerView+Cardview+Palette)
- OpenCV或yolov4使用IPCamera进行目标检测——真正的随时检测