CN113448822B - 测试方法、装置、计算机可读介质及电子设备 - Google Patents
测试方法、装置、计算机可读介质及电子设备 Download PDFInfo
- Publication number
- CN113448822B CN113448822B CN202010219546.1A CN202010219546A CN113448822B CN 113448822 B CN113448822 B CN 113448822B CN 202010219546 A CN202010219546 A CN 202010219546A CN 113448822 B CN113448822 B CN 113448822B
- Authority
- CN
- China
- Prior art keywords
- test
- tested system
- request data
- tested
- data
- 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
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 229
- 238000010998 test method Methods 0.000 title claims abstract description 21
- 238000004806 packaging method and process Methods 0.000 claims abstract description 5
- 238000013515 script Methods 0.000 claims description 71
- 238000000034 method Methods 0.000 claims description 24
- 238000012545 processing Methods 0.000 claims description 16
- 230000001965 increasing effect Effects 0.000 claims description 13
- 238000010801 machine learning Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 9
- 230000008859 change Effects 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 7
- 230000001419 dependent effect Effects 0.000 claims description 5
- 238000004883 computer application Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 238000011056 performance test Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 4
- 238000013524 data verification Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000013112 stability test Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007477 logistic regression Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000007637 random forest analysis Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
Classifications
-
- 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/3664—Environments for testing or debugging software
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开提供一种测试方法、测试装置、计算机可读介质及电子设备;涉及计算机应用技术领域。该测试方法包括:获取待测试的被测系统包含的组件;根据被测系统包含的组件,获取针对所述被测系统的请求数据;对所述被测系统整体进行封装,以得到所述被测系统的接口组件,并基于所述接口组件以及所述请求数据获取所述被测系统的测试数据;通过所述测试数据获取所述被测系统的性能指标,以确定所述被测系统的测试结果。本公开中的测试方法能够在一定程度上克服系统测试缺乏针对性的问题,进而提升测试精确性。
Description
技术领域
本公开涉及计算机应用技术领域,具体而言,涉及一种测试方法、测试装置、计算机可读介质及电子设备。
背景技术
由于网络环境的发达,各种各样的网络平台成为了满足人们生活的重要工具。对于网络平台来说,无论是用户的个人账户信息安全还是交易支付安全都需要依赖风控决策系统的保障,例如,金融交易系统中,在交易支付环节都设置有高精度的风控决策引擎,以防止用户利用支付通道进行套现、利用系统漏洞进行虚假交易等,因此风控决策引擎的性能尤为重要。目前的对于风控决策引擎的测试方案主要是对固定化的规则的检测,即针对各个风控决策规则本身的触发和处理逻辑的测试,然而,风控决策引擎中各个规则之间存在互相组合、关联等复杂的逻辑,固定规则的检测方法并不适用于风控决策引擎,导致测试的准确性较低。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种测试方法、测试装置、计算机可读介质及电子设备,进而在一定程度上克服对于风控决策引擎的测试效率较低的问题,提升系统的测试效率。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的第一方面,提供一种测试方法,包括:
获取待测试的被测系统包含的组件;
根据被测系统包含的组件,获取针对所述被测系统的请求数据;
对所述被测系统整体进行封装,以得到所述被测系统的接口组件,并基于所述接口组件以及所述请求数据获取所述被测系统的测试数据;
通过所述测试数据获取所述被测系统的性能指标,以确定所述被测系统的测试结果。
在本公开的一种示例性实施例中,所述根据被测系统包含的组件获取针对所述被测系统的请求数据,包括:
根据所述被测系统包含的组件,获取所述组件对应的脚本参数;
通过所述脚本参数运行目标脚本,以获取所述请求数据。
在本公开的一种示例性实施例中,根据被测系统包含的组件获取针对所述被测系统的请求数据之后,还包括:
响应所述被测系统中包含的组件的变更,更新所述目标脚本,以对所述请求数据进行更新。
在本公开的一种示例性实施例中,所述根据被测系统包含的组件获取针对所述被测系统的请求数据,包括:
通过机器学习模型构造所述被测系统;
获取所述机器学习模型的样本数据作为所述被测系统的请求数据。
在本公开的一种示例性实施例中,所述基于所述接口组件以及所述请求数据获取所述被测系统的测试数据,包括:
将所述请求数据输入所述接口组件,以基于所述接口组件请求所述被测系统;
将所述被测系统的在线用户数进行梯度增加处理,以获取所述被测系统对于所述请求数据的测试数据。
在本公开的一种示例性实施例中,所述基于所述外部接口以及所述请求数据获取所述被测系统的测试数据,包括:
获取测试工具;
基于所述被测系统的所述接口组件生成所述测试工具的依赖包;
结合所述测试工具以及所述依赖包获取所述请求数据对应的所述测试数据。
在本公开的一种示例性实施例中,所述结合所述测试工具以及所述依赖包获取所述请求数据对应的所述测试数据,包括:
根据测试需求确定对应的测试环境参数;
基于所述测试环境参数以及所述依赖包运行所述测试工具,以获取所述请求数据对应的所述测试数据。
在本公开的一种示例性实施例中,所述被测系统包括风控决策系统。
根据本公开的第二方面,提供一种测试装置,包括组件获取模块、数据获取模块、测试数据确定模块以及测试结果确定模块,其中:
组件获取模块,用于获取待测试的被测系统包含的组件;
数据获取模块,用于根据被测系统包含的组件,获取针对所述被测系统的请求数据;
测试确定模块,用于对所述被测系统整体进行封装,以得到所述被测系统的接口组件,并基于所述接口组件以及所述请求数据获取所述被测系统的测试数据;
结果确定模块,用于通过所述测试数据获取所述被测系统的性能指标,以确定所述被测系统的测试结果。
在本公开的一种示例性实施方式中,数据获取模块具体包括参数获取单元,以及脚本运行单元,其中:
参数获取单元,用于根据所述被测系统包含的组件,获取所述组件对应的脚本参数。
脚本运行单元,用于通过所述脚本参数运行目标脚本,以获取所述请求数据。
在本公开的一种示例性实施方式中,该装置还可以包括数据更新模块,该数据更新模块用于响应所述被测系统中包含的组件的变更,更新所述目标脚本,以对所述请求数据进行更新。
在本公开的一种示例性实施方式中,数据获取模块具体包括模型构建单元,以及样本获取单元,其中:
模型构建单元,用于通过机器学习模型构造所述被测系统。
样本获取单元,用于获取所述机器学习模型的样本数据作为所述被测系统的请求数据。
在本公开的一种示例性实施方式中,测试确定模块可以具体包括数据输入单元以及梯度增加处理单元,其中:
数据输入单元,用于将所述请求数据输入所述接口组件,以基于所述接口组件请求所述被测系统。
梯度增加处理单元,用于将所述被测系统的在线用户数进行梯度增加处理,获取所述被测系统对于所述请求数据的测试数据。
在本公开的一种示例性实施方式中,测试确定模块可以具体包括工具获取单元、依赖确定单元以及测试执行单元,其中:
工具获取单元,用于获取测试工具。
依赖确定单元,用于基于所述被测系统的所述接口组件生成所述测试工具的依赖包。
测试执行单元,用于结合所述测试工具以及所述依赖包获取所述请求数据对应的所述测试数据。
在本公开的一种示例性实施方式中,测试确定模块可以具体包括环境参数确定单元,以及工具运行单元,其中:
环境参数确定单元,用于根据测试需求确定对应的测试环境参数。
工具运行单元,用于基于所述测试环境参数以及所述依赖包运行所述测试工具,以获取所述请求数据对应的所述测试数据。
在本公开的一种示例性实施方式中,所述被测系统包括风控决策系统。
根据本公开的第三方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的方法。
根据本公开的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的方法。
本公开示例性实施例可以具有以下部分或全部有益效果:
在本公开的一示例实施方式所提供的测试方法中,在本公开的一示例实施方式所提供的测试方法中,一方面,根据被测系统包含的组件可以灵活地获取针对被测系统的请求数据,从而利用请求数据对被测系统进行测试,能够提高测试的针对性;另一方面,通过被测系统的接口组件对被测系统整体的处理逻辑进行测试,可以避免对固定规则测试时造成的准确性不高的问题,从而能够提高测试的准确性,以及测试结果的有效性;再一方面,通过测试结果能够确定被测系统的性能指标,从而有利于改善被测系统的性能。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示意性示出了根据本公开的一个实施例的用于实现测试方法的系统架构图;
图2示意性示出了根据本公开的一个实施例的测试方法的流程图;
图3示意性示出了根据本公开的另一个实施例的测试方法的流程图;
图4示意性示出了根据本公开的一个实施例的测试方法的流程图;
图5示意性示出了根据本公开的另一个实施例的测试方法的流程图;
图6示意性示出了根据本公开的一个实施例的测试方法的应用场景示意图;
图7示意性示出了根据本公开的一个实施例的测试装置的框图;
图8示出了适于用来实现本公开实施例的电子设备的计算机系统的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
以下对本公开实施例的技术方案进行详细阐述:
首先,本公开的示例性实施例中提供一种用于实现该测试方法的系统架构。参考图1所示,该系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送请求指令等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。
需要说明的是,本公开实施方式所提供的测试方法一般由服务器105执行,相应地,测试装置一般设置于服务器105中。但是,本领域技术人员能够理解的是,本公开的测试方法也可以由终端设备101执行,相应地,测试装置可以设置于终端设备101中,本实施方式对此不做特殊限定。
基于上述系统架构,本示例实施方式提供了一种测试方法。参考图2所示,该测试方法可以包括步骤S210、步骤S220、步骤S230以及步骤S240,其中:
步骤S210:获取待测试的被测系统包含的组件。
步骤S220:根据被测系统包含的组件,获取针对所述被测系统的请求数据。
步骤S230:确定所述被测系统的外部接口,基于所述外部接口以及所述请求数据获取所述被测系统的测试数据。
步骤S240:通过所述测试数据获取所述被测系统的性能指标,以确定所述被测系统的测试结果。
在本公开的一示例实施方式所提供的测试方法中,一方面,根据被测系统包含的组件可以灵活地获取针对不同被测系统的请求数据,从而利用请求数据对被测系统进行测试,能够提高测试的针对性;另一方面,通过被测系统的接口组件对被测系统整体的处理逻辑进行测试,可以避免对固定规则测试时造成的测试准确性不高的问题,从而能够提高测试的准确性,以及测试结果的有效性;再一方面,通过测试结果能够确定被测系统的性能指标,从而有利于改善被测系统的性能。
下面,对于本示例实施方式的上述步骤进行更加详细的说明。
在步骤S210中,获取待测试的被测系统包含的组件。
被测系统可以包括风控决策引擎,也可以包括各种包含风控决策引擎的系统,例如电子商务平台、电子支付系统、即使通讯系统等,或者,也可以包括其他自主研发的系统;其中,风控决策引擎是对复杂的业务逻辑抽象化剥离出来的业务规则进行不同的分支组合、关联,然后层层规则递进运算,最终输出决策结果的产品;请求数据是用于对被测系统进行测试的数据,可以包括多种任务,例如登录任务、连接请求等;请求数据中还可以具体包括多个字段,并且请求数据还可以被保存成特定格式的文件,例如excel文件、csv文件等;本实施方式对以上均不做特殊限定。
一个系统可以由多个组件构成,每个组件可以用于实现一种业务功能或者业务模块。示例性的,在对被测系统进行测试时,可以通过读取特定的文档,从而获得编写到该文档中的组件的属性信息,通过该属性信息确定被测系统包含的组件。其中,该文档可以由开发人员预先编辑好存放在特定的目录中,例如被测系统的工程目录中等。此外,可以通过其他方式确定被测系统中包含的组件,例如,在需要对被测系统进行测试时,向被测系统对应的服务器发送获取组件信息的请求,从而获取服务器发送的组件的信息;或者,可以通过检测被测系统的代码文件,从而识别出代码文件中包含的组件等,本实施方式对此不做特殊限定。
在步骤S220中,根据被测系统包含的组件,获取针对所述被测系统的请求数据。
本实施方式中,应用于不同场景的被测系统可以包括不同的组件,从而实现丰富的功能。举例而言,被测系统可以由决策流组件、规则集组件、决策树组件或其组合组成,或者,也可以包括其他组件,例如评分卡组件、模型执行器组件、A/B-test组件等。其中,评分卡组件是对目标的信息进行分析打分的表达方式,表示目标的行为所造成损失风险的可能性,评分通常用于对个人或机构的风险管理与评估。根据不同的组件可以预先编写不同的代码脚本,并确定各组件与脚本之间的对应关系,然后获取被测系统中包含的组件,根据被测系统中包含的组件获取对应的脚本,从而运行脚本获得被测系统的请求数据。示例性的,获取针对被测系统的请求数据的方法可以包括以下步骤S301和步骤S302,如图3所示,具体的:
在步骤S301中,根据所述被测系统包含的组件,获取所述组件对应的脚本参数。其中,脚本参数为脚本的属性信息,例如脚本名称、脚本存储路径等;通过脚本参数可以查询到对应的目标脚本。本实施方式中,可以预先对不同组件的组合编写代码生成脚本,然后记录每一脚本的属性信息以及各个脚本分别对应的组件组合,并且可以将脚本的属性信息与对应的组件组合进行保存,然后检测被测系统中包含的组件的信息,通常系统中包含的组件具有特定的组件标识,例如组件名称、组件接口等,根据被测系统中包含的组件的信息可以获取对应的脚本参数,从而根据被测系统中包含的组件能够查询到对应的脚本参数。
在步骤S302中,通过所述脚本参数运行目标脚本,以获取所述请求数据。本实施方式中,脚本参数可以包括多组,每组能够对应一脚本,则被测系统可以对应多个目标脚本;或者被测系统也可以对应唯一的一个目标脚本。运行目标脚本之后的运行结果可以作为请求数据,例如,目标脚本运行之后可以生成Excel文件,该文件中可以包括多条数据,每一条数据均可以作为一条请求数据,从而获取多条请求数据。其中,请求数据的数量可以包括100条、300条等,也可以包括其他数量,例如50条、500条等,本实施方式对此不做特殊限定。
由于被测系统随着迭代周期其中包含的组件可以发生变化,因此可选的实施方式中,在获取请求数据之后可以随时监测被测系统中组件的变更,从而在被测系统中组件变更时,重新获取更新后的组件对应的脚本参数,从而对目标脚本进行更新,利用更新后的目标脚本对请求数据进行更新。本实施方式中,请求数据可以随着被测系统的变更而变化,从而可以适应不同的被测系统进行测试,能够提高系统的测试效率。
举例而言,被测系统可以为由机器学习模型构成的风险决策系统,也就是说,本实施方式中可以通过机器学习模型组件构造被测系统;进而获取该机器学习模型的样本数据作为被测系统的请求数据。例如,可以调用机器学习算法逻辑回归、神经网络、随机森林等训练模型,将训练后的模型转换为PMML文件,从而输入至模型执行器,将模型执行器组件组成风险决策系统,从而得到被测系统。其中,PMML为预测模型标记语言(Predictive ModelMarkup Language,简称PMML)是一种可以呈现预测分析模型的事实标准语言。然后,将该模型的训练样本进行保存作为该被测系统的请求数据。
接下来,参考图2,在步骤S230中,对所述被测系统整体进行封装,以得到所述被测系统的接口组件,并基于所述接口组件以及所述请求数据获取所述被测系统的测试数据。
通常系统都会对外提供接口,以使得系统能够被其他组件或者系统进行调用。示例性的,通过代码脚本可以构建被测系统的接口组件,该接口组件可以作为被测系统对外提供的接口,被其他系统使用。本实施方式中,通过被测系统的接口组件可以调用被测系统;或者,也可以通过主从机制分布式调用被测系统,从而将请求数据输入被测系统得到被测系统的运行结果,被测系统对请求数据的运行结果可以作为测试数据。并且,测试数据可以包括被测系统的运行结果,也可以包括被测系统的运行日志。具体的,如图4所示,该方法可以具体包括以下步骤S401、步骤S402以及步骤S403,其中:
在步骤S401中,获取测试工具。举例而言,该测试工具可以为测试风控决策引擎的开源工具,例如,Jmeter工具等;也可以包括其他自主研发的工具,本实施方式不限于此。通过引入测试工具能够大大减少开发人员的工作量,从而提高测试方法的开发效率。
在步骤S402中,基于所述被测系统的所述接口组件生成所述测试工具的依赖包。具体的,利用被测系统的接口组件可以连接到被测系统,从而将被测系统作为该测试工具的依赖包。举例来说,可以通过java代码将被测系统构建为一接口插件,作为测试工具的外部依赖jar包。并且,可以根据不同的需要为该测试工具添加其他插件作为依赖包,例如,梯度加压插件等,从而满足被测系统的各种测试场景。
在步骤S403中,结合所述测试工具以及所述依赖包获取所述请求数据对应的所述测试数据。举例而言,将请求数据或者保存请求数据的文件发送至测试工具中,从而运行测试工具,该测试工具可以通过依赖包将请求数据作为入参输入被测系统中,并可以通过测试工具记录被测系统的运行日志,从而通过运行日志分析出被测系统的测试结果,即测试数据。
可选的实施方式中,可以在被测系统测试时确定不同的测试环境参数,从而模拟不同的场景,满足多种测试需求。如图5所示,该方法可以包括以下步骤S501以及步骤S502,具体的:
在步骤S501中,根据测试需求确定对应的测试环境参数。其中,测试环境参数可以包括多种参数,例如并发任务数量、延迟等,也可以包括其他参数,例如出错率、响应时间等,本实施方式不限于此。举例而言,被测系统的测试需求可以包括稳定性测试、在线性能测试与离线性能测试等;则稳定性测试可以设置并发任务并持续运行一定时间,从而确定系统的稳定性,因此稳定性测试需求对应的测试环境参数可以为并发任务数量以及运行持续时间;在线性能测试可以逐步增加请求数据直至达到最大,从而得到在线性能测试的数据,例如延迟率、出错率等,因此在线性能测试需求对应的测试环境参数可以为并发的请求数据数量;离线性能测试可以逐步增加请求数据到一定阈值,记录请求数据执行完成时间,从而记录出错率、CPU占用率等指标,因此离线性能测试对应的测试环境参数可以为请求数据数量。
在步骤S502中,基于所述测试环境参数以及所述依赖包运行所述测试环境,以获取请求数据对应的所述测试数据。示例性的,可以在运行测试工具时,将测试工具的系统参数设置为测试环境参数,从而获取到该测试环境参数下的测试数据。因此,该方法还可以基于外部接口将请求数据输入被测系统;进而,将被测系统的在线用户数进行梯度增加处理,获取被测系统的测试数据。具体的,将请求数据作为接口组件的输入参数,从而通过接口组件运行被测系统,获取测试数据;同时,对在线用户数进行梯度增加处理,能够测试在线性能。其中,在线用户数可以通过工具进行模拟,使得在线用户数进行梯度增加直至最大值或者至系统负载一定程度,例如,并发用户数从100进行增加,每隔一段时间增加一次,每次并发用户数增加100,直至系统负载的60%,从而记录被测系统的响应时间、出错率、延迟等指标,保存为文件,从而得到测试数据。此外,还可以通过构造插件模拟测试环境参数,例如,可以将在测试工具中添加梯度加压插件,从而通过梯度加压插件对并发用户数进行梯度增压,可以更加高效。
在步骤S240中,通过所述测试数据获取所述被测系统的性能指标,以确定所述被测系统的测试结果。
本实施方式中,被测系统每响应一条请求数据可以记录生成一测试数据,可以从各个测试数据中分别提取出被测系统中的各个性能指标,从而计算被测系统的性能指标的平均值,例如平均延迟、平均响应时间、出错率、资源占用率等等。举例而言,测试数据以系统日志为例,可以从得到被测系统各个性能指标之后可以对被测系统进行性能瓶颈分析,如果被测系统的吞吐量抖动较大,可以调整系统的jvm参数,如果出现线程池耗尽的问题可以将线程池增大,从而提高系统的性能。
图6示例性示出了本实施方式中的测试方法的一种应用场景。如图6所示,示例性实施方式中,脚本601可以包括针对不同组件的编写的可运行脚本,根据被测系统中包含的组件可以确定需要运行的目标脚本;通过脚本601可以获取请求数据602;请求数据602可以以excel文件或者CSV文件603的形式保存;利用excel或者CSV文件可以生成测试脚本604;测试脚本604能够用于在开源测试工具JMETER605中执行;并且,可以将被测系统608的外部接口通过代码脚本构建为接口插件606,从而将接口插件606集成在测试工具605中;此外,在测试工具605中还可以添加梯度加压插件607,从而对并发测试任务进行梯度加压,可以更方便的确定系统的性能瓶颈;对被测系统608进行测试之后可以对其进行日志分析;日志分析单元609可以获取到测试工具记录的日志文件,从而通过日志文件进行日志分析得到被测系统的测试数据;并且,还可以对得到的测试数据进行数据校验;数据校验单元610可以对日志分析得到的数据进行校验,从而进一步确定测试的准确性,例如将执行失败的请求数据筛选出来重新进行执行等;结果确定单元611可以在数据校验结束后获取正确有效的测试结果。
需要说明的是,图6中各个单元所需执行的步骤在上述具体实施例中已进行了说明,此处不再赘述。
进一步的,本示例实施方式中,还提供了一种测试装置,用于执行本公开上述的测试方法。该装置可以应用于一服务器或终端设备。
参考图7所示,该测试装置700可以包括:组件获取模块710、数据获取模块720、测试确定模块730以及结果确定模块740,其中:
组件获取模块710,用于获取待测试的被测系统包含的组件;
数据获取模块720,用于根据被测系统包含的组件,获取针对所述被测系统的请求数据;
测试确定模块730,用于对所述被测系统整体进行封装,以得到所述被测系统的接口组件,并基于所述接口组件以及所述请求数据获取所述被测系统的测试数据;
结果确定模块740,用于通过所述测试数据获取所述被测系统的性能指标,以确定所述被测系统的测试结果。
在本公开的一种示例性实施方式中,数据获取模块720具体包括参数获取单元,以及脚本运行单元,其中:
参数获取单元,用于根据所述被测系统包含的组件,获取所述组件对应的脚本参数。
脚本运行单元,用于通过所述脚本参数运行目标脚本,以获取所述请求数据。
在本公开的一种示例性实施方式中,该装置还可以包括数据更新模块,该数据更新模块用于响应所述被测系统中包含的组件的变更,更新所述目标脚本,以对所述请求数据进行更新。
在本公开的一种示例性实施方式中,数据获取模块720具体包括模型构建单元,以及样本获取单元,其中:
模型构建单元,用于通过机器学习模型构造所述被测系统。
样本获取单元,用于获取所述机器学习模型的样本数据作为所述被测系统的请求数据。
在本公开的一种示例性实施方式中,测试确定模块730可以具体包括数据输入单元以及梯度增加处理单元,其中:
数据输入单元,用于将所述请求数据输入所述接口组件,以基于所述接口组件请求所述被测系统。
梯度增加处理单元,用于将所述被测系统的在线用户数进行梯度增加处理,获取所述被测系统对于所述请求数据的测试数据。
在本公开的一种示例性实施方式中,测试确定模块730可以具体包括工具获取单元、依赖确定单元以及测试执行单元,其中:
工具获取单元,用于获取测试工具。
依赖确定单元,用于基于所述被测系统的所述接口组件生成所述测试工具的依赖包。
测试执行单元,用于结合所述测试工具以及所述依赖包获取所述请求数据对应的所述测试数据。
在本公开的一种示例性实施方式中,测试确定模块730可以具体包括环境参数确定单元,以及工具运行单元,其中:
环境参数确定单元,用于根据测试需求确定对应的测试环境参数。
工具运行单元,用于基于所述测试环境参数以及所述依赖包运行所述测试工具,以获取所述请求数据对应的所述测试数据。
在本公开的一种示例性实施方式中,所述被测系统包括风控决策系统。
由于本公开的示例实施例的测试装置的各个功能模块与上述测试方法的示例实施例的步骤对应,因此对于本公开装置实施例中未披露的细节,请参照本公开上述的测试方法的实施例。
图8示出了适于用来实现本公开实施例的电子设备的计算机系统的结构示意图。
需要说明的是,图8示出的电子设备的计算机系统800仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图8所示,计算机系统800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。在RAM 803中,还存储有系统操作所需的各种程序和数据。CPU801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
以下部件连接至I/O接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
特别地,根据本公开的实施例,下文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理单元(CPU)801执行时,执行本申请的方法和装置中限定的各种功能。
需要说明的是,本公开所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现如下述实施例中所述的方法。例如,所述的电子设备可以实现如图1和图2所示的各个步骤等。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (9)
1.一种测试方法,其特征在于,包括:
获取待测试的被测系统包含的组件;其中,所述被测系统包括风控决策引擎或包括包含风控决策引擎的系统;
根据所述被测系统包含的组件,获取所述组件对应的脚本参数,通过所述脚本参数运行目标脚本,以获取请求数据;
对所述被测系统整体进行封装,以得到所述被测系统的接口组件,并通过所述接口组件调用所述被测系统,以将所述请求数据输入所述被测系统,根据所述被测系统对所述请求数据的运行结果获取测试数据;
通过所述测试数据获取所述被测系统的性能指标,以确定所述被测系统的测试结果;
其中,在所述根据所述被测系统包含的组件,获取所述组件对应的脚本参数之前,所述方法还包括:
根据不同的组件预先编写不同的代码脚本,并确定各组件与代码脚本之间的对应关系。
2.根据权利要求1所述的方法,其特征在于,所述根据所述被测系统包含的组件,获取所述组件对应的脚本参数,通过所述脚本参数运行目标脚本,以获取请求数据,包括:
响应所述被测系统中包含的组件的变更,更新所述目标脚本,以对所述请求数据进行更新。
3.根据权利要求1所述的方法,其特征在于,所述根据所述被测系统包含的组件,获取所述组件对应的脚本参数,通过所述脚本参数运行目标脚本,以获取请求数据,包括:
通过机器学习模型构造所述被测系统;
获取所述机器学习模型的样本数据作为所述被测系统的请求数据。
4.根据权利要求1所述的方法,其特征在于,所述通过所述接口组件调用所述被测系统,以将所述请求数据输入所述被测系统,根据所述被测系统对所述请求数据的运行结果获取测试数据,包括:
将所述请求数据输入所述接口组件,以基于所述接口组件请求所述被测系统;
将所述被测系统的在线用户数进行梯度增加处理,以获取所述被测系统对于所述请求数据的测试数据。
5.根据权利要求1所述的方法,其特征在于,所述通过所述接口组件调用所述被测系统,以将所述请求数据输入所述被测系统,根据所述被测系统对所述请求数据的运行结果获取测试数据,包括:
获取测试工具;
基于所述被测系统的所述接口组件生成所述测试工具的依赖包;
结合所述测试工具以及所述依赖包获取所述请求数据对应的所述测试数据。
6.根据权利要求5所述的方法,其特征在于,所述结合所述测试工具以及所述依赖包获取所述请求数据对应的所述测试数据,包括:
根据测试需求确定对应的测试环境参数;
基于所述测试环境参数以及所述依赖包运行所述测试工具,以获取所述请求数据对应的所述测试数据。
7.一种测试装置,其特征在于,包括:
组件获取模块,用于获取待测试的被测系统包含的组件;
数据获取模块,用于根据所述被测系统包含的组件,获取所述组件对应的脚本参数,通过所述脚本参数运行目标脚本,以获取请求数据;
测试确定模块,用于对所述被测系统整体进行封装,以得到所述被测系统的接口组件,并通过所述接口组件调用所述被测系统,以将所述请求数据输入所述被测系统,根据所述被测系统对所述请求数据的运行结果获取测试数据;
结果确定模块,用于通过所述测试数据获取所述被测系统的性能指标,以确定所述被测系统的测试结果;
其中,在所述根据所述被测系统包含的组件,获取所述组件对应的脚本参数之前,还包括:
根据不同的组件预先编写不同的代码脚本,并确定各组件与代码脚本之间的对应关系。
8.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-6任一项所述的方法。
9.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010219546.1A CN113448822B (zh) | 2020-03-25 | 2020-03-25 | 测试方法、装置、计算机可读介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010219546.1A CN113448822B (zh) | 2020-03-25 | 2020-03-25 | 测试方法、装置、计算机可读介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113448822A CN113448822A (zh) | 2021-09-28 |
CN113448822B true CN113448822B (zh) | 2024-05-17 |
Family
ID=77806969
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010219546.1A Active CN113448822B (zh) | 2020-03-25 | 2020-03-25 | 测试方法、装置、计算机可读介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113448822B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114579445A (zh) * | 2022-03-01 | 2022-06-03 | 深圳须弥云图空间科技有限公司 | 基于图形引擎的自动化功能测试方法、装置、介质及设备 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102866944A (zh) * | 2012-06-12 | 2013-01-09 | 中国联合网络通信集团有限公司 | 一种压力测试系统及方法 |
CN102880543A (zh) * | 2011-04-18 | 2013-01-16 | 埃森哲环球服务有限公司 | 用于集成测试平台的测试数据供应链管理器 |
CN103019922A (zh) * | 2011-09-22 | 2013-04-03 | 北京新媒传信科技有限公司 | 一种可独立测试的组件架构实现方法 |
CN103793326A (zh) * | 2014-01-28 | 2014-05-14 | 福建星网锐捷网络有限公司 | 组件测试方法及装置 |
CN107423210A (zh) * | 2017-03-08 | 2017-12-01 | 北京数码大方科技股份有限公司 | 软件性能测试方法和装置 |
CN108694104A (zh) * | 2017-04-12 | 2018-10-23 | 北京京东尚科信息技术有限公司 | 一种接口功能对比测试方法、装置、电子设备和储存介质 |
CN108804315A (zh) * | 2018-05-23 | 2018-11-13 | 北京五八信息技术有限公司 | 应用于动态开发的测试方法、装置、电子设备及存储介质 |
CN108845940A (zh) * | 2018-06-14 | 2018-11-20 | 云南电网有限责任公司信息中心 | 一种企业级信息系统自动化功能测试方法和系统 |
CN109144799A (zh) * | 2018-08-14 | 2019-01-04 | 深圳壹账通智能科技有限公司 | 一体化测试方法、装置、计算机设备和存储介质 |
CN110162457A (zh) * | 2019-04-12 | 2019-08-23 | 深圳壹账通智能科技有限公司 | 用户界面的测试方法、装置、设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7519864B2 (en) * | 2005-11-29 | 2009-04-14 | Samsung Electronics Co., Ltd. | Automation test systems |
-
2020
- 2020-03-25 CN CN202010219546.1A patent/CN113448822B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102880543A (zh) * | 2011-04-18 | 2013-01-16 | 埃森哲环球服务有限公司 | 用于集成测试平台的测试数据供应链管理器 |
CN103019922A (zh) * | 2011-09-22 | 2013-04-03 | 北京新媒传信科技有限公司 | 一种可独立测试的组件架构实现方法 |
CN102866944A (zh) * | 2012-06-12 | 2013-01-09 | 中国联合网络通信集团有限公司 | 一种压力测试系统及方法 |
CN103793326A (zh) * | 2014-01-28 | 2014-05-14 | 福建星网锐捷网络有限公司 | 组件测试方法及装置 |
CN107423210A (zh) * | 2017-03-08 | 2017-12-01 | 北京数码大方科技股份有限公司 | 软件性能测试方法和装置 |
CN108694104A (zh) * | 2017-04-12 | 2018-10-23 | 北京京东尚科信息技术有限公司 | 一种接口功能对比测试方法、装置、电子设备和储存介质 |
CN108804315A (zh) * | 2018-05-23 | 2018-11-13 | 北京五八信息技术有限公司 | 应用于动态开发的测试方法、装置、电子设备及存储介质 |
CN108845940A (zh) * | 2018-06-14 | 2018-11-20 | 云南电网有限责任公司信息中心 | 一种企业级信息系统自动化功能测试方法和系统 |
CN109144799A (zh) * | 2018-08-14 | 2019-01-04 | 深圳壹账通智能科技有限公司 | 一体化测试方法、装置、计算机设备和存储介质 |
CN110162457A (zh) * | 2019-04-12 | 2019-08-23 | 深圳壹账通智能科技有限公司 | 用户界面的测试方法、装置、设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
Designing and Conducting an Empirical Study on Test Management Automation;Griselda Giraudo等;Empirical Software Engineering;第8卷;第59–81页 * |
基于组件的软件系统自动化测试研究;赵再军;计算机科学;第34卷(第10期);第278-280页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113448822A (zh) | 2021-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108415832B (zh) | 接口自动化测试方法、装置、设备及存储介质 | |
US10769228B2 (en) | Systems and methods for web analytics testing and web development | |
US11151024B2 (en) | Dynamic automation of DevOps pipeline vulnerability detecting and testing | |
CN112104709B (zh) | 智能合约的处理方法、装置、介质及电子设备 | |
US9569288B2 (en) | Application pattern discovery | |
CN111125064B (zh) | 一种生成数据库模式定义语句的方法和装置 | |
US20230040564A1 (en) | Learning Causal Relationships | |
CN111309343A (zh) | 一种开发部署方法及装置 | |
CN113094625B (zh) | 页面元素定位方法、装置、电子设备及存储介质 | |
US20220374218A1 (en) | Software application container hosting | |
CN112445866A (zh) | 数据处理方法、装置、计算机可读介质及电子设备 | |
CN111563257A (zh) | 数据检测方法及装置、计算机可读介质及终端设备 | |
CN115168341A (zh) | 一种业务处理方法、系统、介质及设备 | |
CN117632710A (zh) | 测试代码的生成方法、装置、设备及存储介质 | |
US11748238B2 (en) | Model-based biased random system test through rest API | |
Jiang et al. | Assuring the model evolution of protocol software specifications by regression testing process improvement | |
CN113448822B (zh) | 测试方法、装置、计算机可读介质及电子设备 | |
CN111400623B (zh) | 用于搜索信息的方法和装置 | |
CN115809193A (zh) | 前端逆向异常数据健壮性检测方法、装置及存储介质 | |
CN115796806A (zh) | 一种基于微服务的系统构建方法 | |
Habibi et al. | Generating test as a web service (TaaWS) through a method-based attribute grammar | |
CN113032256A (zh) | 自动化测试方法、装置、计算机系统和可读存储介质 | |
US11675838B2 (en) | Automatically completing a pipeline graph in an internet of things network | |
Habibi et al. | Sharif-TaaWS: a tool to automate unit testing of web services | |
CN110825438B (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 |