复盘了一下locust编写性能测试脚本的基础,因为之前简单学过,最近忘了,又复盘了一下,省的学习新内容忘了之前的内容,里面一些解释纯粹自己个人理解,有不对的欢迎指出。
一、安装locust
pip install locust -- 安装(在pycharm里面安装或cmd命令行安装都可)
locust -V -- 查看版本,显示了就证明安装成功了
二、locust介绍
Locust 是一种易于使用、可编写脚本且可扩展的性能测试工具。并且有一个用户友好的 Web 界面,可以实时显示测试进度。甚至可以在测试运行时更改负载。它也可以在没有 UI 的情况下运行,使其易于用于 CI/CD 测试。
Locust 使运行分布在多台机器上的负载测试变得容易。Locust 基于事件(gevent),因此可以在一台计算机上支持数千个并发用户。与许多其他基于事件的应用程序相比,它不使用回调。相反,它通过gevent使用轻量级进程。并发访问站点的每个Locust(蝗虫)实际上都在其自己的进程中运行(Greenlet)。这使用户可以在Python中编写非常有表现力的场景,而不必使用回调或其他机制。
三、脚本
1.方式一(直接在HttpUser中定义任务)
from locust import HttpUser, task, constant
class FlashUser(HttpUser):
host = 'http://127.0.0.1:8080/'
wait_time = constant(1)
@task
def login_test(self):
url = '/api/user/login'
data = {"userName":"xuyang@test.ai","password":"xy123456"}
headers = {"Content-Type": "application/json"}
self.client.request(method='POST', url=url, data=data, headers=headers, name='login登录')
文字对照代码看哈
HttpUser:控制用户发请求的频率、用户的思考时间、设置主机的IP地址、也可以定义任务
@task:@task用来标记哪个方法是任务,什么任务,我要做性能测试执行哪个接口
host:被测系统,你要发送请求到哪个服务器
wait_time:每次请求的间隔、停顿时间、思考时间
constant:为固定的思考时间,这里可以简单理解为固定定时器(只是wait_time的其中一种等待时间的方式,其它的可以自己研究一下)
描述:
- 创建一个User类FalshUser, 继承HttpUser,然后定