CN114844814A - 一种压力测试方法及装置 - Google Patents
一种压力测试方法及装置 Download PDFInfo
- Publication number
- CN114844814A CN114844814A CN202210322725.7A CN202210322725A CN114844814A CN 114844814 A CN114844814 A CN 114844814A CN 202210322725 A CN202210322725 A CN 202210322725A CN 114844814 A CN114844814 A CN 114844814A
- Authority
- CN
- China
- Prior art keywords
- message
- transaction
- pressure
- target
- transaction message
- 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.)
- Pending
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 194
- 238000000034 method Methods 0.000 claims abstract description 42
- 238000013515 script Methods 0.000 claims abstract description 39
- 238000012545 processing Methods 0.000 claims abstract description 32
- 238000006243 chemical reaction Methods 0.000 claims abstract description 24
- 230000002452 interceptive effect Effects 0.000 claims abstract description 17
- 238000009530 blood pressure measurement Methods 0.000 claims description 112
- 230000003993 interaction Effects 0.000 claims description 41
- 238000005259 measurement Methods 0.000 claims description 39
- 238000000926 separation method Methods 0.000 claims description 15
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000010276 construction Methods 0.000 claims description 3
- 238000010998 test method Methods 0.000 claims description 3
- 238000010200 validation analysis Methods 0.000 claims description 2
- 238000009662 stress testing Methods 0.000 claims 1
- 230000008569 process Effects 0.000 abstract description 20
- 238000004891 communication Methods 0.000 abstract description 8
- 230000004044 response Effects 0.000 description 10
- 238000012544 monitoring process Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 3
- 238000011056 performance test Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
Images
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
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/33—Intelligent editors
-
- 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/06—Generation of reports
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种压力测试方法及装置,获取向报文交互自动化压测平台发送的HTTP请求,对HTTP请求中的压测交易报文按照预设处理策略进行处理得到目标压测交易报文,并对目标压测交易报文进行预设格式转换得到目标交易报文,根据目标交易报文以及HTTP请求中的虚拟用户数和压测持续时长构建性能压力测试场景生成性能压力测试脚本,通过执行性能压力测试脚本,并在压测时长到达指定时间时生成压测结果报告。本发明只需简单替换性能压力测试脚本中的值即可实现一键压测,且测试人员无需额外使用编程语言来实现与境外核心***收发报文的过程,因此,实现了在减少沟通成本和人力成本的同时,降低了对测试人员的技术要求。
Description
技术领域
本发明涉及软件技术领域,更具体的说,涉及一种压力测试方法及装置。
背景技术
目前,在对境外核心***(比如具有特殊报文格式的3.0版本)进行压力测试时,测试方法主要有两种:第一种,利用商业软件进行性能测试,由于需要通过C语言或者JAVA语言额外编写发包程序,且发包程序中还需要包含报文处理逻辑,因此,不仅人力成本高,而且存在诸多不可预料的问题,另外,还存在收费高的问题;第二种,利用开源软件的自带组件进行性能测试,虽然该方法相对于第一种方法收费低,且无需编写发包程序,但是存在效率低以及无法正确拿到响应作为关联的问题。例如,JMETER软件自带的TCP请求组件无法正常发送境外核心***,需要额外使用Beanshell组件来对报文进行处理,而JMETER自带的Beanshell组件对测试人员的存在编码要求,沟通成本和人力成本高,压力测试效率低,因此JMETER软件自带的两个组件也难以完成压力测试任务。
因此,如何提供一种压力测试方法,在减少沟通成本和人力成本的同时,降低对测试人员的技术要求,成为本领域技术人员亟需解决的技术问题。
发明内容
有鉴于此,本发明公开一种压力测试方法及装置,以实现减少沟通成本和人力成本的同时,降低对测试人员的技术要求。
一种压力测试方法,包括:
获取向报文交互自动化压测平台发送的HTTP请求,所述HTTP请求中至少包括:报文交互自动化压测平台IP地址、端口以及压测相关参数属性,所述压测相关参数属性包括:虚拟用户数、压测持续时长和压测交易报文;
对所述压测交易报文按照预设处理策略进行处理,得到目标压测交易报文,其中,所述预设处理策略与所述压测交易报文中的柜员号、交易日期和生效日期相关;
对所述目标压测交易报文进行预设格式转换得到目标交易报文;
根据所述虚拟用户数、所述压测持续时长和所述目标交易报文构建性能压力测试场景,生成性能压力测试脚本;
执行所述性能压力测试脚本,并在压测时长到达指定时间时,生成压测结果报告。
可选的,所述对所述目标压测交易报文进行预设格式转换得到目标交易报文,包括:
对所述目标压测交易报文进行长度计算,得到所述目标压测交易报文的长度值;
将所述长度值由十进制转换为二进制,得到二进制长度值;
将所述目标压测交易报文转换成二进制压测交易报文;
将所述二进制长度值添加到所述二进制压测交易报文的开头位置,得到所述目标交易报文。
可选的,还包括:
获取用户发送的启动指令;
根据所述启动指令启动报文转发子程序;
当所述报文转发子程序接收到所述报文交互自动化压测平台发送的所述目标交易报文时,由所述报文转发子程序对境外核心***接收报文的地址的第一行数据通过逗号进行分隔;
将分隔后的第一个值确定为IP地址,将分隔后的第二个值确定为端口,并根据所述IP地址和所述端口使所述报文转发子程序与境外核心***建立连接;
通过所述报文转发子程序将所述目标交易报文发送至所述境外核心***。
可选的,在所述通过所述报文转发子程序将所述目标交易报文发送至所述境外核心***之后,还包括:
通过所述报文转发子程序获取所述境外核心***反馈的交易结果。
可选的,还包括:
在所述交易结果中查找匹配标签名称的值;
若所述匹配标签名称的值在所述交易结果中出现多次,则根据匹配顺序选择所述匹配标签名称的目标值;
根据所述目标值查找平台服务器根目录下的以交易码_日期命名的TXT文件中。
可选的,所述虚拟用户数Vusers,用于填写用户需要压测的用户量级;
所述压测持续时长Duration,用于填写用户需要执行压测的时长;
所述压测交易报文XML,用于填写用户需要压测的交易报文,所述交易报文为:境外核心***前台客户端实际向境外核心***后台服务器发送的报文。
一种压力测试装置,包括:
请求获取单元,用于获取向报文交互自动化压测平台发送的HTTP请求,所述HTTP请求中至少包括:报文交互自动化压测平台IP地址、端口以及压测相关参数属性,所述压测相关参数属性包括:虚拟用户数、压测持续时长和压测交易报文;
处理单元,用于对所述压测交易报文按照预设处理策略进行处理,得到目标压测交易报文,其中,所述预设处理策略与所述压测交易报文中的柜员号、交易日期和生效日期相关;
格式转换单元,用于对所述目标压测交易报文进行预设格式转换得到目标交易报文;
场景构建单元,用于根据所述虚拟用户数、所述压测持续时长和所述目标交易报文构建性能压力测试场景,生成性能压力测试脚本;
压测单元,用于执行所述性能压力测试脚本,并在压测时长到达指定时间时,生成压测结果报告。
可选的,所述格式转换单元包括:
计算子单元,用于对所述目标压测交易报文进行长度计算,得到所述目标压测交易报文的长度值;
进制转换子单元,用于将所述长度值由十进制转换为二进制,得到二进制长度值;
报文转换子单元,用于将所述目标压测交易报文转换成二进制压测交易报文;
添加子单元,用于将所述二进制长度值添加到所述二进制压测交易报文的开头位置,得到所述目标交易报文。
可选的,还包括:
指令获取单元,用于获取用户发送的启动指令;
启动单元,用于根据所述启动指令启动报文转发子程序;
分隔单元,用于当所述报文转发子程序接收到所述报文交互自动化压测平台发送的所述目标交易报文时,由所述报文转发子程序对境外核心***接收报文的地址的第一行数据通过逗号进行分隔;
连接建立单元,用于将分隔后的第一个值确定为IP地址,将分隔后的第二个值确定为端口,并根据所述IP地址和所述端口使所述报文转发子程序与境外核心***建立连接;
发送单元,用于通过所述报文转发子程序将所述目标交易报文发送至所述境外核心***。
可选的,还包括:
交易结果获取单元,用于在所述发送单元通过所述报文转发子程序将所述目标交易报文发送至所述境外核心***之后,通过所述报文转发子程序获取所述境外核心***反馈的交易结果。
可选的,还包括:
第一查找单元,用于在所述交易结果中查找匹配标签名称的值;
选择单元,用于若所述匹配标签名称的值在所述交易结果中出现多次,则根据匹配顺序选择所述匹配标签名称的目标值;
第二查找单元,用于根据所述目标值查找平台服务器根目录下的以交易码_日期命名的TXT文件中。
从上述的技术方案可知,本发明公开了一种压力测试方法及装置,获取向报文交互自动化压测平台发送的HTTP请求,该HTTP请求中至少包括报文交互自动化压测平台IP地址、端口以及压测相关参数属性,压测相关参数属性包括:虚拟用户数、压测持续时长和压测交易报文,对压测交易报文按照预设处理策略进行处理得到目标压测交易报文,并对目标压测交易报文进行预设格式转换得到目标交易报文,根据虚拟用户数、压测持续时长和目标交易报文构建性能压力测试场景生成性能压力测试脚本,通过执行性能压力测试脚本,并在压测时长到达指定时间时,生成压测结果报告。本发明只需简单替换性能压力测试脚本中的值即可实现一键压测,从而省去了每次压测时额外花费人力编写性能压力测试脚本和到压测环境上部署性能监控等的过程,并且测试人员无需额外使用编程语言来实现与境外核心***收发报文的过程,因此,实现了在减少沟通成本和人力成本的同时,降低了对测试人员的技术要求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据公开的附图获得其他的附图。
图1为本发明实施例公开的一种压力测试方法流程图;
图2为本发明实施例公开的一种对目标压测交易报文进行预设格式转换得到目标交易报文的方法流程图;
图3为本发明实施例公开的一种压力测试装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种压力测试方法及装置,获取向报文交互自动化压测平台发送的HTTP请求,该HTTP请求中至少包括报文交互自动化压测平台IP地址、端口以及压测相关参数属性,压测相关参数属性包括:虚拟用户数、压测持续时长和压测交易报文,对压测交易报文按照预设处理策略进行处理得到目标压测交易报文,并对目标压测交易报文进行预设格式转换得到目标交易报文,根据虚拟用户数、压测持续时长和目标交易报文构建性能压力测试场景生成性能压力测试脚本,通过执行性能压力测试脚本,并在压测时长到达指定时间时,生成压测结果报告。本发明只需简单替换性能压力测试脚本中的值即可实现一键压测,从而省去了每次压测时额外花费人力编写性能压力测试脚本和到压测环境上部署性能监控等的过程,并且测试人员无需额外使用编程语言来实现与境外核心***收发报文的过程,因此,实现了在减少沟通成本和人力成本的同时,降低了对测试人员的技术要求。
参见图1,本发明实施例公开的一种压力测试方法流程图,该方法应用于报文交互自动化压测平台,该方法包括:
步骤S101、获取向报文交互自动化压测平台发送的HTTP请求;
需要说明的是,针对在JMETER上对境外核心***3.0版本的压测需求,本发明专门定制出特定的报文交互自动化压测平台,在平台端负责接收报文以及环境地址信息,然后平台端负责组包和发送内容到后台服务器,实现模拟前台客户端提交交易后向后台服务器发送报文的过程,并根据报文中指定的并发用户数和压测时长自动化执行压测任务,结束后会自动生成压测结果。
本实施例中,HTTP请求中至少包括:报文交互自动化压测平台IP地址、端口以及压测相关参数属性(Parameter)。
压测相关参数属性包括:
虚拟用户数Vusers,用于填写用户需要压测的用户量级;
压测持续时长Duration,用于填写用户需要执行压测的时长;
压测交易报文XML,用于填写用户需要压测的交易报文,交易报文为:境外核心***前台客户端实际向境外核心***后台服务器发送的报文。
针对压测相关参数属性举例说明,某性能测试人员需要对境外核心***的转账交易以5并发持续4小时的场景进行压测,性能测试人员需要在HTTP请求中填写报文交互自动化压测平台的IP地址和端口,在Parameter(参数)中新增三列属性,分别的名称和对应的值为Vusers和5、Duration和14400,XML和境外核心***前台发送给后台应用服务器的报文。
在实际应用中,在执行压力测试之前,用户需要先在报文交互自动化压测平台的参数文件servers.txt(服务器列表)中,编写境外核心***的应用服务器IP地址和数据库服务器IP地址,每个IP一行,格式为IP地址,账号密码。在receiver.txt(境外核心***接受报文的地址)中编写境外核心***用来接受前台客户端报文的后台服务器和端口,格式为IP地址:端口,第二行填写的值为Oracle数据库的连接命令。
用户点击start.exe执行程序,该程序会逐行读取servers.txt中的IP地址,账号密码,以SFTP协议的方式登录上服务器,将目录中的tst.tar文件传送到目标服务器的用户家目录下并自动解压,逐行完成上述操作后,程序会调起报文交互自动化压测平台守护进程,等待接受用户发送过来的HTTP请求。
步骤S102、对所述压测交易报文按照预设处理策略进行处理,得到目标压测交易报文;
其中,所述预设处理策略与所述压测交易报文中的柜员号、交易日期和生效日期相关。
具体的,报文交互自动化压测平台在接收到用户发送的HTTP请求后,提取其中的压测交易报文XML,去除压测交易报文XML中的<OpNo></OpNo>(柜员号)、<trade_date></trade_date>(交易日期)、<value_date></value_date>(生效日期)标签对应的值,报文交互自动化压测平台会根据<Branch></Branch>(行号)实时去数据库获取对应的柜员号并填充到原数据的<OpNo></OpNo>(柜员号)中,实时获取***中的当前日期作为交易日期和生效日期的值并合并到原数据中,得到处理后的目标压测交易报文,同时提取HTTP请求中的压测交易报文XML中的<OpCode></OpCode>作为交易码。
步骤S103、对所述目标压测交易报文进行预设格式转换得到目标交易报文;
步骤S104、根据虚拟用户数、压测持续时长和目标交易报文构建性能压力测试场景,生成性能压力测试脚本;
报文交互自动化压测平台根据HTTP请求中的虚拟用户数、压测持续时长和目标交易报文构建性能压力测试场景,以生产以“交易码_性能测试脚本”命名的jmx文件(性能压力测试脚本)。其中,交易码从HTTP请求中提取。
jmx脚本中会含一个测试计划,一个线程组,线程组里含一个HTTP请求,HTTP请求下带一个响应断言(响应断言为:0000),HTTP请求体中的内容为数据E,HTTP请求的路径为/autotesting,IP地址为报文交互平台本身,端口为8888,生成了性能测试文件后,报文交互自动化压测平台会调起JMETER执行压测任务。
步骤S105、执行所述性能压力测试脚本,并在压测时长到达指定时间时,生成压测结果报告。
在实际应用中,报文交互自动化压测平台根据构建的性能压力测试场景,通过执行性能压力测试脚本持续进行压力测试,压力测试结束后在报文交互自动化压测平台服务器上生产一个以文件夹形式表示的压测结果报告,该文件夹中包含本次压测的结果HTML页面以及NMON性能监控文件,用户可以通过上述两个文件查看本次的压测结果。
综上可知,本发明公开了一种压力测试方法,获取向报文交互自动化压测平台发送的HTTP请求,该HTTP请求中至少包括报文交互自动化压测平台IP地址、端口以及压测相关参数属性,压测相关参数属性包括:虚拟用户数、压测持续时长和压测交易报文,对压测交易报文按照预设处理策略进行处理得到目标压测交易报文,并对目标压测交易报文进行预设格式转换得到目标交易报文,根据虚拟用户数、压测持续时长和目标交易报文构建性能压力测试场景生成性能压力测试脚本,通过执行性能压力测试脚本,并在压测时长到达指定时间时,生成压测结果报告。本发明只需简单替换性能压力测试脚本中的值即可实现一键压测,从而省去了每次压测时额外花费人力编写性能压力测试脚本和到压测环境上部署性能监控等的过程,并且测试人员无需额外使用编程语言来实现与境外核心***收发报文的过程,因此,实现了在减少沟通成本和人力成本的同时,降低了对测试人员的技术要求。
另外,本发明中的报文交互自动化压测平台仅需使用HTTP请求进行交互,因此可以使用JMETER、POSTMAN等开源工具修改虚拟用户数、压测持续时间和压测交易报文即可完成压测流程的自动化,从而提高了压力测试效率。
为进一步优化上述实施例,参见图2,本发明实施例公开的一种对目标压测交易报文进行预设格式转换得到目标交易报文的方法流程图,该方法包括:
步骤S201、对目标压测交易报文进行长度计算,得到目标压测交易报文的长度值;
步骤S202、将长度值由十进制转换为二进制,得到二进制长度值;
其中,将长度值由十进制转换为二进制的过程可参见现有成熟方案,此处不再赘述。
步骤S203、将目标压测交易报文转换成二进制压测交易报文;
步骤S204、将二进制长度值添加到所述二进制压测交易报文的开头位置,得到目标交易报文。
需要说明的是,用户在点击start.exe执行程序发送启动指令后,取servers.txt中的IP地址,账号密码的同时,还会启动报文转发子程序。
因此,为进一步优化上述实施例,压力测试方法还可以包括:
获取用户发送的启动指令;
根据所述启动指令启动报文转发子程序;
当所述报文转发子程序接收到所述报文交互自动化压测平台发送的所述目标交易报文时,由所述报文转发子程序对境外核心***接收报文的地址的第一行,根据逗号进行分隔;
将分隔后的第一个值确定为IP地址,将分隔后的第二个值确定为端口,并根据所述IP地址和所述端口使所述报文转发子程序与境外核心***建立连接;
通过所述报文转发子程序将所述目标交易报文发送至所述境外核心***。
为进一步优化上述实施例,压力测试方法还可以包括:
通过所述报文转发子程序获取所述境外核心***反馈的交易结果。
具体的,报文交互自动化压测平台、报文转发子程序与境外核心***的交互过程如下:
(1)用户在点击start.exe执行程序发送启动指令后,还会同步启动报文转发子程序,报文转发子程序用于实时监听8888端口,并接收报文交互自动化压测平台通过8888端口发送的目标交易报文。
(2)报文转发子程序接收到目标交易报文后会读取参数文件receivers.txt(境外核心***接收报文的地址)中的第一行数据,通过逗号分隔,将分隔后的第一个值确定为IP地址(host),将分隔后的第二个值确定为端口(port),通过socket.bind(host,port)方法与境外核心***建立socket通道。
(3)在socket通道建立后,报文转发子程序会将目标交易报文通过socket.send()发送到境外核心***的后台服务器。
(4)境外核心***在收到报文后会将交易结果返回给报文转发子程序,报文转发子程序通过socket.recv()接受到返回的响应交易结果,并返回至报文交互自动化压测平台。
在实际应用中,报文转发子程序在接收到境外核心***返回的交易结果后,会将该交易返回结果返回值报文交互自动化压测平台,报文交互自动化压测平台将该交易结果与响应断言进行比较,若交易结果中包含了响应断言,则会标记本次交易成功。
本发明中的报文交互自动化压测平台除了具备上述功能,还具体其他功能,比如,在压测相关参数属性(Parameter)中,可以指明属性remark以及对应的值1,若要启动该额外功能,需要额外指明属性match_no(匹配顺序)、match_name(匹配的标签名称)以及对应的值。
因此,压力测试方法还可以包括:
在交易结果中查找匹配标签名称的值;
若所述匹配标签名称的值在所述交易结果中出现多次,则根据匹配顺序选择所述匹配标签名称的目标值;
根据所述目标值查找平台服务器根目录下的以交易码_日期命名的TXT文件中。
具体的,报文交互自动化压测平台接收到交易结果后,会在交易结果中查找match_name(匹配标签名称)的值,若match_name的值在交易结果中多次出现,则会根据match_no(匹配顺序)来选择第几次出现的值,也即匹配标签名称的目标值,根据该目标值查找平台服务器根目录下的以交易码_日期命名的TXT文件中。
若程序通过若程序通过match_no(匹配顺序)和match_name(匹配标签名称)找不到值,则会在响应报文中报错提示。
在实际压测的过程中经常会存在待测交易有前置交易的场景,此时需要先对前置交易进行压测,同时记录下前置交易的业务编号,针对这种情况,本发明公开的上述额外附带的功能中,报文交互平台本身会将前置交易中需要保存的字段提取出来并保存到文件中,方便后续用到该字段的交易进行下一个流程的压测,从而降低了性能测试人员的工作量,减轻测试人员的负担。
与上述方法实施例相对应,本发明还公开了一种压力测试装置。
参见图3,本发明实施例公开的一种压力测试装置的结构示意图,该装置应用于报文交互自动化压测平台,该装置包括:
请求获取单元301,用于获取向报文交互自动化压测平台发送的HTTP请求;
本实施例中,HTTP请求中至少包括:报文交互自动化压测平台IP地址、端口以及压测相关参数属性(Parameter)。
压测相关参数属性包括:
虚拟用户数Vusers,用于填写用户需要压测的用户量级;
压测持续时长Duration,用于填写用户需要执行压测的时长;
压测交易报文XML,用于填写用户需要压测的交易报文,交易报文为:境外核心***前台客户端实际向境外核心***后台服务器发送的报文。
处理单元302,用于对所述压测交易报文按照预设处理策略进行处理,得到目标压测交易报文,其中,所述预设处理策略与所述压测交易报文中的柜员号、交易日期和生效日期相关;
具体的,报文交互自动化压测平台在接收到用户发送的HTTP请求后,提取其中的压测交易报文XML,去除压测交易报文XML中的<OpNo></OpNo>(柜员号)、<trade_date></trade_date>(交易日期)、<value_date></value_date>(生效日期)标签对应的值,报文交互自动化压测平台会根据<Branch></Branch>(行号)实时去数据库获取对应的柜员号并填充到原数据的<OpNo></OpNo>(柜员号)中,实时获取***中的当前日期作为交易日期和生效日期的值并合并到原数据中,得到处理后的目标压测交易报文,同时提取HTTP请求中的压测交易报文XML中的<OpCode></OpCode>作为交易码。
格式转换单元303,用于对所述目标压测交易报文进行预设格式转换得到目标交易报文;
场景构建单元304,用于根据所述虚拟用户数、所述压测持续时长和所述目标交易报文构建性能压力测试场景,生成性能压力测试脚本;
报文交互自动化压测平台根据HTTP请求中的虚拟用户数、压测持续时长和目标交易报文构建性能压力测试场景,以生产以“交易码_性能测试脚本”命名的jmx文件(性能压力测试脚本)。其中,交易码从HTTP请求中提取。
jmx脚本中会含一个测试计划,一个线程组,线程组里含一个HTTP请求,HTTP请求下带一个响应断言(响应断言为:0000),HTTP请求体中的内容为数据E,HTTP请求的路径为/autotesting,IP地址为报文交互平台本身,端口为8888,生成了性能测试文件后,报文交互自动化压测平台会调起JMETER执行压测任务。
压测单元305,用于执行所述性能压力测试脚本,并在压测时长到达指定时间时,生成压测结果报告。
在实际应用中,报文交互自动化压测平台根据构建的性能压力测试场景,通过执行性能压力测试脚本持续进行压力测试,压力测试结束后在报文交互自动化压测平台服务器上生产一个以文件夹形式表示的压测结果报告,该文件夹中包含本次压测的结果HTML页面以及NMON性能监控文件,用户可以通过上述两个文件查看本次的压测结果。
综上可知,本发明公开了一种压力测试装置,获取向报文交互自动化压测平台发送的HTTP请求,该HTTP请求中至少包括报文交互自动化压测平台IP地址、端口以及压测相关参数属性,压测相关参数属性包括:虚拟用户数、压测持续时长和压测交易报文,对压测交易报文按照预设处理策略进行处理得到目标压测交易报文,并对目标压测交易报文进行预设格式转换得到目标交易报文,根据虚拟用户数、压测持续时长和目标交易报文构建性能压力测试场景生成性能压力测试脚本,通过执行性能压力测试脚本,并在压测时长到达指定时间时,生成压测结果报告。本发明只需简单替换性能压力测试脚本中的值即可实现一键压测,从而省去了每次压测时额外花费人力编写性能压力测试脚本和到压测环境上部署性能监控等的过程,并且测试人员无需额外使用编程语言来实现与境外核心***收发报文的过程,因此,实现了在减少沟通成本和人力成本的同时,降低了对测试人员的技术要求。
另外,本发明中的报文交互自动化压测平台仅需使用HTTP请求进行交互,因此可以使用JMETER、POSTMAN等开源工具修改虚拟用户数、压测持续时间和压测交易报文即可完成压测流程的自动化,从而提高了压力测试效率。
为进一步优化上述实施例,格式转换单元303可以包括:
计算子单元,用于对所述目标压测交易报文进行长度计算,得到所述目标压测交易报文的长度值;
进制转换子单元,用于将所述长度值由十进制转换为二进制,得到二进制长度值;
报文转换子单元,用于将所述目标压测交易报文转换成二进制压测交易报文;
添加子单元,用于将所述二进制长度值添加到所述二进制压测交易报文的开头位置,得到所述目标交易报文。
需要说明的是,用户在点击start.exe执行程序发送启动指令后,取servers.txt中的IP地址,账号密码的同时,还会启动报文转发子程序。
因此,为进一步优化上述实施例,压力测试装置还可以包括:
指令获取单元,用于获取用户发送的启动指令;
启动单元,用于根据所述启动指令启动报文转发子程序;
分隔单元,用于当所述报文转发子程序接收到所述报文交互自动化压测平台发送的所述目标交易报文时,由所述报文转发子程序对境外核心***接收报文的地址的第一行数据通过逗号进行分隔;
连接建立单元,用于将分隔后的第一个值确定为IP地址,将分隔后的第二个值确定为端口,并根据所述IP地址和所述端口使所述报文转发子程序与境外核心***建立连接;
发送单元,用于通过所述报文转发子程序将所述目标交易报文发送至所述境外核心***。
为进一步优化上述实施例,压力测试装置还可以包括:
交易结果获取单元,用于在所述发送单元通过所述报文转发子程序将所述目标交易报文发送至所述境外核心***之后,通过所述报文转发子程序获取所述境外核心***反馈的交易结果。
本发明中的报文交互自动化压测平台除了具备上述功能,还具体其他功能,比如,在压测相关参数属性(Parameter)中,可以指明属性remark以及对应的值1,若要启动该额外功能,需要额外指明属性match_no(匹配顺序)、match_name(匹配的标签名称)以及对应的值。
因此,压力测试装置还可以包括:
第一查找单元,用于在所述交易结果中查找匹配标签名称的值;
选择单元,用于若所述匹配标签名称的值在所述交易结果中出现多次,则根据匹配顺序选择所述匹配标签名称的目标值;
第二查找单元,用于根据所述目标值查找平台服务器根目录下的以交易码_日期命名的TXT文件中。
需要特别说明的是,压力测试装置中各组成部分的具体工作原理,请参见方法实施例对应部分,此处不再赘述。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (11)
1.一种压力测试方法,其特征在于,包括:
获取向报文交互自动化压测平台发送的HTTP请求,所述HTTP请求中至少包括:报文交互自动化压测平台IP地址、端口以及压测相关参数属性,所述压测相关参数属性包括:虚拟用户数、压测持续时长和压测交易报文;
对所述压测交易报文按照预设处理策略进行处理,得到目标压测交易报文,其中,所述预设处理策略与所述压测交易报文中的柜员号、交易日期和生效日期相关;
对所述目标压测交易报文进行预设格式转换得到目标交易报文;
根据所述虚拟用户数、所述压测持续时长和所述目标交易报文构建性能压力测试场景,生成性能压力测试脚本;
执行所述性能压力测试脚本,并在压测时长到达指定时间时,生成压测结果报告。
2.根据权利要求1所述的压力测试方法,其特征在于,所述对所述目标压测交易报文进行预设格式转换得到目标交易报文,包括:
对所述目标压测交易报文进行长度计算,得到所述目标压测交易报文的长度值;
将所述长度值由十进制转换为二进制,得到二进制长度值;
将所述目标压测交易报文转换成二进制压测交易报文;
将所述二进制长度值添加到所述二进制压测交易报文的开头位置,得到所述目标交易报文。
3.根据权利要求1所述的压力测试方法,其特征在于,还包括:
获取用户发送的启动指令;
根据所述启动指令启动报文转发子程序;
当所述报文转发子程序接收到所述报文交互自动化压测平台发送的所述目标交易报文时,由所述报文转发子程序对境外核心***接收报文的地址的第一行数据通过逗号进行分隔;
将分隔后的第一个值确定为IP地址,将分隔后的第二个值确定为端口,并根据所述IP地址和所述端口使所述报文转发子程序与境外核心***建立连接;
通过所述报文转发子程序将所述目标交易报文发送至所述境外核心***。
4.根据权利要求3所述的压力测试方法,其特征在于,在所述通过所述报文转发子程序将所述目标交易报文发送至所述境外核心***之后,还包括:
通过所述报文转发子程序获取所述境外核心***反馈的交易结果。
5.根据权利要求4所述的压力测试方法,其特征在于,还包括:
在所述交易结果中查找匹配标签名称的值;
若所述匹配标签名称的值在所述交易结果中出现多次,则根据匹配顺序选择所述匹配标签名称的目标值;
根据所述目标值查找平台服务器根目录下的以交易码_日期命名的TXT文件中。
6.根据权利要求1所述的压力测试方法,其特征在于,所述虚拟用户数Vusers,用于填写用户需要压测的用户量级;
所述压测持续时长Duration,用于填写用户需要执行压测的时长;
所述压测交易报文XML,用于填写用户需要压测的交易报文,所述交易报文为:境外核心***前台客户端实际向境外核心***后台服务器发送的报文。
7.一种压力测试装置,其特征在于,包括:
请求获取单元,用于获取向报文交互自动化压测平台发送的HTTP请求,所述HTTP请求中至少包括:报文交互自动化压测平台IP地址、端口以及压测相关参数属性,所述压测相关参数属性包括:虚拟用户数、压测持续时长和压测交易报文;
处理单元,用于对所述压测交易报文按照预设处理策略进行处理,得到目标压测交易报文,其中,所述预设处理策略与所述压测交易报文中的柜员号、交易日期和生效日期相关;
格式转换单元,用于对所述目标压测交易报文进行预设格式转换得到目标交易报文;
场景构建单元,用于根据所述虚拟用户数、所述压测持续时长和所述目标交易报文构建性能压力测试场景,生成性能压力测试脚本;
压测单元,用于执行所述性能压力测试脚本,并在压测时长到达指定时间时,生成压测结果报告。
8.根据权利要求7所述的压力测试装置,其特征在于,所述格式转换单元包括:
计算子单元,用于对所述目标压测交易报文进行长度计算,得到所述目标压测交易报文的长度值;
进制转换子单元,用于将所述长度值由十进制转换为二进制,得到二进制长度值;
报文转换子单元,用于将所述目标压测交易报文转换成二进制压测交易报文;
添加子单元,用于将所述二进制长度值添加到所述二进制压测交易报文的开头位置,得到所述目标交易报文。
9.根据权利要求7所述的压力测试装置,其特征在于,还包括:
指令获取单元,用于获取用户发送的启动指令;
启动单元,用于根据所述启动指令启动报文转发子程序;
分隔单元,用于当所述报文转发子程序接收到所述报文交互自动化压测平台发送的所述目标交易报文时,由所述报文转发子程序对境外核心***接收报文的地址的第一行数据通过逗号进行分隔;
连接建立单元,用于将分隔后的第一个值确定为IP地址,将分隔后的第二个值确定为端口,并根据所述IP地址和所述端口使所述报文转发子程序与境外核心***建立连接;
发送单元,用于通过所述报文转发子程序将所述目标交易报文发送至所述境外核心***。
10.根据权利要求9所述的压力测试装置,其特征在于,还包括:
交易结果获取单元,用于在所述发送单元通过所述报文转发子程序将所述目标交易报文发送至所述境外核心***之后,通过所述报文转发子程序获取所述境外核心***反馈的交易结果。
11.根据权利要求10所述的压力测试装置,其特征在于,还包括:
第一查找单元,用于在所述交易结果中查找匹配标签名称的值;
选择单元,用于若所述匹配标签名称的值在所述交易结果中出现多次,则根据匹配顺序选择所述匹配标签名称的目标值;
第二查找单元,用于根据所述目标值查找平台服务器根目录下的以交易码_日期命名的TXT文件中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210322725.7A CN114844814A (zh) | 2022-03-30 | 2022-03-30 | 一种压力测试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210322725.7A CN114844814A (zh) | 2022-03-30 | 2022-03-30 | 一种压力测试方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114844814A true CN114844814A (zh) | 2022-08-02 |
Family
ID=82563503
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210322725.7A Pending CN114844814A (zh) | 2022-03-30 | 2022-03-30 | 一种压力测试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114844814A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115408249A (zh) * | 2022-10-31 | 2022-11-29 | 深圳依时货拉拉科技有限公司 | 压力测试方法、装置、计算机设备和存储介质 |
CN115499355A (zh) * | 2022-09-30 | 2022-12-20 | 中国建设银行股份有限公司 | 一种压力测试方法、装置、设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6044398A (en) * | 1997-11-21 | 2000-03-28 | International Business Machines Corporation | Virtual dynamic browsing system and method for automated web server and testing |
CN105487965A (zh) * | 2015-12-28 | 2016-04-13 | 北京畅游天下网络技术有限公司 | 一种通用的服务器压力测试方法及装置 |
CN106470133A (zh) * | 2015-08-20 | 2017-03-01 | 阿里巴巴集团控股有限公司 | ***压力测试方法及装置 |
CN108650149A (zh) * | 2018-04-24 | 2018-10-12 | 平安科技(深圳)有限公司 | 服务器的测试方法、装置、设备及计算机可读存储介质 |
CN110162471A (zh) * | 2019-04-28 | 2019-08-23 | 中国工商银行股份有限公司 | 一种基于容器云的压力测试方法及*** |
-
2022
- 2022-03-30 CN CN202210322725.7A patent/CN114844814A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6044398A (en) * | 1997-11-21 | 2000-03-28 | International Business Machines Corporation | Virtual dynamic browsing system and method for automated web server and testing |
CN106470133A (zh) * | 2015-08-20 | 2017-03-01 | 阿里巴巴集团控股有限公司 | ***压力测试方法及装置 |
CN105487965A (zh) * | 2015-12-28 | 2016-04-13 | 北京畅游天下网络技术有限公司 | 一种通用的服务器压力测试方法及装置 |
CN108650149A (zh) * | 2018-04-24 | 2018-10-12 | 平安科技(深圳)有限公司 | 服务器的测试方法、装置、设备及计算机可读存储介质 |
CN110162471A (zh) * | 2019-04-28 | 2019-08-23 | 中国工商银行股份有限公司 | 一种基于容器云的压力测试方法及*** |
Non-Patent Citations (1)
Title |
---|
郄霖, 中国优秀硕士学位论文全文数据库, no. 08 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115499355A (zh) * | 2022-09-30 | 2022-12-20 | 中国建设银行股份有限公司 | 一种压力测试方法、装置、设备及介质 |
CN115499355B (zh) * | 2022-09-30 | 2024-04-26 | 中国建设银行股份有限公司 | 一种压力测试方法、装置、设备及介质 |
CN115408249A (zh) * | 2022-10-31 | 2022-11-29 | 深圳依时货拉拉科技有限公司 | 压力测试方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108650149B (zh) | 服务器的测试方法、装置、设备及计算机可读存储介质 | |
WO2020029375A1 (zh) | 接口测试方法、***、计算机设备和存储介质 | |
CN114844814A (zh) | 一种压力测试方法及装置 | |
CN106484611B (zh) | 基于自动化协议适配的模糊测试方法和装置 | |
CN108628748B (zh) | 自动化测试管理方法和自动化测试管理*** | |
CN110955409B (zh) | 在云平台上创建资源的方法和装置 | |
CN111200523B (zh) | 中台***配置方法、装置、设备及存储介质 | |
CN111651347B (zh) | 测试***的跳转验证方法、装置、设备及存储介质 | |
CN106034113A (zh) | 数据处理方法及装置 | |
CN107977260B (zh) | 任务提交方法及装置 | |
CN111078553B (zh) | 数据开发任务测试方法、装置、计算机设备和存储介质 | |
US20120315931A1 (en) | Short message processing method and apparatus | |
CN104899134A (zh) | 域名注册服务器自动化测试***和方法 | |
CN105117340A (zh) | 用于iOS浏览器应用质量评估的URL检测方法和装置 | |
CN117520190A (zh) | 一种云桌面客户端及其执行测试的方法 | |
CN113254045A (zh) | 软件初始化方法、***及计算机可读存储介质 | |
CN112181822A (zh) | 一种测试方法和应用程序的启动耗时测试方法 | |
CN108173957B (zh) | 一种Http接口快速配置联调平台 | |
CN115904388A (zh) | 一种应用程序协议解析方法、装置、设备及存储介质 | |
CN113742408B (zh) | 基于Protobuf协议动态解析的数据交互方法 | |
CN115454878A (zh) | 一种应用于微服务的接口调用测试方法及相关装置 | |
CN111158661A (zh) | ***接口对接方法、装置、介质及电子设备 | |
CN113505036B (zh) | 一种应用监控方法、客户端和服务器 | |
CN114205276B (zh) | 用于产品管理***的性能测试方法及装置、电子设备 | |
CN113901377B (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 |