CN115373654A - Locust中间件代码架构方法、电子设备、存储介质 - Google Patents

Locust中间件代码架构方法、电子设备、存储介质 Download PDF

Info

Publication number
CN115373654A
CN115373654A CN202211222040.1A CN202211222040A CN115373654A CN 115373654 A CN115373654 A CN 115373654A CN 202211222040 A CN202211222040 A CN 202211222040A CN 115373654 A CN115373654 A CN 115373654A
Authority
CN
China
Prior art keywords
locust
class data
request mode
function
code architecture
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202211222040.1A
Other languages
English (en)
Other versions
CN115373654B (zh
Inventor
刘斌
李果
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tianjin Hualai Technology Co Ltd
Original Assignee
Tianjin Hualai Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tianjin Hualai Technology Co Ltd filed Critical Tianjin Hualai Technology Co Ltd
Priority to CN202211222040.1A priority Critical patent/CN115373654B/zh
Publication of CN115373654A publication Critical patent/CN115373654A/zh
Application granted granted Critical
Publication of CN115373654B publication Critical patent/CN115373654B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及基于Python语言的计算机数字处理技术领域,尤其涉及一种Locust中间件代码架构方法、电子设备、存储介质,通过在Locust中间件代码架构中新建中间类数据,并使压测代码编写在压测类数据,并继承中间类数据,在压测中复用既有复用协议函数,实现快速压测,从而提高Locust压力测试的开发效率和质量。

Description

Locust中间件代码架构方法、电子设备、存储介质
技术领域
本发明涉及基于Python语言的计算机数字处理技术领域,尤其涉及一种Locust中间件代码架构方法、电子设备、存储介质。
背景技术
压力测试是通过不断向被测系统施加“压力”,测试系统在压力情况下的性能表现,考察当前软硬件环境下系统所能承受的最大负荷,以此来检查系统稳定性,并帮助找出系统瓶颈所在的测试手段。
Locust是一个由Python语言开发,基于协程方式实现的高并发压测框架。现团队内主要使用Locust框架进行压力测试相关,但在接口自动化测试流程体系中,先做接口的协议测试,再做性能压测,但碍于Locust架构体系基于协程方式发送请求,导致协议测试中已经做好成套协议类函数无法使用,需要按照Locust体系发送请求方式逐条重新编写协议请求,这个过程耗费心神,极易出错,同时需要调试协议请求编写是否有误,无形中增加了开发成本,大大降低压测开发效率及质量。
综上所述,如何有效地提高Locust压力测试的开发效率和质量,是目前本领域技术人员急需解决的技术问题。
发明内容
本发明旨在至少解决相关技术中存在的技术问题之一。为此,本发明提供一种以Python语言设计开发了Locust中间件代码架构,实现提高Locust压力测试的开发效率和质量的目的。
本发明提供一种Locust中间件代码架构方法,包括在HTTP框架下的如下步骤:
S1.新建中间类数据,并使所述中间类数据为Locust原生类的拓展类,调整中间类数据类值,使所述中间类数据标记为子类化;
S2.在步骤S1的中间类数据中建立传递函数,所述传递函数实现收敛不同的Locust请求方法至Locust底层的原生请求方式;
S3.在步骤S1的中间类数据中新建业务对接类的对接函数,并定义其请求方式,在对接函数中约定Locust不同请求方式入口,通过业务代码调用,获得实例对象及使所述实例对象获得对接函数的请求方式;
S4.发送请求动作,通过步骤S3中实例对象反射调用步骤S2中传递函数来发送Locust原生请求方式。
根据本发明提供的步骤S1中所述Locust原生类为HttpUser或FastHttpUser。
根据本发明提供的步骤S1中使中间类数据标记为子类化的方法为:调整中间类数据类值为abstract = True。
根据本发明提供的步骤S2中Locust底层的原生请求方式为client。
根据本发明提供的压测代码编写在压测类数据,并继承中间类数据。
根据本发明提供的所述压测代码通过with语法复用压测代码的协议函数。
根据本发明提供的所述协议函数的复用方式为:通过with语法连接,实例对象.请求方式.协议函数。
根据本发明提供的所述协议函数的请求方式写为locust_开头的请求方式。
本发明还提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上述Locust中间件代码架构方法的步骤。
本发明还提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述Locust中间件代码架构方法的步骤。
本发明实施例中的上述一个或多个技术方案,至少具有如下技术效果之一:
本发明提供的一种Locust中间件代码架构方法、电子设备、存储介质,通过在Locust中间件代码架构中新建中间类数据,并使压测代码编写在压测类数据,并继承中间类数据,在压测中复用既有复用协议函数,实现快速压测,从而提高Locust压力测试的开发效率和质量。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的电子设备的结构示意图;
附图标记:810.处理器;820.通信接口;830.存储器;840.通信总线。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。以下实施例用于说明本发明,但不能用来限制本发明的范围。
在本发明实施例的描述中,需要说明的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明实施例和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明实施例的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
在本发明实施例的描述中,需要说明的是,除非另有明确的规定和限定,术语“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明实施例中的具体含义。
在本发明实施例中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明实施例的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
下面结合图1描述本发明的Locust中间件代码架构方法、电子设备、存储介质。
本发明为提高Locust压力测试的开发效率和质量,以Python语言设计开发了Locust中间件代码架构。在HTTP框架下进行如下步骤:
1.新建LocustOperation中间类数据,LocustOperation中间类数据为Locust的HttpUser或FastHttpUser拓展类,其中HttpUser或FastHttpUser拓展类为Locust的原生类,通过调整中间类数据的类值,使abstract = True,标记该类为子类化,确保Locust在压测期间不会把此类当作驱动类;
2.在LocustOperation下建立_locust_send传递函数,其中_locust_send传递函数实现收敛不同Locust请求方法至Locust底层client,其中client为Locust底层的原生请求方式;
3.在LocustOperation下新建业务对接类HttpMethod的对接函数,并定义其请求方式,在HttpMethod中约定Locust不同请求方式入口,通过业务代码调用,获得LocustOperation实例对象及使LocustOperation获得相应的请求方式;
4.在HTTP框架下发送请求动作ProtocolAction中,通过LocustOperation实例对象反射调用_locust_send来发送Locust原生请求方式。
在压测代码中编写压测类数据继承LocustOperation中间类数据,使用with语法即可复用协议函数,调用方式为实例对象.请求方式.协议函数链式调用,其中请求方式写为locust_开头的请求方式,如locust_post(self)。
图1示例了一种电子设备的实体结构示意图,如图1所示,该电子设备可以包括:处理器(processor)810、通信接口(Communications Interface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的逻辑指令,以执行Locust中间件代码架构方法。
此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的Locust中间件代码架构方法。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种Locust中间件代码架构方法,其特征在于,包括在HTTP框架下的如下步骤:
S1.新建中间类数据,并使所述中间类数据为Locust原生类的拓展类,调整中间类数据类值,使所述中间类数据标记为子类化;
S2.在步骤S1中间类数据中建立传递函数,所述传递函数实现收敛不同的Locust请求方法至Locust底层的原生请求方式;
S3.在步骤S1中间类数据中新建业务对接类的对接函数,并定义其请求方式,在对接函数中约定Locust不同请求方式入口,通过业务代码调用,获得实例对象及使所述实例对象获得对接函数的请求方式;
S4.发送请求动作,通过步骤S3中实例对象反射调用步骤S2中传递函数来发送Locust原生请求方式。
2.根据权利要求1所述的Locust中间件代码架构方法,其特征在于,步骤S1中所述Locust原生类为HttpUser或FastHttpUser。
3.根据权利要求1所述的Locust中间件代码架构方法,其特征在于,步骤S1中使中间类数据标记为子类化的方法为:调整中间类数据类值为abstract = True。
4.根据权利要求1所述的Locust中间件代码架构方法,其特征在于,步骤S2中Locust底层的原生请求方式为client。
5.根据权利要求1所述的Locust中间件代码架构方法,其特征在于,压测代码编写在压测类数据,并继承中间类数据。
6.根据权利要求5所述的Locust中间件代码架构方法,其特征在于,所述压测代码通过with语法复用压测代码的协议函数。
7.根据权利要求6所述的Locust中间件代码架构方法,其特征在于,所述协议函数的复用方式为:通过with语法连接,实例对象.请求方式.协议函数。
8.根据权利要求7所述的Locust中间件代码架构方法,其特征在于,所述协议函数的请求方式写为locust_开头的请求方式。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至8任一项所述Locust中间件代码架构方法的步骤。
10.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述Locust中间件代码架构方法的步骤。
CN202211222040.1A 2022-10-08 2022-10-08 Locust中间件代码架构方法、电子设备、存储介质 Active CN115373654B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211222040.1A CN115373654B (zh) 2022-10-08 2022-10-08 Locust中间件代码架构方法、电子设备、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211222040.1A CN115373654B (zh) 2022-10-08 2022-10-08 Locust中间件代码架构方法、电子设备、存储介质

Publications (2)

Publication Number Publication Date
CN115373654A true CN115373654A (zh) 2022-11-22
CN115373654B CN115373654B (zh) 2023-01-10

Family

ID=84073990

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211222040.1A Active CN115373654B (zh) 2022-10-08 2022-10-08 Locust中间件代码架构方法、电子设备、存储介质

Country Status (1)

Country Link
CN (1) CN115373654B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117609101A (zh) * 2024-01-23 2024-02-27 云筑信息科技(成都)有限公司 一种用户大数据多引擎压测的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105959177A (zh) * 2016-04-26 2016-09-21 网易(杭州)网络有限公司 一种游戏服务器压力测试脚本的生成方法和装置
CN112287410A (zh) * 2020-11-05 2021-01-29 中国平安财产保险股份有限公司 压测数据存储隔离的方法、装置、计算机设备及存储介质
CN113835994A (zh) * 2020-06-24 2021-12-24 上海莉莉丝科技股份有限公司 基于Golang语言的服务器压力测试系统、方法及计算机可读存储介质
CN114185792A (zh) * 2021-12-13 2022-03-15 中国平安财产保险股份有限公司 一种压测场景的数据隔离方法、装置、设备及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105959177A (zh) * 2016-04-26 2016-09-21 网易(杭州)网络有限公司 一种游戏服务器压力测试脚本的生成方法和装置
CN113835994A (zh) * 2020-06-24 2021-12-24 上海莉莉丝科技股份有限公司 基于Golang语言的服务器压力测试系统、方法及计算机可读存储介质
CN112287410A (zh) * 2020-11-05 2021-01-29 中国平安财产保险股份有限公司 压测数据存储隔离的方法、装置、计算机设备及存储介质
CN114185792A (zh) * 2021-12-13 2022-03-15 中国平安财产保险股份有限公司 一种压测场景的数据隔离方法、装置、设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117609101A (zh) * 2024-01-23 2024-02-27 云筑信息科技(成都)有限公司 一种用户大数据多引擎压测的方法
CN117609101B (zh) * 2024-01-23 2024-05-28 云筑信息科技(成都)有限公司 一种用户大数据多引擎压测的方法

Also Published As

Publication number Publication date
CN115373654B (zh) 2023-01-10

Similar Documents

Publication Publication Date Title
US20200339139A1 (en) Automobile diagnostic method, apparatus, device and system, and diagnostic connection device
CN111967236B (zh) 消息处理方法、装置、计算机设备和存储介质
CN115373654B (zh) Locust中间件代码架构方法、电子设备、存储介质
CN108040329A (zh) eSIM模块及其签约数据的加载及其管理方法
CN113448594A (zh) 服务的处理方法、装置、计算机设备及存储介质
CN113872812B (zh) 一种信息处理方法、网络设备和终端设备
CN108111496B (zh) 为dubbo分布式应用暴露http服务的方法、装置及系统
CN108345508B (zh) 接口调用测试方法和装置
CN113360386A (zh) 交换芯片驱动测试方法、装置、电子设备和存储介质
CN111817878A (zh) 一种智能设备的联网方法、装置及云端服务器
CN111274137A (zh) 异步接口检测方法、异步接口检测系统和可读存储介质
CN112667359B (zh) 数据透传方法、电子设备及存储介质
CN109739752B (zh) 内置资源测试方法、装置、电子设备及可读存储介质
CN107305581B (zh) 分布式数据库系统中的表连接方法及分布式数据库系统
CN114610446A (zh) 一种自动注入探针的方法、装置及系统
CN114500237A (zh) 一种通信方法和系统
CN112632031A (zh) 分布式内存数据库长连接使用的实现方法及系统、电子设备、存储介质
US6823390B1 (en) Method of setting up data communication with a communication means and furthermore program modules and means therefor
CN105847344A (zh) 可登录web版app系统的二维码、及其方法与系统
CN113821267A (zh) 一种配置文件处理方法、控制终端和管理终端
CN114071453A (zh) 一种信息处理方法、装置、设备及可读存储介质
CN116627851B (zh) 接口测试方法以及装置
CN113645655B (zh) 一种关于IoT模组与终端的配网测试方法、装置及系统
CN114281706B (zh) 一种模型测评方法、系统及存储介质
CN112732362B (zh) 跨国软件资源访问方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant