locust的脚本中,模拟负载的http协议的请求,同python requests库一样,以访问禅道系统为例
代码示例
# coding=utf-8
''' Created on 2019-11-08
author: ali
'''
import os
from locust import HttpLocust, TaskSet, task
class userTaskSet(TaskSet):
# 用户访问禅道首页
@task
def userLogin(self):
# 请求url
test_url = "http://127.0.0.1:8088/zentao/user-login.html"
# 定义请求头
webheaders = {
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36",
"Accept-Encoding": "gzip, deflate, br",
"Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8"
}
try:
res = self.client.get(url=test_url, headers=webheaders, verify=False)
if res.status_code == 200:
print("success")
else:
print("failed")
except Exception as e:
print(e)
class websitUser(HttpLocust):
task_set = userTaskSet
min_wait = 3000 # 单位为毫秒
max_wait = 6000 # 单位为毫秒
if __name__ == "__main__":
os.system("locust -f zentaoTest.py --host=http://127.0.0.1:8088")
脚本说明
userTaskSet类:继承TaskSet类,用于描述用户行为
userLogin(),类方法,描述一个用户为行,用户登录
@task,装饰该方法为一个事务
client.get(),发送get请求
WebsiteUser类:继承HttpLocust类,用于设置性能测试
task_set :指向一个定义的用户行为类
min_wait :模拟负载的任务之间执行时的最小等待时间(单位:毫秒)
max_wait :模拟负载的任务之间执行时的最大等待时间(单位:毫秒)
执行性能测试
(1)如果使用pycharm作为开发工具,可直接点击“运行”按钮,启动locust

(2)cmd命令行启动locust
- -f 指定性能测试脚本文件
- --host 指定被测试应用的URL地址,由于脚本中已经写明完整的URL地址,此处写none对测试没有影响

(3)访问locust web界面,地址:http://localhost:8089/
Number of users to simulate:设置模拟的用户总数
Hatch rate (users spawned/second):每秒启动的虚拟用户数
Start swarming:执行测试

(4)测试结果

2599

被折叠的 条评论
为什么被折叠?



