“Locust是一个用于可扩展的,分布式的,性能测试的,开源的,用Python编写框架/工具,它非常容易使用,也非常好学。它的主要思想就是模拟一群用户访问你的网站。每个用户的行为由你编写的python代码定义,同时可以从Web界面中实时观察到用户的行为 ”
01.Locust特点
1. 用简单python语言编写测试脚本,非常简单轻便。不需要笨重的UI和臃肿的xml代码,基于协同而非回调。
2. 分布式的,可扩展性的,可模拟上百万用户。Locust支持多机器的性能测试,每台机器可以模拟上千用户,当然这是可以控制的。
3. Locust有一个整洁的HTML+JS的用户界面,实时显示相关测试细节。由于用户界面是基于网络的,它是跨平台的且容易扩展。
4. 可以测试任何系统,尽管Locust是基于网站的,但它几乎可以测试任何系统,只需要你写一个客户端。
02.简介
- 安装
使用pip直接安装,炒鸡简单 - 简单的例子
from locust import HttpLocust, TaskSet def login(self): self.client.post("/login", {"username":"test", "password":"1234"}) def index(self): self.client.get("/") def profile(self): self.client.get("/myprofile") class UserBehavior(TaskSet): tasks = {index:2, profile:1} def on_start(self): login(self) class WebsiteUser(HttpLocust): task_set = UserBehavior min_wait=5000 max_wait=9000
- 运行locust
打开终端,键入如下命令
locust -f ../locust_files/上面的文件名.py --host=http://example.com - locust图形界面
因为是在本地运行locust,所以在浏览器键入
输入需要模拟的用户数量和每秒启动的用户数量,完成压力测试。