******【环境方面】******
报错信息1:
无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称
无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称 #此报错会导致无法运行pip命令,可能因为pip文件受损或未安装造成解决方案:
1、进入pip官网:https://pypi.org/project/pip/pip · PyPIThe PyPA recommended tool for installing Python packages.
https://pypi.org/project/pip/
2、点击Download files下载.tar.gz格式文件
3、将文件解压到一个新建的纯英文文件夹下,并通过文件夹地址栏进入cmd的dos窗口,输入命令:python setup.py install(前提是电脑已经安装了python解释器)
python setup.py install #Dos界面输入4、 提示success相关字样后关闭窗口,重启pycharm编辑器并运行pip命令即可。
报错信息2:
You are using pip version 21.1.2; however, version 21.3.1 is available.
You should consider upgrading via the 'D:\environment_test\Python_ui_Auto\venv\Scripts\python.exe -m pip install --upgrade pip' command
You are using pip version 21.1.2; however, version 21.3.1 is available. You should consider upgrading via the 'D:\environment_test\Python_ui_Auto\venv\Scripts\python.exe -m pip install --upgrade pip' command #此报错可能会造成引导安装新版的locust时无法加载最新资源解决方案:
在Terminal中输入如下命令后回车即可,安装后重启编辑器或等待自动加载
python -m pip install -U pip #python官方方法,在线更新pip
报错信息3:
ERROR: Could not find a version that satisfies the requirement locust
ERROR: Could not find a version that satisfies the requirement locust #版本号未找到解决方案:
使用pip install locustio==版本号进行安装,注意locust后面有io,安装后重启编辑器或等待自动加载
pip install locustio==0.14.6 #以0.14.6版本为例目前已更新至1.0之后版本,后文会讲解1.0之后版本变化
报错信息4:
Traceback (most recent call last):
File "D:/environment_test/ui_auto_web/script/Pressure_test.py", line 1, in
from locust import TaskSet, HttpLocust, task, constant, constant_pacing, between
ImportError: cannot import name 'HttpLocust'
Traceback (most recent call last): File "D:/environment_test/ui_auto_web/script/Pressure_test.py", line 1, in from locust import TaskSet, HttpLocust, task, constant, constant_pacing, between ImportError: cannot import name 'HttpLocust' #1.0版本以后的locust使用之前的版本包会造成这个问题解决方案:
将HttpLocust变更为HttpUser,且实例化时task_set修改成task_create
******新旧版本使用过程中主要变化点******
1、早期版本(0.14.6之前)使用Min_wait=xxx和Max_wait=xxx来设置每个虚拟用户的创建间隔时间,实践过程中发现此方法虽然没有报错但似乎已经失效,替代方案为:
- wait_time = constant(5)
- #放在用户类中使用,间隔等待时间,需要提前导包
2、1.0之后版本的locustio,不能再使用名称task_set来实例化,需将其替换为task_create或其它名称,不与其重名即可。
3、1.0之后版本的locustio在定义用户类时不可以再继承HttpLocust,需继承HttpUser类,此改动也需要将导包的位置进行修改,必须先确保是1.0之后的locustio才需要这样修改 ,查询当前locust版本命令:locust -V
- locust -V
- #查询当前locust版本,V是大写的
******基础结构使用******
基本框架结构:
- from locust import TaskSet, HttpLocust, task, constant
- #导包 1.0之后版本需把HttpLocust替换为HttpUser
- class Task01(TaskSet):
- #定义用户集
- @task(x)
- #任务(比重)
- def task_01(self):
- self.json_data = {
- "x": 1,
- "x": 1,
- "x": "123",
- "x": "456",
- "x": 1
- }
- self.Token = "x"
- #Token
- self.new_headers = {"Authorization-Token": self.Token, "Content-Type": "application/json"}
- self.response= self.client.post("/path", json=self.json_data,
- headers=self.new_headers)
- status_code= self.response.status_code
- res_json = self.response1.json()
- print("响应数据为:{},状态码为:{}".format(res_json, status_code))
- @task(x)
- #任务(比重)
- def task_02(self):
- pass
- ······
- class Administrator(HttpLocust):
- #定义用户类 1.0之后版本需把HttpLocust替换为HttpUser
- task_set = Task01
- #1.0之后版本不能用task_set命名
- wait_time = constant(x)
- host = "http://192.168.x.x:xxxx"
启动方法:
Terminal:locust -f xx.py (二级目录的话先cd到最后一层)
通过指定端口号访问127.0.0.1:端口号
注:如果127.0.0.1无效,则使用localhost替代
分布式配置方法:
在其它机器上部署相同的环境及文件后,使用如下命令来进行角色分配
- locust -f xx.py --master
- #控制机
-
- locust -f xx.py --slave --master-host=控制机IP
- #执行机
❤关注我,不迷路❤
******本文相关专栏******
******我的其它作品专栏******