文章目录

  • 简介
  • 安装
  • 初试
  • 遇到的坑
  • 参考文献

简介

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,开始

结果

遇到的坑

  1. 无法访问http://0.0.0.0:8089/
    关闭科学上网工具,尝试访问http://localhost:8089/。
  2. 接口运行正确但没有图表出来
    如本人使用360浏览器,切换至极速模式即可。

参考文献

  1. Locust 官网
  2. Locust 文档
  3. Locust GitHub
  4. Locust Examples
  5. 性能测试工具Locust

Python压力测试工具——Locust相关推荐

  1. python的web压力测试工具-pylot安装使用

    pylot是python编写的一款web压力测试工具.使用比较简单.而且测试结果相对稳定. 这里不得不鄙视一下apache 的ab测试,那结果真是让人蛋疼,同样的url,测试结果飘忽不定,看得人心惊肉 ...

  2. go python php 压力测试_pyLot 基于python的压力测试工具

    因为组内的产品是一个供上海甚至全球所有designer使用的网站,所以并发性很高,于是一直存在访问速度不佳的诟病.为了提高访问速度,就需要对该网站的性能进行测试.于是在网上查了并发性测试和自动化测试的 ...

  3. 【总结】个人推荐的接口测试工具和接口性能/压力测试工具

    一般接口有2种测试,现在很多是模糊了这个,但是如果细分.一般还要写<接口测试用例>和<接口性能测试用例>.同样,也分接口测试报告和接口性能测试报告. 接口的本质及其工作原理 接 ...

  4. 5款软件压力测试工具分享

    一.什么是软件压力测试? 软件压力测试是一种基本的质量保证行为,它是每个重要软件测试工作的一部分.软件压力测试的基本思路很简单:不是在常规条件下运行手动或自动测试,而是在计算机数量较少或系统资源匮乏的 ...

  5. 基于python的性能测试工具–locust

    基于python的性能测试工具–locust  https://www.cnblogs.com/chunyanxu/p/8732720.html 性能测试工具Locust https://www.cn ...

  6. 开源的压力测试工具 PyLot

    为什么80%的码农都做不了架构师?>>>    一.什么是Pylot: Pylot(www.pylot.org)是一款开源的用以测试 Web Service性能和扩展性的工具,它运行 ...

  7. 几种网站压力测试工具调研与使用

    在项目上线之前,都需要做压力测试,目的是看下我们的网站能抗住多少的压力,能承担多少并发,如果不做压力测试,一旦出现大访问量时,我们的网站会挂掉.因此,我们对现有较流行的几种网络压力测试工具进行了简单调 ...

  8. 网站测压机器人_压力测试工具(bots)

    压力测试工具(bots) bots机器人介绍: bots就是机器人,可以模拟客户端的连接.通讯.操作等,是一种对服务端进行模拟测试的轻量级客户端程序,并且bots没有渲染等部分.引擎提供了Python ...

  9. 在线压力测试工具-程序员在线工具网

    本文要推荐的[ToolFk]是一款程序员经常使用的线上免费测试工具箱,ToolFk 特色是专注于程序员日常的开发工具,不用安装任何软件,只要把内容贴上按一个执行按钮,就能获取到想要的内容结果.Tool ...

最新文章

  1. python 怎样让 print 打印的结果不换行
  2. 【数字信号处理】相关函数应用 ( TDOA 时差估计实例 | 调制波特率 | 带宽 | 码元数量 | 信息量 )
  3. 音频编码标准发展现状
  4. ps -aux 和ps -elf 区别(查看进程)
  5. 飞鸽传书:webbrowser 本生是一个控件
  6. 从源码分析RocketMQ系列-Producer的SendResult来自哪里?
  7. android中断言_我可以使用断言在Android设备上?
  8. python中的元类_理解python中的元类
  9. ubuntu 安装nvm
  10. 微信小程序电商实战-购物车(上)
  11. GPS坐标系转换工具类
  12. 智铺子微信扫码点餐系统有哪些可操作的功能
  13. [转]周易入门三十五问答
  14. [图像特征匹配]SIFT、SURF、ORB算法笔记以及代码实现
  15. 将bios中的boot mode 从uefi改为legacy之后,进不去bios
  16. Carson带你学Android:这是一份全面详细的属性动画学习攻略!
  17. Hander,多线程传递数据
  18. AI是怎么样的演算的呢?预测《权力游戏》中角色的生死
  19. 用win7系统如何登录ftp服务器,必备技巧之最详细win7系统登陆ftp服务器的图文教程...
  20. 学习笔记 | 百度搜索技巧

热门文章

  1. CC++《数据结构大作业》
  2. 记录Blynk的使用日记-《小鱼缸那些事001》
  3. 上市首日大涨15%,投出优步的私募巨头TPG迎来开门红?
  4. 北京交通大学2019计算机学院拟录取名单,北京交通大学2019年全日制硕士研究生拟录取名单...
  5. linux hub设备,Linux设备驱动之USB hub驱动(续)
  6. 哪些人适合学习嵌入式开发
  7. 点击表格列变色,让表格的偶数排变色,点击表格的行让其变色
  8. 元宇宙游戏开发APP软件把现实搬到互联网中
  9. 好看的照片墙效果实现(RecyclerView+Cardview+Palette)
  10. OpenCV或yolov4使用IPCamera进行目标检测——真正的随时检测