locust1.*版本主要变化和脚本模板的更新对比

简介: locust1.*版本主要变化和脚本模板的更新对比

在linux安装locust才发现,locust已经更新到1.*了;导致以前用0.*版本写的脚本运行不了,要对应修改代码

locust更新版本导致运行脚本时提示类名称已变化,打开官方文档:https://docs.locust.io/en/latest/changelog.html#locust-class-renamed-to-user

非常明显的区别是:

HttpLocust类->HttpUser类

Locust类->User类

Locust的参数-c/-clients->-u /-users

没有task_set属性了,现在叫tasks,且用法为tasks=[MyTasks]

在没有Web UI的情况下运行Locust的选项已从更改--no-web--headless

 

95dcc176-b4fc-48d6-a19a-6239ba1c34f2.png

在安装1.*版本后使用原先脚本启动会报错 ImportError: The HttpLocust class has been renamed to HttpUser in version 1.0. For more info see: https://docs.locust.io/en/latest/changelog.html#changelog-1-0

修改导入名称后启动报错:

if issubclass(task_set, TaskSet) and not hasattr(task_set, “locust_task_weight”):TypeError: issubclass() arg 1 must be a class

后发现是因为没有修改task_set为tasks

 

0.*版本脚本模版

#locust 0.*版本使用


from locust import HttpLocust, TaskSet, task

class WebsiteTasks(TaskSet):

   def on_start(self):

       self.header = {

        'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, '

        'like Gecko) Version/11.0 Mobile/15A372 Safari/604.1'}

      self.cookies_test = 'cookies'

      return self.on_start


   @task(100)

   def Course_detial(self):

       url = 'pack

       datas = {"params": 111}

       r = self.client.get(url, params=self.locust.check_sing(datas), cookies=self.cookies_test, name='测试')

       x = r.content.decode()

       return x


class WebsiteUser(HttpLocust):

   host = 'https://www.baidu.com'

   task_set = WebsiteTasks

   min_wait = 5000

   max_wait = 15000


1.*脚本模版

#1.*版本使用,重点是将HttpLocust替换为Httpuser,task_set任务集需要数据类型为列表类型,且task_set需要修改为tasks


from locust import HttpUser, TaskSet, task

class UserTasks(TaskSet):

   def on_start(self):

       self.header = {

       'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, '

       'like Gecko) Version/11.0 Mobile/15A372 Safari/604.1'}

       self.cookies_test = 'cookies'

       return self.on_start


   @task(100)

   def Course_detial(self):

       url = 'pack

       datas = {"params": 111}

       r = self.client.get(url, params=self.locust.check_sing(datas), cookies=self.cookies_test, name='测试')

       x = r.content.decode()

       return x


class WebUser(HttpUser):

   host = 'https://www.baidu.com'

   tasks = [UserTasks]

   min_wait = 5000

   max_wait = 15000

相关文章
|
5月前
|
监控 搜索推荐 UED
用Python的pynput库追踪每一次点击和滚动
使用Python的`pynput`库可监听鼠标活动,包括点击和滚动事件。安装`pynput`后,通过`mouse.Listener`捕获鼠标事件。示例代码展示如何记录点击位置、滚动方向,并创建日志文件。通过类封装,可控制记录器的启停,并实现特定模式下的响应,如快速三连击左键自动打开网站。动手实践,将理论转化为实用工具。
|
6月前
|
存储 JSON JavaScript
50+常用工具函数之xijs更新指南(v1.2.4)
50+常用工具函数之xijs更新指南(v1.2.4)
60 4
Ansible工具快速定位想要的模块
Ansible工具快速定位想要的模块
92 0
|
Python
Python:简单的制作一个动态更新日志
Python:简单的制作一个动态更新日志
21048 0
|
jenkins 测试技术 持续交付
【实测】python模拟jenkins的定时设置时间库: 【 python_jenkins_monitor 】
【实测】python模拟jenkins的定时设置时间库: 【 python_jenkins_monitor 】
|
机器学习/深度学习 人工智能 自然语言处理
热加载技术:修改Python代码并实时查看结果 ⛵
本文讲解Python热加载技术,以及Reloading工具库的使用。暂停运行的代码,修改补充后重新运行,意味着训练了数个小时的模型参数被舍弃。热加载技术可以解决这个问题。
517 0
热加载技术:修改Python代码并实时查看结果 ⛵
|
Web App开发 安全 Windows
win10_x64更新错误解决: 安装一些更新时出现问题,但我们稍后会重试。如果持续出现这些问题,并且你想要搜索Web或联系支持人员以获取相关信息,以下信息可能会对你有帮助:
可能的原因:  1、windows 服务没打开 win+r,打开【运行】对话框 输入 【service.msc】 找到 【Windows Firewall】和【Internet connection sharing】 都启动,并设为【自动】,重新启动 【设置】--【更新和安全】 2、设置的代理,但是代理没打开 将设置的代理服务器打开。
7045 0
|
Python
Python自动化实现web页面UI差异对比
以自动化或工具的方式实现页面UI与标准UI图对比并输出可视结果
1185 0
Python自动化实现web页面UI差异对比
|
存储 JSON 数据格式
Python配置文件模块埋个坑,险些影响了版本上线!
configparser是python推荐使用的配置文件管理模块,但坦白说它真的不怎么好用,使用yaml、json等格式的存储,在多层级数据存储上,效率要比它高很多。但存在即合理,不是所有人都会使用yaml的格式,至于json的格式,很容易导致确实括号等问题,最终json.loads时报错....
305 0
|
安全
Docsify CLI v4.4.2版本发布,增加初始化时重写文件问询
此次版本发布,更新了旧版本依赖项中的漏洞,同时也添加一些功能和修复了一个 Bug
177 0