思考:
如果使用.json 或者 .yml 文件来生成 locust 压测脚本是否会更加方便, 如下面的.json 文件
{
"host": "https://www.baidu.com",
"wait_time": 1,
"variables": [],
"tasksets": [
{
"taskset_weight": 1,
"taskset_name": "hello",
"tasks": [
{
"method": "GET",
"url": "/duty/",
"task_weight": 3,
"assert_type": 1
}
]
}
]
}
思路:

  1. 根据 tasksets 动态生成 sequentialTaskSet 类对象
  2. 定义一个 locustfile.py 的模板, 遍历 tasksets 下面的 task 自动生成 job
  3. 参数提取, 全局变量, 静态文件 保存到 User 类的实例属性下

部分代码:

  1. 生成 sequentialTaskSet 类对象
  2. 全局变量设计
  3. 额外增加响应断言
  4. 最终的 locustfile.py 的代码


↙↙↙阅读原文可查看相关链接,并与作者交流