本文共 2608 字,大约阅读时间需要 8 分钟。
通过pip 安装locust
pip install locustio
需要预先安装python3和pip,这次在安装环境时遇到一些坑,环境中原本使用的python2.6,需要重新安装python3环境,这时候可以安装一个虚拟环境
注:支持的python版本:2.7、3.4、3.5、3.6及以上
pip3 install virtualenv
virtualenv /venv
source /venv/bin/activate
进入了一个全新的python3的环境,你可以安装独立的python依赖了,安装完成之后可以启动程序运行
deactivate
locust的脚本里,模拟负载的请求和python的requests库使用方法基本一样,示例如下:
#!/usr/bin/env python# -*- coding: utf-8 -*-# @Author: lluozh# @Date : 2020/4/16# @Desc :from locust import HttpLocust,TaskSet,task,betweenclass MyBlogs(TaskSet): @task(1) def get_blog(self): header = { } body = { "roomId": "158589982254376" } req = self.client.get("/api/v1/model", headers=header, params=body, verify=False) # print(req.text) # if req.status_code == 200: # print("success") # else: # print("fails")class websitUser(HttpLocust): task_set = MyBlogs # 设置用户执行任务之间等待的上下限,单位秒 wait_time = between(3, 6) # # 等同于上面wait_time,单位毫秒 # min_wait = 3000 # max_wait = 6000 host = "http://benchmark-server.lluozh.com"if __name__ == "__main__": import os # os.system("locust -f locusttest.py --master") os.system("locust -f locusttest.py --slave --master-host=10.200.0.219")
脚本说明:
WebsiteUser()类用于设置生成负载的基本属性:
默认情况下,时间是在min_wait和max_wait之间随机选择,但是可以通过将wait_function设置为任意函数来使用任何用户定义的时间分布
1. 单机启动
locust -f testscript/locusttest.py --host=http://benchmark-server.lluozh.com
2. 分布式启动
master:locust -f testscript/locusttest.py --master --host=http://benchmark-server.lluozh.com
slave:
locust -f testscript/locusttest.py --slave --master-host=10.200.0.2190 --host=http://benchmark-server.lluozh.com
注:若在阿里云环境时,需要使用内部ip
成功启动提示
[2020-04-18 20:01:22,727] IMYalost/INFO/locust.main: Starting web monitor at *:8089[2020-04-18 20:01:22,729] IMYalost/INFO/locust.main: Starting Locust 0.8
8089是该服务启动的端口号,如果是本地启动,可以直接在浏览器输入http://localhost:8089打开UI界面,如果是其他机器搭建locust服务,则输入该机器的IP+端口即可
测试开始后,每个虚拟用户(Locust实例)的运行逻辑都会遵循如下规律:
转载地址:http://iptvf.baihongyu.com/