最近开始学习locust,从最初的安装到运行一个简单的demo。
lcoust官网上有介绍安装和使用:https://docs.locust.io/en/stable/installation.html
locust 需要的python环境,首先要安装python。
因为本人已经安装了python以及python所使用的开发环境pycharm。在pycharm 上安装lcoust。
一. 在pycharm的终端安装:
pip3 install locust # 安装locust
locust -V # 查看locust安装的版本
二. locust脚本的demo
1. 直接在HttpUser中定义任务,将“登录”这个任务直接写在HttpUser类中
from locust import HttpUser, constant, task, TaskSet, between
class TestUser(HttpUser):
host = "https://test.powerview.teplore.com/" # 设置网站的根地址
wait_time = between(1, 3) # 每次请求的停顿时间(思考时间)
# 直接在HttpUser中定义任务
@task
def login(self):
self.client.get(url='/login', data=data, name='登录') # 登录接口是get请求
2. 另外一种是写在任务集TaskSet,或SequentialTaskSet中。注意:TaskSet里的任务是并发执行,SequentialTaskSet里的任务是按顺序执行。
import json
from locust import HttpUser, constant, task, TaskSet, SequentialTaskSet, between
# 单独写在任务集taskset中, 多个任务时是并发执行,没有先后顺序
class TestTasks(TaskSet):
@task
def login(self):
self.client.get(url='/login', name='登录')
@task
def task2(self):
print("这是第二个任务!")
# 单独写在任务集SequentialTaskSet中, 多个任务是顺序执行,并且可以设置task重复执行的次数
class TestSeqTasks(SequentialTaskSet):
@task(1) # 执行一次
def login(self):
data = {'name':'test', 'password':'test'}
with self.client.get(url='/login', data=data, name='登录') as response:
print(response.text)
# 获取登录接口返回的token值
res = json.loads(response.text)
token = res.get('data').get('token')
self.token = token
@task(10) # 执行10次
def task2(self):
print("这是第二个任务:需要用到登录返回的token值:{}".format(self.token))
class TestUser(HttpUser):
host = "https://test.powerview.teplore.com/" # 设置网站的根地址
wait_time = between(1, 3) # 每次请求的停顿时间(思考时间)
tasks = [TestTasks, TestSeqTasks]
三、 在pycharm 的终端运行,进入到对应的目录下,执行启动语句
locust -f locust_demo.py
在浏览器中打开终端给出的网址: http://0.0.0.0:8089 。在页面设置用户并发数以及启动时间;
一个小的demo,就运行起来了。