压力测试-Locust框架基本使用及更新报错解决方案

这篇具有很好参考价值的文章主要介绍了压力测试-Locust框架基本使用及更新报错解决方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

近期了解到locust在1.0版本之后出现了部分的改动,使用最新locustio加载时可能会出现一些问题,本文将讲述locust的使用基础及常见的环境异常。

******【环境方面】******

报错信息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格式文件

压力测试-Locust框架基本使用及更新报错解决方案

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 <module>
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 <module>
    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
#执行机

关注我,不迷路

******本文相关专栏******

软件测试-压力测试专栏(点击进入)


  ******我的其它作品专栏******

PC常见故障汇总专栏(点击进入)

EXCEL综合场景应用详解(点击此处进入)

全国计算机等级考试-二级python基础(点击此处进入)文章来源地址https://www.toymoban.com/news/detail-435366.html

到了这里,关于压力测试-Locust框架基本使用及更新报错解决方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python性能测试-Locust框架

    Locust是一个比较容易上手的分布式用户负载测试工具。 它旨在对网站(或其他系统)进行负载测试,并确定系统可以处理多少个并发用户,Locust 在英文中是 蝗虫 的意思: 作者的想法是,在测试期间,放一大群 蝗虫 攻击您的网站。 当然事先是可以用 Locust 定义每个蝗虫(或

    2023年04月11日
    浏览(34)
  • Python性能测试框架Locust实战教程

    Locust是一个比较 容易上手的分布式用户负载测试工具 。它旨在对网站(或其他系统)进行负载测试,并确定系统可以处理多少个并发用户,Locust 在英文中是 蝗虫 的意思:作者的想法是在测试期间,放一大群 蝗虫 攻击您的网站。当然事先是可以用 Locust 定义每个蝗虫(或测

    2024年02月03日
    浏览(33)
  • 解决:macOS上用python+locust搭建测试框架,pip3 install locust安装成功,用locust -V验证提示‘zsh:command not found :locust’

    1.电脑软硬件配置: 电脑:MacBook pro m1 2020款, 系统:macOS Monterey 12.3.1, 芯片:Apple M1, 内存:16G 2.python的安装方式: 在python官网下载并安装 3.locust的安装方式: 打开终端,使用pip3 install locust安装成功后,提示内容如图: 警告内容大致提醒:没有将环境变量(相应的目录)

    2023年04月09日
    浏览(52)
  • 虹科 | 解决方案 | 机械免拆压力测试方案

    对于发动机的气门卡滞或气门开闭时刻错误、活塞环磨损、喷油嘴泄漏/堵塞等故障,往往需要解体发动机或拆卸部件才能发现;而对于某些轻微的故障,即使解体了发动机后也经常难于肉眼判别 虹科Pico提供的WPS500压力测试方案,可以动态测试汽车系统的压力波形,在不解体

    2024年02月05日
    浏览(55)
  • php7.4生产环境压力测试CPU占用100%解决方案

        最近开发了一个项目,客户要求压力测试,测试时发现并发量大时php-fpm占用cpu一直100%,调整了php的最大进程数pm.max_children,优化了程序效果不明显。后面使用了opcache,cpu使用率一下降到20%左右。 什么是opcache?下面是百度: Opcache 的前生是  Optimizer+  ,它是PHP的官方公司

    2024年02月10日
    浏览(54)
  • 【性能测试】分布式压测之locust和Jmeter的使用

    受限于单台机器的配置问题,我们在单台机器上达不到一个很高的压测并发数,那这个时候就需要 引入分布式压测 分布式压测原理: 一般通过局域网把不同测试计算机链接到一起,达到测试共享、分散操作、集中管理的目的。 选择一台作为调度机(MASTER),其他机器作为执

    2024年02月19日
    浏览(48)
  • 特性介绍 | MySQL 测试框架 MTR 系列教程(二):进阶篇 - 内存/线程/代码覆盖率/单元/压力测试

    作者:卢文双 资深数据库内核研发 序言: 以前对 MySQL 测试框架 MTR 的使用,主要集中于 SQL 正确性验证。近期由于工作需要,深入了解了 MTR 的方方面面,发现 MTR 的能力不仅限于此,还支持单元测试、压力测试、代码覆盖率测试、内存错误检测、线程竞争与死锁等功能,因

    2024年02月03日
    浏览(50)
  • 【运维知识大神篇】超详细的ELFK日志分析教程10(kafka集群原理+基本使用+zookeeper和kafka堆内存调优+kafka监控和压力测试+filebeat和logstash对接kafka)

    本篇文章继续给大家介绍ELFK日志分析,我们先前介绍了ELFK架构,zookeeper部署使用,kafka的部署,仅差kafka使用就将整个体系融汇贯通了。我们本篇文章将以kafka为核心,详细介绍kafka使用,最终将kafka融入ELFK架构中,大致内容见下面目录。 目录 kafka集群原理 一、专业术语 二、

    2024年02月04日
    浏览(71)
  • 聊聊大数据框架的数据更新解决方案: COW, MOR, MOW

    大数据框架下,常用的数据更新策略有三种: COW: copy-on-write, 写时复制; MOR: merge-on-read, 读时合并; MOW: merge-on-write, 写时合并; hudi等数据湖仓框架,常用的是前两种实现数据更新。而Doris则主要用后两种更新数据。 在数据写入的时候,复制一份原来的拷贝,在其基础上添加新数据

    2024年02月05日
    浏览(38)
  • 压力测试:使用 JMeter 进行压力测试

    创建新目录 jmeter_demo 在该目录下打开命令行输入: shell 复制代码 go mod init jmeter_demo go mod tidy 随后创建各目录与文件如下: shell 复制代码 -- jmeter_demo -- main main 函数目录(启动http和grpc服务) -- main.go -- proto grpc server 的目录 -- chat.go -- chat.pb.gp -- chat.proto -- test_plan jmeter 测试计划 --

    2024年04月16日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包