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月前
|
存储 JSON JavaScript
50+常用工具函数之xijs更新指南(v1.2.4)
50+常用工具函数之xijs更新指南(v1.2.4)
56 4
|
10月前
|
程序员 API 开发者
自动化脚本如何编写?打算写个自动发布文章的脚本教程
作为一名程序员/开发者,我们经常需要处理重复性的任务,比如发布文章到多个媒体平台。为了提高效率,我们可以编写自动化脚本来完成这些任务。本文将介绍如何使用万媒易发多平台内容同步助手来自动发布文章。
|
JavaScript 开发者
Vite 在运行过程中是如何发现新增依赖的?
Vite 在运行过程中是如何发现新增依赖的?
215 0
|
XML SQL 前端开发
loadrunner 脚本优化-关联设置
loadrunner 脚本优化-关联设置
213 0
|
缓存
如何写一个Compose状态页组件 (修正篇)
在上个月前,我写了这样的一篇文章,开源 | 如何写一个好用的 JetPack Compose 状态页组件 。里面讲了如何去写一个 compose 状态页组件,结果这反而是错误的开始,本篇就是对上述的一个修正及反思过程。
258 0
如何写一个Compose状态页组件 (修正篇)
|
测试技术 Python
pycharm不以pytest方式运行,想要切换回普通模式运行的操作
pycharm不以pytest方式运行,想要切换回普通模式运行的操作
861 0
 pycharm不以pytest方式运行,想要切换回普通模式运行的操作
|
Python
Python自动化实现web页面UI差异对比
以自动化或工具的方式实现页面UI与标准UI图对比并输出可视结果
1134 0
Python自动化实现web页面UI差异对比
|
Web App开发 安全 Windows
win10_x64更新错误解决: 安装一些更新时出现问题,但我们稍后会重试。如果持续出现这些问题,并且你想要搜索Web或联系支持人员以获取相关信息,以下信息可能会对你有帮助:
可能的原因:  1、windows 服务没打开 win+r,打开【运行】对话框 输入 【service.msc】 找到 【Windows Firewall】和【Internet connection sharing】 都启动,并设为【自动】,重新启动 【设置】--【更新和安全】 2、设置的代理,但是代理没打开 将设置的代理服务器打开。
7009 0
|
Windows
Python+selenium 自动化 - 实现自动导入、上传外部文件实例演示
Python+selenium 自动化 - 实现自动导入、上传外部文件实例演示
338 0
Python+selenium 自动化 - 实现自动导入、上传外部文件实例演示
|
Web App开发 安全 测试技术
LoadRunner12新增功能
LoadRunner12新增功能