2-第一个Locust脚本
创建&执行第一个locustfile.py
在ide中创建我们的loucst项目,并创建第一个测试脚本,代码如下
## /mylocust/locustfiles/first_locustfile.py
import os
from locust import HttpUser, task
# 继承locust的HttpUser类,这样我们就可以使用其提供的client属性(HttpSession对象)来发起http请求
class MyFirstLocustUser(HttpUser):
# 加了@task装饰器后,这个方法就变成了可执行的测试方法
@task
def my_first_locust_task(self):
# 发起请求
self.client.get(url='/')
self.client.get(url='/test')
if __name__ == '__main__':
# 也可以在控制台中执行对应的命令 locust -f /locustfiles/first_locustfile.py
cmd = 'locust -f first_locustfile.py'
os.system(cmd)
我们运行这个脚本,控制台输出
/Users/kamiyeung/.local/share/virtualenvs/mylocust--FGPEWEP/bin/python /Users/kamiyeung/DEV/Personal/PycharmProjects/mylocust/locustfiles/first_locustfile.py
[2023-07-27 16:32:07,297] HUAWEI-MateBook-X-Pro.local/INFO/locust.main: Starting web interface at http://0.0.0.0:8089 (accepting connections from all network interfaces)
[2023-07-27 16:32:07,301] HUAWEI-MateBook-X-Pro.local/INFO/locust.main: Starting Locust 2.15.1
说明locust-webUI已经启动,点击http://0.0.0.0:8089(或者手动在浏览器中输入,Windows可能需要输入localhost:8089来访问)打开web-UI界面
界面显示的属性分别是
- Number of users: 你希望最终启动多少个并发用户,这里我设置最高20并发
- Spawn rate: 你希望每秒启动多少个并发用户,这里我设置每秒启动5个用户
- Host: 本次测试使用的域名,设置默认使用https://www.baidu.com作为域名发起请求
- Run time: 测试总运行时间设置,设置运行10秒
点击开始按钮,并发程序就开始运作了,结果如图
小结
- 一个locustfile的一定需要一个User类,其应该继承HttpUser(或者FastHttpUser,后面再介绍),从而可以使用client属性来发起HTTP requests并发请求;
- 并发测试任务一定要添加@task装饰器