CN117579531A - 一种需要动态加验签接口的压测方法 - Google Patents
一种需要动态加验签接口的压测方法 Download PDFInfo
- Publication number
- CN117579531A CN117579531A CN202410054203.2A CN202410054203A CN117579531A CN 117579531 A CN117579531 A CN 117579531A CN 202410054203 A CN202410054203 A CN 202410054203A CN 117579531 A CN117579531 A CN 117579531A
- Authority
- CN
- China
- Prior art keywords
- request
- parameters
- http request
- signature
- parameter
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 30
- 238000009530 blood pressure measurement Methods 0.000 title claims abstract description 26
- 238000004364 calculation method Methods 0.000 claims abstract description 23
- 238000012360 testing method Methods 0.000 claims description 9
- 238000012795 verification Methods 0.000 claims description 6
- 239000003550 marker Substances 0.000 claims description 3
- 230000008569 process Effects 0.000 abstract description 3
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3696—Methods or tools to render software testable
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Measuring Fluid Pressure (AREA)
Abstract
本发明公开了一种需要动态加验签接口的压测方法,包括创建线程组,在线程组中添加并配置待压测的接口的HTTP请求;对HTTP请求的入参进行参数化;在HTTP请求下添加预处理程序;通过预处理程序获取HTTP请求的入参和HTTP请求的请求参数,将请求参数作为入参传入签名计算方法,得到加密后的签名参数;将加密后的签名参数添加至HTTP请求的请求头中;基于HTTP请求对待压测的接口进行压测。本发明每次执行HTTP请求时,都会先执行指定的参数化,将新的参数赋给变量,然后得到一次请求的入参,入参在请求前再处理得到加密后的签名参数,将签名参数添加到请求,通过接口的调用接收请求进行验签,提高了压测结果的准确性。
Description
技术领域
本发明涉及接口测试技术领域,具体涉及一种需要动态加验签接口的压测方法。
背景技术
常规接口的压测通常是直接通过压测工具录入接口请求地址和请求参数进行,如果参数需要动态变化,需要进行入参的参数化,然后即可对接口进行压测。
对于有加验签要求的接口进行压测时,通常需要将入参通过一定的加签方法做签名后再进行接口请求,如果此时取消加验签进行压测,会导致压测结果偏差,因为加验签也会有资源耗损。如果入参可以保持不变,那么可以先将入参通过加签方法计算得到对应签名,再把该签名放到请求参数中,在不修改入参的前提下仍可进行压测。但是,如果接口压测需要动态变化入参,那么就需要针对每一次请求参数做签名计算后再请求接口。
目前针对加验签接口的压测往往有两种处理方案:1、采取入参不变,提前计算签名,用相同请求参数进行压力测试;2、压测时取消接口加验签逻辑,仅压测接口实现的业务逻辑。现有技术方案适用场景有限,如果压测场景必须变换入参才能模拟真实业务场景,就需要提前构造多套入参及签名,费时费力。如果取消加验签,那么压测结果就未考虑加验签程序的资源消耗,压测结果失真。
因此,本发明提供了一种需要动态加验签接口的压测方法,以至少解决上述部分技术问题。
发明内容
本发明要解决的技术问题是:提供一种需要动态加验签接口的压测方法,以至少解决上述部分技术问题。
为实现上述目的,本发明采用的技术方案如下:
一种需要动态加验签接口的压测方法,包括以下步骤:
步骤1、创建线程组,在线程组中添加并配置待压测的接口的HTTP请求;
步骤2、对HTTP请求的入参进行参数化;
步骤3、在HTTP请求下添加预处理程序;
步骤4、通过预处理程序获取HTTP请求的入参和HTTP请求的请求参数,将请求参数作为入参传入签名计算方法,得到加密后的签名参数;
步骤5、将加密后的签名参数添加至HTTP请求中;
步骤6、基于HTTP请求对待压测的接口进行压测。
进一步地,步骤1中,在JMeter的测试计划下创建线程组,在线程组中添加待压测的接口的HTTP请求,并配置HTTP请求的信息,信息包括请求路径、入参。
进一步地,步骤2包括:步骤21、根据HTTP请求的业务场景判断是否需要生成时间参数和随机参数;步骤22、如果需要生成时间参数,则通过JMeter的函数助手生成时间参数并赋值给HTTP请求的入参的时间变量;步骤23、如果需要生成随机参数,则通过JMeter的函数助手生成随机参数并赋值给HTTP请求的入参的数值变量;步骤24、通过Jmeter读取传入的CSV文件中需要的参数并赋值给HTTP请求的入参的名称变量;步骤25、将时间变量、数值变量和名称变量分别与标记符进行拼接并替换HTTP请求中对应的请求参数。
进一步地,步骤4包括:步骤41、获取HTTP请求的入参;步骤42、将HTTP请求的请求参数组装为JSON Object对象,将JSON Object对象转化为JSON字符串;步骤43、调用业务场景对应的签名计算方法,将JSON字符串作为入参传入签名计算方法中,得到加密后的签名参数。
进一步地,步骤4中,预处理程序引入JMeter的JAR包,通过JMete的JAR包获取HTTP请求的请求参数签名计算。
进一步地,步骤4中,预处理程序引入签名计算的JAR包,通过签名计算的JAR包获取签名计算方法。
进一步地,步骤3中,预处理程序采用BeanShell预处理程序。
进一步地,步骤5中,通过签名标记将加密后的签名参数添加至HTTP请求的请求头或请求主体中。
与现有技术相比,本发明具有以下有益效果:
本发明每次执行HTTP请求时,都会先执行指定的参数化,将新的参数赋给变量,然后得到一次HTTP请求的入参,入参在HTTP请求前再处理得到加密后的签名参数,将签名参数添加到HTTP请求,通过接口的调用接收HTTP请求进行验签,提高了压测结果的准确性。
附图说明
图1为本发明方法流程图。
具体实施方式
术语解释:
JMeter 即Apache JMeter,是 Apache 组织基于 Java 开发的压力测试工具。
CSV文件是一种用来存储数据的纯文本格式文件。
BeanShell预处理程序是Apache JMeter 中一种常用的预处理器。
JAR包是一种文件格式,用于将Java类、资源和元数据打包到一个文件中。
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进一步详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明提供的一种需要动态加验签接口的压测方法,包括以下步骤:
步骤1、创建线程组,在线程组中添加并配置待压测的接口的HTTP请求;
步骤2、对HTTP请求的入参进行参数化;
步骤3、在HTTP请求下添加预处理程序;
步骤4、通过预处理程序获取HTTP请求的入参和HTTP请求的请求参数,将请求参数作为入参传入签名计算方法,得到加密后的签名参数;
步骤5、将加密后的签名参数添加至HTTP请求的请求头中;
步骤6、基于HTTP请求对待压测的接口进行压测。
本发明每次执行HTTP请求时,都会先执行指定的参数化,将新的参数赋给变量,然后得到一次HTTP请求的入参,入参在HTTP请求前再处理得到加密后的签名参数,将签名参数添加到HTTP请求,通过接口的调用接收HTTP请求进行验签,提高了压测结果的准确性。
本发明步骤1中,在JMeter的测试计划下创建线程组,在线程组中添加待压测的接口的HTTP请求,并配置HTTP请求的信息,信息包括请求路径、入参等。
本发明步骤2包括:步骤21、根据HTTP请求适用的业务场景判断是否需要生成时间参数和随机参数;步骤22、如果需要生成时间参数,则通过JMeter的函数助手中的${__Random(11111111,99999999,num)}方法生成时间参数并赋值给HTTP请求的入参的时间变量time;步骤23、如果需要生成随机参数,则通过JMeter的函数助手中的${__Random(11111111,99999999,num)}方法生成随机参数并赋值给HTTP请求的入参的数值变量number;步骤24、通过Jmeter读取传入的CSV文件中需要的参数并赋值给HTTP请求的入参的名称变量name,CSV文件中需要的参数包括如登录名、昵称、企业名称等不能用时间参数和随机参数替代的参数;步骤25、将时间变量、数值变量和名称变量分别与标记符进行拼接并替换HTTP请求中对应的请求参数,如${time}、${number}、${name}。
如此,每次执行HTTP请求实时,Jmeter中参数化获取到的参数值就会不同,使每次执行的参数不同。
本发明步骤3中,预处理程序采用BeanShell预处理程序。
本发明步骤4包括:步骤41、通过sampler.getArguments方式,获取HTTP请求的入参;步骤42、通过toJSONString函数,将HTTP请求的请求参数组装为JSON Object对象,将JSON Object对象转化为JSON字符串;步骤43、调用业务场景对应的签名计算方法,将JSON字符串作为入参传入签名计算方法中进行MD5加密,得到加密后的签名参数。预处理程序引入JMeter的JAR包,通过JMete的JAR包获取HTTP请求的请求参数签名计算。预处理程序引入签名计算的JAR包,通过签名计算的JAR包获取签名计算方法。
本发明通过签名标记将加密后的签名参数添加至HTTP请求的请求头中,例如${sign}形式。最后基于带有加密后的签名参数的HTTP请求对待压测的接口进行压测。本发明通过BeanShell预处理程序处理动态参数的加签来保证需要验签的接口压测结果的准确性。
最后应说明的是:以上各实施例仅仅为本发明的较优实施例用以说明本发明的技术方案,而非对其限制,当然更不是限制本发明的专利范围;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围;也就是说,但凡在本发明的主体设计思想和精神上作出的毫无实质意义的改动或润色,其所解决的技术问题仍然与本发明一致的,均应当包含在本发明的保护范围之内;另外,将本发明的技术方案直接或间接的运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (8)
1.一种需要动态加验签接口的压测方法,其特征在于,包括以下步骤:
步骤1、创建线程组,在线程组中添加并配置待压测的接口的HTTP请求;
步骤2、对HTTP请求的入参进行参数化;
步骤3、在HTTP请求下添加预处理程序;
步骤4、通过预处理程序获取HTTP请求的入参和HTTP请求的请求参数,将请求参数作为入参传入签名计算方法,得到加密后的签名参数;
步骤5、将加密后的签名参数添加至HTTP请求中;
步骤6、基于HTTP请求对待压测的接口进行压测。
2.根据权利要求1所述的一种需要动态加验签接口的压测方法,其特征在于,步骤1中,在JMeter的测试计划下创建线程组,在线程组中添加待压测的接口的HTTP请求,并配置HTTP请求的信息,信息包括请求路径、入参。
3.根据权利要求1所述的一种需要动态加验签接口的压测方法,其特征在于,步骤2包括:步骤21、根据HTTP请求的业务场景判断是否需要生成时间参数和随机参数;步骤22、如果需要生成时间参数,则通过JMeter的函数助手生成时间参数并赋值给HTTP请求的入参的时间变量;步骤23、如果需要生成随机参数,则通过JMeter的函数助手生成随机参数并赋值给HTTP请求的入参的数值变量;步骤24、通过Jmeter读取传入的CSV文件中需要的参数并赋值给HTTP请求的入参的名称变量;步骤25、将时间变量、数值变量和名称变量分别与标记符进行拼接并替换HTTP请求中对应的请求参数。
4. 根据权利要求1所述的一种需要动态加验签接口的压测方法,其特征在于,步骤4包括:步骤41、获取HTTP请求的入参;步骤42、将HTTP请求的请求参数组装为JSON Object对象,将JSON Object对象转化为JSON字符串;步骤43、调用业务场景对应的签名计算方法,将JSON字符串作为入参传入签名计算方法中,得到加密后的签名参数。
5.根据权利要求4所述的一种需要动态加验签接口的压测方法,其特征在于,步骤4中,预处理程序引入JMeter的JAR包,通过JMete的JAR包获取HTTP请求的请求参数签名计算。
6.根据权利要求4所述的一种需要动态加验签接口的压测方法,其特征在于,步骤4中,预处理程序引入签名计算的JAR包,通过签名计算的JAR包获取签名计算方法。
7.根据权利要求1所述的一种需要动态加验签接口的压测方法,其特征在于,步骤3中,预处理程序采用BeanShell预处理程序。
8.根据权利要求1所述的一种需要动态加验签接口的压测方法,其特征在于,步骤5中,通过签名标记将加密后的签名参数添加至HTTP请求的请求头或请求主体中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410054203.2A CN117579531B (zh) | 2024-01-15 | 2024-01-15 | 一种需要动态加验签接口的压测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410054203.2A CN117579531B (zh) | 2024-01-15 | 2024-01-15 | 一种需要动态加验签接口的压测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117579531A true CN117579531A (zh) | 2024-02-20 |
CN117579531B CN117579531B (zh) | 2024-05-28 |
Family
ID=89864704
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410054203.2A Active CN117579531B (zh) | 2024-01-15 | 2024-01-15 | 一种需要动态加验签接口的压测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117579531B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017089684A1 (fr) * | 2015-11-26 | 2017-06-01 | Peugeot Citroen Automobiles Sa | Procédé et terminal pour commander l'établissement d'un rapport d'accident d'un véhicule |
CN109344076A (zh) * | 2018-10-22 | 2019-02-15 | 浙江执御信息技术有限公司 | 一种基于JMeter和Jenkins的接口自动化测试方法及其装置 |
CN109597761A (zh) * | 2018-12-03 | 2019-04-09 | 四川长虹电器股份有限公司 | 一种基于Jmeter的接口自动化测试方法 |
CN110213043A (zh) * | 2019-05-09 | 2019-09-06 | 国家计算机网络与信息安全管理中心 | 一种基于Java的集群功能测试方法 |
WO2019165906A1 (zh) * | 2018-02-27 | 2019-09-06 | 华南理工大学 | 一种可验证的后量子电子投票***及其实现方法 |
CN110321283A (zh) * | 2019-05-24 | 2019-10-11 | 平安银行股份有限公司 | 接口测试用例生成方法、装置、计算机装置及存储介质 |
WO2019196213A1 (zh) * | 2018-04-12 | 2019-10-17 | 平安科技(深圳)有限公司 | 接口测试方法、装置、设备及计算机可读存储介质 |
WO2020238066A1 (zh) * | 2019-05-24 | 2020-12-03 | 平安国际智慧城市科技股份有限公司 | 一种软件的压力测试方法、装置、存储介质和服务器 |
US20210311859A1 (en) * | 2020-04-02 | 2021-10-07 | Salesforce.Com, Inc. | Orchestration for automated performance testing |
CN117215910A (zh) * | 2023-07-31 | 2023-12-12 | 福州佳软软件技术有限公司 | 接口测试框架生成方法、测试方法、电子设备及存储介质 |
-
2024
- 2024-01-15 CN CN202410054203.2A patent/CN117579531B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017089684A1 (fr) * | 2015-11-26 | 2017-06-01 | Peugeot Citroen Automobiles Sa | Procédé et terminal pour commander l'établissement d'un rapport d'accident d'un véhicule |
WO2019165906A1 (zh) * | 2018-02-27 | 2019-09-06 | 华南理工大学 | 一种可验证的后量子电子投票***及其实现方法 |
WO2019196213A1 (zh) * | 2018-04-12 | 2019-10-17 | 平安科技(深圳)有限公司 | 接口测试方法、装置、设备及计算机可读存储介质 |
CN109344076A (zh) * | 2018-10-22 | 2019-02-15 | 浙江执御信息技术有限公司 | 一种基于JMeter和Jenkins的接口自动化测试方法及其装置 |
CN109597761A (zh) * | 2018-12-03 | 2019-04-09 | 四川长虹电器股份有限公司 | 一种基于Jmeter的接口自动化测试方法 |
CN110213043A (zh) * | 2019-05-09 | 2019-09-06 | 国家计算机网络与信息安全管理中心 | 一种基于Java的集群功能测试方法 |
CN110321283A (zh) * | 2019-05-24 | 2019-10-11 | 平安银行股份有限公司 | 接口测试用例生成方法、装置、计算机装置及存储介质 |
WO2020238066A1 (zh) * | 2019-05-24 | 2020-12-03 | 平安国际智慧城市科技股份有限公司 | 一种软件的压力测试方法、装置、存储介质和服务器 |
US20210311859A1 (en) * | 2020-04-02 | 2021-10-07 | Salesforce.Com, Inc. | Orchestration for automated performance testing |
CN117215910A (zh) * | 2023-07-31 | 2023-12-12 | 福州佳软软件技术有限公司 | 接口测试框架生成方法、测试方法、电子设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
孙立哲;: "HTTP异步接口性能测试方案设计与实践", 计算机应用与软件, no. 06, 12 June 2020 (2020-06-12) * |
Also Published As
Publication number | Publication date |
---|---|
CN117579531B (zh) | 2024-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110287109B (zh) | 协议接口的测试方法、装置、计算机设备及其存储介质 | |
CN108628748B (zh) | 自动化测试管理方法和自动化测试管理*** | |
CN111813701B (zh) | 基于http的接口测试方法、装置、计算机设备及存储介质 | |
CN112035363A (zh) | 接口自动化测试方法及装置 | |
CN111078539A (zh) | 一种测试方法、装置、***、计算机可读存储介质 | |
CN112269744A (zh) | ***异常测试方法、装置、计算机设备和存储介质 | |
CN114185808A (zh) | 自动化测试方法、装置、电子设备及计算机可读存储介质 | |
CN111752820B (zh) | gRPC接口的压力测试方法、计算机设备和存储介质 | |
CN117579531B (zh) | 一种需要动态加验签接口的压测方法 | |
CN111506305B (zh) | 工具包生成方法、装置、计算机设备及可读存储介质 | |
CN112612706A (zh) | 自动化测试方法、计算机设备及存储介质 | |
CN117520190A (zh) | 一种云桌面客户端及其执行测试的方法 | |
CN117194259A (zh) | 接口测试方法、***、电子设备及存储介质 | |
CN107493299A (zh) | 一种基于三层架构的用户行为溯源方法 | |
CN112433933A (zh) | 一种接口自动化测试的方法及设备 | |
CN115599683A (zh) | 自动化测试方法、装置、设备及存储介质 | |
CN115168232A (zh) | 一种基于autosar平台的测试方法、装置、电子设备及存储介质 | |
CN112084278B (zh) | 一种地图数据转换定制产品的检证方法及装置 | |
CN112838938B (zh) | 一种物联网平台的测试*** | |
CN113360365B (zh) | 一种流程测试方法和流程测试*** | |
CN103019927A (zh) | 一种性能测试方法和*** | |
CN114020645A (zh) | 测试方法、装置、设备、可读存储介质及计算机程序产品 | |
CN114205276B (zh) | 用于产品管理***的性能测试方法及装置、电子设备 | |
Zhang | Research on software development and test environment automation based on android platform | |
CN114691475A (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 |