CN115297039B - Http协议参数化测试架构方法、电子设备、存储介质 - Google Patents

Http协议参数化测试架构方法、电子设备、存储介质 Download PDF

Info

Publication number
CN115297039B
CN115297039B CN202211221626.6A CN202211221626A CN115297039B CN 115297039 B CN115297039 B CN 115297039B CN 202211221626 A CN202211221626 A CN 202211221626A CN 115297039 B CN115297039 B CN 115297039B
Authority
CN
China
Prior art keywords
parameter
protocol
http
request
function
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.)
Active
Application number
CN202211221626.6A
Other languages
English (en)
Other versions
CN115297039A (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 CN202211221626.6A priority Critical patent/CN115297039B/zh
Publication of CN115297039A publication Critical patent/CN115297039A/zh
Application granted granted Critical
Publication of CN115297039B publication Critical patent/CN115297039B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/18Protocol analysers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Abstract

本发明涉及基于Python语言的计算机数字处理技术领域,尤其涉及一种HTTP协议参数化测试架构方法、电子设备、存储介质,通过将协议函数参数化使得:开发者只需关注需要参数化的字段,无需传入请求头headers、请求地址url、请求体body全部请求参数;对于非关键参数、复杂嵌套参数,仅需关注该字段值,不需全量入参;对于参数字段的增减,无需改变参数化代码,保持和常规字段参数化做法一致;对于请求头headers,以及restful风格接口参数化,与非关键业务参数传值方式一致。

Description

HTTP协议参数化测试架构方法、电子设备、存储介质
技术领域
本发明涉及基于Python语言的计算机数字处理技术领域,尤其涉及一种HTTP协议参数化测试架构方法、电子设备、存储介质。
背景技术
现代互联网无论是Web端还是App端大都采用接口方式传递数据,接口通过网络协议来调用,最常用以及应用范围最广的协议为HTTP协议,参数化测试就是针对单个接口请求不同的数据,以此来检查其安全性和健壮性的测试手段。
现在业内常见的参数化方式大体分为如下两种:
1、使用工具类软件(如JMeter、Postman)。常见做法为数据驱动,把请求参数封到csv文件中,通过工具软件解析并发送请求,主要多用于以手工测试人员为主的接口体量较小的公司,对于复杂接口的参数化需求,如加密、运行时随机数据、测试环境切换、正则断言,以及上线接入CICD平台等实现过于繁琐或难以满足;
2、代码方式参数化。使用Java或Python语言HTTP请求类库编写代码,并结合ddt、pytest等框架来进行参数化,弥补了第一种参数化方式的缺点,但在测试代码中,需要传入包含请求头headers、请求地址url、请求体body全部请求参数,且对于嵌套结构参数某一字段值变更必须传入全量参,开发人员可能会填写错误参数及参数值,对于某些字段增减验证,由于需要改变请求逻辑涉及的代码,而另写一条测试用例,无形中增加了代码行数,并降低了维护成本,极大影响了参数化测试的开发效率和质量。
综上所述,如何有效地提高HTTP协议参数化测试的开发效率和质量,是目前本领域技术人员急需解决的技术问题。
发明内容
本发明旨在至少解决相关技术中存在的技术问题之一。为此,本发明提供一种以Python语言设计开发了HTTP协议参数化测试代码架构,实现提高HTTP协议参数化测试的开发效率和质量的目的。
本发明提供一种HTTP协议参数化测试架构方法,包括如下步骤:
S1.新建HTTP协议参数化测试架构类数据;
S2.自定义用于测试接口的传入协议类数据,继承步骤S1中HTTP协议参数化测试架构类数据;
S3.定义S2步骤中传入协议类数据中协议函数入参第一位为Python语法中的一种特殊字符作为强制入参的关键字,Python语法中的另一种特殊字符作为最后以收集参数结尾;
S4.发送测试HTTP请求,通过自动捕获,对步骤S3中协议函数类型的调用赋予变体装饰器,所述变体装饰器的传递变量名通过收集参数kwargs收集进来,与内置函数locals()收集值参数名进行比对,自动剔除同名参数,判断读取协议函数请求body类型参数值,递归合并收集参数kwargs及该参数值,作为实际的请求参数。
根据本发明提供的步骤S3中所述协议函数中非必传参数定义特殊标记值_del。
根据本发明提供的步骤S3中所述协议函数的函数体定义为请求地址url、请求体body。
根据本发明提供的步骤S3中所述协议函数中对于嵌套结构参数,暴露嵌套结构外层根节点参数,并定义doc中展现完整嵌套结构。
根据本发明提供的步骤S3中所述协议函数中分为第一参数及第二参数,对第二参数自定义标记,并根据协议函数逻辑定义字符串常量,及动态函数,协议函数返回值使用内置函数locals()获取局部变量。
根据本发明提供的步骤S3中所述协议函数对于第一参数,直接写入协议函数对外暴露的参数,对于第二参数及嵌套结构参数,写入参数化的字段。
根据本发明提供的步骤S3中所述协议函数采用外部入参优先逻辑。
根据本发明提供的协议函数传入特殊标记值_del的数据,在步骤S4参数递归合并后,自动递归剔除该数据。
本发明还提供一种电子设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述HTTP协议参数化测试架构方法的步骤。
本发明还提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述HTTP协议参数化测试架构方法的步骤。
本发明实施例中的上述一个或多个技术方案,至少具有如下技术效果之一:
本发明提供的一种HTTP协议参数化测试架构方法、电子设备、存储介质,具有如下优势:
1、开发者只需关注需要参数化的字段,无需传入请求头headers、请求地址url、请求体body全部请求参数;
2、对于非关键参数、复杂嵌套参数,仅需关注该字段值,不需全量入参;
3、对于参数字段的增减,无需改变参数化代码,保持和常规字段参数化做法一致;
4、对于请求头headers,以及restful风格接口参数化,与非关键业务参数传值方式一致。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的电子设备的结构示意图;
附图标记:
810.处理器;820.通信接口;830.存储器;840.通信总线。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。以下实施例用于说明本发明,但不能用来限制本发明的范围。
在本发明实施例的描述中,需要说明的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明实施例和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明实施例的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
在本发明实施例的描述中,需要说明的是,除非另有明确的规定和限定,术语“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明实施例中的具体含义。
在本发明实施例中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明实施例的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
下面结合图1描述本发明的HTTP协议参数化测试架构方法、电子设备、存储介质。
本发明为提高HTTP协议参数化测试的开发效率和质量,以Python语言设计开发了HTTP协议参数化测试代码架构。
1.新建HTTP接口协议参数化测试代码架构ProtocolAction类数据;
2.自定义用于测试接口的协议类数据,继承HTTP结构口协议参数化测试代码架构ProtocolAction类;
3.定义协议函数入参第一位为Python语法中的特殊字符作为强制入参的关键字,如*,Python语法中的特殊字符作为最后以收集参数结尾,如**,非必传参数定义特殊标记值_del,只暴露关键业务参数;对于嵌套结构参数,暴露嵌套结构外层根节点参数,并定义doc中展现完整嵌套结构;
4.函数体定义请求地址url、请求体body(根据实际调用底层requests类库参数来定义参数名,如get为params,post可为data、json等);
5.对于非关键业务参数可自定义测试字眼来标记,区分测试人员和正常业务,根据接口具体逻辑定义字符串常量(如版本号、平台名等),及动态函数(如时间戳、请求唯一id等),接口函数返回值统一使用内置函数locals()获取局部变量。本例中关键业务参数为第一参数,非关键业务参数为第二参数。
发送相应HTTP请求,采用协议类实例.请求方式.协议函数链式方式调用,通过__getattribute__自动捕获,对协议类函数类型的调用赋予变体装饰器_request_reflect。
变体装饰器中传递变量名通过收集参数kwargs收集进来,与内置函数locals()收集值(即request_data)参数名进行比对,自动剔除request_data同名参数,判断读取协议函数请求body类型参数值(如json参数值),递归合并kwargs及该参数值,作为实际的请求参数;
其中协议函数对于采用外部入参优先逻辑,对于关键业务参数,直接传入协议函数对外暴露的参数即可;对于非关键业务参数及嵌套结构参数,只需传入参数化的字段即可。对于要剔除的参数化字段,传入特殊标记值_del,会在参数递归合并后,自动递归剔除该字段,保证不用增加新的逻辑代码,外部请求逻辑代码行一致性,不需额外另写测试用例。
同时针对请求头headers,以及restful风格接口(请求方式),涉及请求地址url的参数化需求。
开发者调用与非关键业务参数传值方式一致,仅需关注要参数化的字段即可。
图1示例了一种电子设备的实体结构示意图,如图1所示,该电子设备可以包括:处理器(processor)810、通信接口(Communications Interface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的逻辑指令,以执行HTTP协议参数化测试架构方法。
此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的HTTP协议参数化测试架构方法。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (5)

1.一种HTTP协议参数化测试架构方法,其特征在于,包括如下步骤:
S1.新建HTTP协议参数化测试架构类数据;
S2.自定义用于测试接口的传入协议类数据,继承步骤S1中HTTP协议参数化测试架构类数据;
S3.定义S2步骤中传入协议类数据中协议函数入参第一位为Python语法中的一种特殊字符作为强制入参的关键字,Python语法中的另一种特殊字符作为最后以收集参数结尾,所述协议函数中非必传参数定义特殊标记值_del,所述协议函数中对于嵌套结构参数,暴露嵌套结构外层根节点参数,并定义doc中展现完整嵌套结构,所述协议函数中分为第一参数及第二参数,对第二参数自定义标记,并根据协议函数逻辑定义字符串常量,及动态函数,协议函数返回值使用内置函数locals()获取局部变量,所述协议函数对于第一参数,直接写入协议函数对外暴露的参数,对于第二参数及嵌套结构参数,写入参数化的字段;
S4.发送测试HTTP请求,通过自动捕获,对步骤S3中协议函数类型的调用赋予变体装饰器,所述变体装饰器的传递变量名通过收集参数kwargs收集进来,与内置函数locals()收集值参数名进行比对,自动剔除同名参数,判断读取协议函数请求body类型参数值,递归合并收集参数kwargs及该参数值,作为实际的请求参数,协议函数传入特殊标记值_del的数据,参数递归合并后,自动递归剔除该数据。
2.根据权利要求1所述的HTTP协议参数化测试架构方法,其特征在于,步骤S3中所述协议函数的函数体定义为请求地址url、请求体body。
3.根据权利要求1所述的HTTP协议参数化测试架构方法,其特征在于,步骤S3中所述协议函数采用外部入参优先逻辑。
4.一种电子设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至3任一项所述HTTP协议参数化测试架构方法的步骤。
5.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至3任一项所述HTTP协议参数化测试架构方法的步骤。
CN202211221626.6A 2022-10-08 2022-10-08 Http协议参数化测试架构方法、电子设备、存储介质 Active CN115297039B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211221626.6A CN115297039B (zh) 2022-10-08 2022-10-08 Http协议参数化测试架构方法、电子设备、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211221626.6A CN115297039B (zh) 2022-10-08 2022-10-08 Http协议参数化测试架构方法、电子设备、存储介质

Publications (2)

Publication Number Publication Date
CN115297039A CN115297039A (zh) 2022-11-04
CN115297039B true CN115297039B (zh) 2023-01-10

Family

ID=83834628

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211221626.6A Active CN115297039B (zh) 2022-10-08 2022-10-08 Http协议参数化测试架构方法、电子设备、存储介质

Country Status (1)

Country Link
CN (1) CN115297039B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117270831B (zh) * 2023-11-17 2024-02-23 天津华来科技股份有限公司 一种协议类同步与协程调用兼容实现方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109101415A (zh) * 2018-06-25 2018-12-28 平安科技(深圳)有限公司 基于数据库比对的接口测试方法、系统、设备和存储介质
CN111880977A (zh) * 2020-07-16 2020-11-03 北京天维信通科技有限公司 故障自愈方法和装置、设备及存储介质
CN111930635A (zh) * 2020-09-17 2020-11-13 深圳微品致远信息科技有限公司 基于swagger快速自动化测试的方法及系统
CN112579421A (zh) * 2019-09-27 2021-03-30 北大方正集团有限公司 接口测试方法、系统及计算机可读存储介质
WO2022134915A1 (zh) * 2020-12-25 2022-06-30 中兴通讯股份有限公司 一种接口测试方法、计算机设备及计算机可读存储介质
CN114741283A (zh) * 2022-03-30 2022-07-12 徐工汉云技术股份有限公司 一种基于python设计的接口自动化测试方法及装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105681126B (zh) * 2015-12-30 2019-07-26 合一网络技术(北京)有限公司 一种基于协议接口的自动化测试方法及系统
CN112631557A (zh) * 2020-12-18 2021-04-09 深圳赛安特技术服务有限公司 生成接口代码和/或接口文档的方法、装置及存储介质
CN112965912B (zh) * 2021-03-24 2024-02-09 云账户技术(天津)有限公司 接口测试用例生成方法、装置和电子设备
CN113220566A (zh) * 2021-04-26 2021-08-06 深圳市云网万店科技有限公司 接口性能测试脚本的生成方法、装置和计算机设备
CN114253848A (zh) * 2021-12-17 2022-03-29 瀚云科技有限公司 一种参数化接口测试方法、装置、电子设备及存储介质
CN114489629A (zh) * 2022-01-18 2022-05-13 广州优谷信息技术有限公司 一种基于接口文档的快速开发和测试方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109101415A (zh) * 2018-06-25 2018-12-28 平安科技(深圳)有限公司 基于数据库比对的接口测试方法、系统、设备和存储介质
CN112579421A (zh) * 2019-09-27 2021-03-30 北大方正集团有限公司 接口测试方法、系统及计算机可读存储介质
CN111880977A (zh) * 2020-07-16 2020-11-03 北京天维信通科技有限公司 故障自愈方法和装置、设备及存储介质
CN111930635A (zh) * 2020-09-17 2020-11-13 深圳微品致远信息科技有限公司 基于swagger快速自动化测试的方法及系统
WO2022134915A1 (zh) * 2020-12-25 2022-06-30 中兴通讯股份有限公司 一种接口测试方法、计算机设备及计算机可读存储介质
CN114741283A (zh) * 2022-03-30 2022-07-12 徐工汉云技术股份有限公司 一种基于python设计的接口自动化测试方法及装置

Also Published As

Publication number Publication date
CN115297039A (zh) 2022-11-04

Similar Documents

Publication Publication Date Title
CN101877696B (zh) 在网络应用环境下重构错误响应信息的设备和方法
CN112819153B (zh) 一种模型转化方法及装置
CN115297039B (zh) Http协议参数化测试架构方法、电子设备、存储介质
US7885204B1 (en) Method and system for testing network topology
CN108628748B (zh) 自动化测试管理方法和自动化测试管理系统
CN107360261A (zh) 一种http请求处理方法、装置及电子设备
CN111190596A (zh) 联调方法、装置、计算机设备及可读存储介质
CN114500690B (zh) 接口数据处理方法、装置、电子设备及存储介质
CN110196813A (zh) 接口测试方法、装置、设备和介质
CN113407327A (zh) 一种建模任务和数据分析的方法、装置、电子设备及系统
CN101278274A (zh) 简单对等点名称解析协议应用程序接口
CN115408169A (zh) 远程过程调用方法、装置、设备及可读存储介质
CN108093036A (zh) 一种获取资源的方法及装置
CN108809896A (zh) 一种信息校验方法、装置和电子设备
CN110554857B (zh) JavaBean生成方法、装置、系统及可读存储介质
CN115883310A (zh) 服务部署方法、服务部署系统、电子设备及存储介质
CN116521552A (zh) 一种测试缺陷的获取方法、装置、设备及可读存储介质
CN109816462A (zh) 一种发票信息的识别方法及装置
CN111651191B (zh) 应用于微服务构架的单应用打包方法及系统
CN114979307A (zh) 通信协议的解析方法、智能终端及存储介质
CN112379965B (zh) 沙盒文件映射系统、客户端装置、映射端装置、沙盒文件映射方法以及电子设备
CN114205276B (zh) 用于产品管理系统的性能测试方法及装置、电子设备
CN117171800B (zh) 一种基于零信任防护体系的敏感数据识别方法及装置
CN116506291B (zh) 一种电力系统网络设备配置内容解析方法及装置
CN112527656A (zh) 一种WebSocket接口的测试方法、装置及设备

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