CN117493195A - 基于数据处理的测试方法、装置、存储介质及电子设备 - Google Patents

基于数据处理的测试方法、装置、存储介质及电子设备 Download PDF

Info

Publication number
CN117493195A
CN117493195A CN202311501735.8A CN202311501735A CN117493195A CN 117493195 A CN117493195 A CN 117493195A CN 202311501735 A CN202311501735 A CN 202311501735A CN 117493195 A CN117493195 A CN 117493195A
Authority
CN
China
Prior art keywords
data
target
test
custom
configuration information
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
Application number
CN202311501735.8A
Other languages
English (en)
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.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
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 Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202311501735.8A priority Critical patent/CN117493195A/zh
Publication of CN117493195A publication Critical patent/CN117493195A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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是根据本发明实施例的一种可选的电子设备的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,本发明所涉及的相关信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于展示的数据、分析的数据等),均为经用户授权或者经过各方充分授权的信息和数据。例如,本系统和相关用户或机构间设置有接口,在获取相关信息之前,需要通过接口向前述的用户或机构发送获取请求,并在接收到前述的用户或机构反馈的同意信息后,获取相关信息。
实施例1
根据本发明实施例,提供了一种基于数据处理的测试方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的一种可选的基于数据处理的测试方法的流程图,如图1所示,该方法包括如下步骤:
步骤S101,接收网页端发送的测试案例执行请求,并获取与测试案例执行请求中的测试案例名称对应的配置信息,其中,配置信息至少包括数据操作配置信息,数据操作配置信息包括以下至少之一:自定义操作配置、非自定义操作配置。
在上述步骤中,可以通过应用系统、处理器、电子设备等装置接收网页端发送的测试案例执行请求,可选地,通过基于数据处理的测试系统接收网页端发送的测试案例执行请求,其中,网页端可以是在线测试平台的前端,基于数据处理的测试系统可以是在线测试平台的后台服务系统,测试案例可以是用于测试金融业务场景的案例,在此不做限定。可选地,数据操作配置信息用于实现对测试数据的预处理操作。
图2是根据本发明实施例的一种可选的基于数据处理的测试系统的交互示意图,如图2所示,系统包括案例配置模块、自定义代码预编译模块以及案例运行模块,其中,案例配置模块用于实现用户在网页端输入案例配置,即配置测试案例的相关内容,例如输入报文、案例执行前的数据操作等,数据操作可以是数据库准备、缓存准备以及数据自定义操作等,当有数据自定义操作时,将数据自定义操作的相关信息(例如,自定义操作名称、自定义代码文本等)发送到自定义代码预编译模块,通过自定义代码预编译模块生成数据自定义操作对应的可执行文件,从而在案例运行模块接收到测试案例执行请求时,可以直接通过可执行文件实现数据自定义操作的处理逻辑,得到目标测试数据。
可选地,如图2所示,用户从网页端触发案例运行,案例运行模块接收到网页端发送的测试案例执行请求,根据测试案例名称查询数据库,获取测试案例对应的配置信息,包括输入报文、服务调用前的数据操作步骤(即数据操作配置信息)等,其中,输入报文可以是用户输入的内容信息(例如,用户办理业务时填写的信息)。
步骤S102,依据数据操作配置信息对测试数据进行预处理操作,得到目标测试数据,并将目标测试数据发送至目标测试服务。
步骤S103,在将目标测试数据发送至目标测试服务之后,接收目标测试服务返回的测试结果。
可选地,依据数据操作配置信息可以对测试数据进行预处理操作,例如,当数据操作配置信息为自定义操作配置时,可以依据数据自定义操作对应的可执行文件实现数据自定义操作的处理逻辑,得到目标测试数据;当数据操作配置信息为数据库准备、缓存准备等非自定义操作配置时,可以对数据库、缓存进行查询、修改、新增、删除等操作,得到目标测试数据。
可选地,在得到目标测试数据之后,即完成对测试数据的预处理操作之后,调用目标测试服务,将目标测试数据发送至目标测试服务进行测试,并接收目标测试服务返回的测试结果,案例执行结束。
基于上述步骤S101至步骤S103所限定的方案,可以获知,在本发明实施例中,采用基于字节码技术的数据自定义操作程序动态生成、运行的方式,首先接收网页端发送的测试案例执行请求,并获取与测试案例执行请求中的测试案例名称对应的配置信息,然后依据数据操作配置信息对测试数据进行预处理操作,得到目标测试数据,并将目标测试数据发送至目标测试服务,在将目标测试数据发送至目标测试服务之后,接收目标测试服务返回的测试结果。其中,配置信息至少包括数据操作配置信息,数据操作配置信息包括以下至少之一:自定义操作配置、非自定义操作配置。
容易注意到的是,在上述过程中,通过获取数据操作配置信息,可以依据数据操作配置信息对测试数据进行预处理操作,当数据操作配置信息为自定义操作配置时,通过预先在网页配置数据自定义操作代码并结合字节码技术动态编译代码生成的自定义操作的可执行文件,可以实现对测试数据的预处理,即根据可执行文件包含的自定义数据操作处理逻辑进行数据处理后,可以得到目标测试数据,从而能够调用目标测试服务实现测试,代码灵活性高、程序执行响应速度快,有效地提高了测试灵活性,并且无需用户单独准备编码环境,节省了代码管理、项目上下线等复杂流程,提高了测试效率。
由此可见,通过本发明的技术方案,达到了使网页化测试平台能够实现代码级灵活的数据操作的目的,从而实现了提高测试灵活性的技术效果,进而解决了现有技术中在线测试平台采用固定数据操作处理测试数据,存在测试灵活性差的技术问题。
在一种可选的实施例中,在接收网页端发送的测试案例执行请求之前,接收网页端发送的测试案例配置信息,并将测试案例配置信息存储于数据库中,其中,测试案例配置信息包括数据操作配置信息;在数据操作配置信息中存在自定义操作配置的情况下,获取自定义操作配置对应的自定义操作名称和自定义代码文本,并依据自定义操作名称和自定义代码文本生成自定义操作对应的可执行文件。
可选地,用户在网页端配置案例相关内容,包括输入报文、执行前的数据操作等,数据操作可以是数据库准备、缓存准备以及数据自定义操作等,其中,数据库准备、缓存准备是指对数据库、缓存进行查询、新增、修改、删除等,查询操作的结果以数据库文件(例如,#db.xxx)、缓存文件(例如,#cache.xxx)等形式保存到上下文变量集合中。
可选地,网页端除了提供基础的java代码API回显外,还支持上下文变量集合中的变量名自动匹配显示,方便用户进行数据自定义操作编码。例如,用户根据测试场景编写自定义操作的代码,配合上下文变量集合中的参数值完成复杂的数据处理逻辑,其中,上下文集合采用CaseInsensitiveMap类型(一种java类),这样用户可以不区分大小写使用变量名。
可选地,数据自定义操作伪代码示例如下:
public class数据自定义操作名{
/**
*自定义操作:计算用户信用卡开卡日期属于哪个季节
*注:用户信用卡记录,用户已经提前通过页面简单数据操作配置,预先查询回来放到了“上下文变量集合”
*/
public static void自定义操作(CaseInsensitiveMap<String,Object>上下文变量集合)
{
//从上下文集合拿到开卡日期
String开卡日期=上下文变量集合.get("#db.信用卡记录表.查询信用卡记录.开卡日期");
/**
*#db.信用卡记录表.查询信用卡记录.开卡日期是数据库操作的变量命名
*"db"指数据库操作类型
*"信用卡记录表"指数据库表名
*"查询信用卡记录"指数据库操作的描述
*"开卡日期"指要取的数据表记录的哪个字段值
*/
//从日期中截取月份并转为数字类型
int月份=Integer.parseInt(开卡日期.substring(5,7));
//判断月份所属季节
String季节;
if(月份<4){
季节="春季";
}else if(月份<7){
季节="夏季";
}else if(月份<10){
季节="秋季";
}else{
季节="冬季";
}
//将判断结果存到上下文,这样其它操作就可以通过变量名"#var.开卡日期所属季节"来获得开卡的季节了
上下文变量集合.put("#var.开卡日期所属季节",季节);
}
}
可选地,在接收网页端发送的测试案例执行请求之前,通过案例配置模块接收网页端发送的测试案例配置信息,即输入报文、执行前的数据操作等,并判断输入的配置信息是否完整、合法,例如,校验代码是否符合java语法规则。校验通过后,将案例配置保存到数据库的数据操作步骤列表中,如果有数据自定义操作,则获取数据自定义操作名称和自定义代码文本,将数据自定义操作名称和自定义代码文本发送到自定义代码预编译模块,通过自定义代码预编译模块生成数据自定义操作对应的可执行文件。
需要说明的是,通过上述过程,实现了对测试案例的数据操作配置,为后续生成数据自定义操作对应的可执行文件提供了数据基础。
在一种可选的实施例中,依据自定义操作名称和自定义代码文本生成自定义操作对应的可执行文件,包括:依据自定义操作名称确定自定义操作对应的第一程序类,并依据自定义代码文本生成第一方法,将第一方法配置于第一程序类中,得到目标程序类;创建与自定义操作名称对应的目标类加载器,并通过目标类加载器对目标程序类进行编译处理,得到可执行文件。
可选地,第一程序类可以是ctClass,第一方法可以是ctMethod,目标类加载器可以是CustomClassLoader。图3是根据本发明实施例的一种可选的自定义代码预编译模块的处理流程示意图,如图3所示,自定义代码预编译模块收到用户编写的代码文本(即自定义代码文本),在依据自定义操作名称和自定义代码文本生成自定义操作对应的可执行文件的过程中,首先依据自定义操作名称确定自定义操作对应的第一程序类,即判断是否已存在数据自定义操作名对应的ctClass。具体地,以数据自定义操作名称作为key,查询ConcurrentMap类型的ctClassCache,如果key存在,则获取数据自定义操作名对应的ctClass,如果key不存在,则通过Javassist字节码技术的ClassPool.makeClass()方法生成数据自定义操作对应的ctClass,得到第一程序类。
进一步地,依据自定义代码文本生成第一方法,将第一方法配置于第一程序类中,得到目标程序类。具体地,拼接用户自定义操作代码到ctMethod,再将ctMethod设置到ctClass中,得到目标程序类(即配置好的ctClass)。
进一步地,创建与自定义操作名称对应的目标类加载器,具体地,创建数据自定义操作名对应的CustomClassLoader,其中,CustomClassLoader为自定义的类加载器,用于一对一加载自定义代码,继承自项目的启动类加载器,可以确保所有类可用的同时,解决了同一个java类无法加载多次的问题。之后,设置当前线程类加载器为当前数据自定义操作名对应的CustomClassLoader,避免class类加载步骤出现找不到class的问题。
进一步地,通过目标类加载器对目标程序类进行编译处理,得到可执行文件。具体地,将ctClass编译为class文件(即得到可执行文件),并保存到类加载路径中。
需要说明的是,Javassist是一个开源的分析、编辑和创建java字节码的类库,可以直接编辑和生成java字节码。在本发明实施例中,通过网页在线配置数据自定义操作代码,字节码动态编译代码,生成可执行文件,当接收到数据自定义操作请求时,即可直接通过可执行文件进行数据处理,代码灵活性高、响应速度快、java API功能丰富,同时可以共享网页端上下文的所有变量,使用简单便捷,有效地提高了测试灵活性。
在一种可选的实施例中,在得到可执行文件之后,通过目标类加载器的第二方法将可执行文件加载到目标程序类的上下文中;以自定义操作名称为索引,将目标程序类和目标类加载器存储于目标类型的类存储器中。
可选地,第二方法可以是CtClass.toClass()方法,在得到可执行文件之后,通过目标类加载器的第二方法可以将可执行文件加载到目标程序类的上下文中。具体地,通过CtClass.toClass(customClassLoader,protectionDomain)方法将class文件加载到当前类上下文,使得案例运行模块可以通过反射调用自定义代码程序。
可选地,以自定义操作名称为索引,将目标程序类和目标类加载器存储于目标类型的类存储器中。具体地,以数据自定义操作名作为key(即索引),将ctClass、CustomClassLoader保存到ConcurrentMap类型(即目标类型)的ctClassCache(即类存储器)中。
需要说明的是,通过将可执行文件加载到目标程序类的上下文中,使得案例运行模块可以通过反射调用自定义代码程序,即当接收到数据自定义操作请求时,可以直接通过可执行文件进行数据处理,代码灵活性高、响应速度快、java API功能丰富,同时可以共享网页端上下文的所有变量,使用简单便捷,有效地提高了测试灵活性。
在一种可选的实施例中,依据数据操作配置信息对测试数据进行预处理操作,得到目标测试数据,包括:在数据操作配置信息为自定义操作配置的情况下,依据自定义操作配置对应的自定义操作名称从类存储器中获取目标类加载器,并切换当前线程类加载器为目标类加载器;通过目标类加载器的第三方法获取目标程序类中的目标方法,并通过反射执行目标方法,以执行目标方法中包含的自定义数据操作处理逻辑,得到目标测试数据。
在一种可选的实施例中,在数据操作配置信息为非自定义操作配置的情况下,依据非自定义操作配置对数据库和/或缓存进行数据处理,得到目标测试数据,其中,数据处理用于实现数据的增删改查。
图4是根据本发明实施例的一种可选的案例运行模块的处理流程示意图,如图4所示,当用户从网页端触发案例运行时,案例运行模块接收到网页端发送的测试案例执行请求,根据测试案例名称查询数据库,获取对应的案例运行配置,包括输入报文、服务调用前的数据操作步骤(即数据操作配置信息)等。如果数据操作步骤列表为空,认为用户未预先配置数据操作信息,即可能不需要数据预处理,则直接发起服务调用进行测试;如果数据操作步骤列表不为空,则解析输入报文为key-value模式,保存到上下文变量集合,在数据操作里可以通过#input.xxx方式从上下文变量集合引用输入报文的字段。
可选地,在依据数据操作配置信息对测试数据进行预处理操作,得到目标测试数据的过程中,在数据操作配置信息为自定义操作配置的情况下,依据自定义操作配置对应的自定义操作名称从类存储器中获取目标类加载器,并切换当前线程类加载器为目标类加载器,然后通过目标类加载器的第三方法获取目标程序类中的目标方法,并通过反射执行目标方法,以执行目标方法中包含的自定义数据操作处理逻辑,得到目标测试数据;在数据操作配置信息为非自定义操作配置的情况下,依据非自定义操作配置对数据库和/或缓存进行数据处理,得到目标测试数据。
具体地,如图4所示,依次获取数据操作步骤列表的每一个操作并执行,如果是操作类型属于数据库、缓存等非自定义代码的操作,则对数据库、缓存进行查询、修改、新增、删除等操作,得到目标测试数据,其中,查询操作的结果以数据库文件(例如,#db.xxx)、缓存文件(例如,#cache.xxx)等命名方式保存到上下文变量集合中。如果操作类型属于数据自定义操作,即在数据操作配置信息为自定义操作配置的情况下,首先根据数据自定义操作名从ctClassCache(即类存储器)获取CustomClassLoader(即目标类加载器),并切换当前线程类加载器为CustomClassLoader,然后通过java的class类提供的Class.forName(String数据自定义操作名)显式加载指定类,获得指定类clazz(其中,clazz是变量名,仅用于举例说明),可选地,第三方法可以是Class.forName()方法。然后初始化自定义操作方法类型MethodType methodType=MethodType.methodType(CaseInsensitiveMap.class),并通过clazz获取自定义操作方法句柄MethodHandlemethod=MethodHandles.lookup().findStatic(clazz,“自定义操作”,methodType),然后通过反射执行自定义操作方法(即目标方法)method.invokeExact(),方法内执行用户自定义的数据操作逻辑,得到目标测试数据。可选地,将操作的结果以#var.xxx命名方式保存到上下文变量集合。当步骤全部执行完毕,即预操作完成,调用服务进行测试并获取服务返回结果,案例运行结束。
需要说明的是,通过上述过程,实现了对测试数据的预处理操作,使测试环境能够满足测试场景要求。
在一种可选的实施例中,将目标测试数据发送至目标测试服务,包括:调用目标测试服务的服务接口,并将目标测试数据传送至服务接口。
可选地,通过使用java开源代码(例如,目标测试服务)实现测试,通过调用目标测试服务的API接口,将目标测试数据传送给API,API处理完返回相对应的结果,即返回测试结果。
需要说明的是,在本发明实施例中,采用基于字节码技术的数据自定义操作程序动态生成、运行的方式,首先接收网页端发送的测试案例执行请求,并获取与测试案例执行请求中的测试案例名称对应的配置信息,然后依据数据操作配置信息对测试数据进行预处理操作,得到目标测试数据,并将目标测试数据发送至目标测试服务,在将目标测试数据发送至目标测试服务之后,接收目标测试服务返回的测试结果。其中,配置信息至少包括数据操作配置信息,数据操作配置信息包括以下至少之一:自定义操作配置、非自定义操作配置。
容易注意到的是,在上述过程中,通过获取数据操作配置信息,可以依据数据操作配置信息对测试数据进行预处理操作,当数据操作配置信息为自定义操作配置时,通过预先在网页配置数据自定义操作代码并结合字节码技术动态编译代码生成的自定义操作的可执行文件,可以实现对测试数据的预处理,即根据可执行文件包含的自定义数据操作处理逻辑进行数据处理后,可以得到目标测试数据,从而能够调用目标测试服务实现测试,代码灵活性高、程序执行响应速度快,有效地提高了测试灵活性,并且无需用户单独准备编码环境,节省了代码管理、项目上下线等复杂流程,提高了测试效率。
由此可见,通过本发明的技术方案,达到了使网页化测试平台能够实现代码级灵活的数据操作的目的,从而实现了提高测试灵活性的技术效果,进而解决了现有技术中在线测试平台采用固定数据操作处理测试数据,存在测试灵活性差的技术问题。
实施例2
根据本发明实施例,提供了一种基于数据处理的测试装置的实施例,其中,图5是根据本发明实施例的一种可选的基于数据处理的测试装置的示意图,如图5所示,该装置包括:获取模块501,用于接收网页端发送的测试案例执行请求,并获取与测试案例执行请求中的测试案例名称对应的配置信息,其中,配置信息至少包括数据操作配置信息,数据操作配置信息包括以下至少之一:自定义操作配置、非自定义操作配置;处理模块502,用于依据数据操作配置信息对测试数据进行预处理操作,得到目标测试数据,并将目标测试数据发送至目标测试服务;接收模块503,用于在将目标测试数据发送至目标测试服务之后,接收目标测试服务返回的测试结果。
需要说明的是,上述的获取模块501、处理模块502以及接收模块503对应于上述实施例中的步骤S101至步骤S103,三个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。
可选地,基于数据处理的测试装置还包括:第一接收模块,用于在接收网页端发送的测试案例执行请求之前,接收网页端发送的测试案例配置信息,并将测试案例配置信息存储于数据库中,其中,测试案例配置信息包括数据操作配置信息;第一生成模块,用于在数据操作配置信息中存在自定义操作配置的情况下,获取自定义操作配置对应的自定义操作名称和自定义代码文本,并依据自定义操作名称和自定义代码文本生成自定义操作对应的可执行文件。
可选地,第一生成模块包括:确定模块,用于依据自定义操作名称确定自定义操作对应的第一程序类,并依据自定义代码文本生成第一方法,将第一方法配置于第一程序类中,得到目标程序类;第一处理模块,用于创建与自定义操作名称对应的目标类加载器,并通过目标类加载器对目标程序类进行编译处理,得到可执行文件。
可选地,基于数据处理的测试装置还包括:第二处理模块,用于在得到可执行文件之后,通过目标类加载器的第二方法将可执行文件加载到目标程序类的上下文中;第三处理模块,用于以自定义操作名称为索引,将目标程序类和目标类加载器存储于目标类型的类存储器中。
可选地,处理模块包括:第四处理模块,用于在数据操作配置信息为自定义操作配置的情况下,依据自定义操作配置对应的自定义操作名称从类存储器中获取目标类加载器,并切换当前线程类加载器为目标类加载器;第五处理模块,用于通过目标类加载器的第三方法获取目标程序类中的目标方法,并通过反射执行目标方法,以执行目标方法中包含的自定义数据操作处理逻辑,得到目标测试数据。
可选地,处理模块还包括:第六处理模块,用于在数据操作配置信息为非自定义操作配置的情况下,依据非自定义操作配置对数据库和/或缓存进行数据处理,得到目标测试数据,其中,数据处理用于实现数据的增删改查。
可选地,处理模块还包括:第七处理模块,用于调用目标测试服务的服务接口,并将目标测试数据传送至服务接口。
实施例3
根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,其中,计算机程序被设置为运行时执行上述的基于数据处理的测试方法。
实施例4
根据本发明实施例的另一方面,还提供了一种电子设备,其中,图6是根据本发明实施例的一种可选的电子设备的示意图,如图6所示,电子设备包括一个或多个处理器;存储器,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现用于运行程序,其中,程序被设置为运行时执行上述的基于数据处理的测试方法。处理器执行程序时实现以下步骤:接收网页端发送的测试案例执行请求,并获取与测试案例执行请求中的测试案例名称对应的配置信息,其中,配置信息至少包括数据操作配置信息,数据操作配置信息包括以下至少之一:自定义操作配置、非自定义操作配置;依据数据操作配置信息对测试数据进行预处理操作,得到目标测试数据,并将目标测试数据发送至目标测试服务;在将目标测试数据发送至目标测试服务之后,接收目标测试服务返回的测试结果。
可选地,处理器执行程序时还实现以下步骤:在接收网页端发送的测试案例执行请求之前,接收网页端发送的测试案例配置信息,并将测试案例配置信息存储于数据库中,其中,测试案例配置信息包括数据操作配置信息;在数据操作配置信息中存在自定义操作配置的情况下,获取自定义操作配置对应的自定义操作名称和自定义代码文本,并依据自定义操作名称和自定义代码文本生成自定义操作对应的可执行文件。
可选地,处理器执行程序时还实现以下步骤:依据自定义操作名称和自定义代码文本生成自定义操作对应的可执行文件,包括:依据自定义操作名称确定自定义操作对应的第一程序类,并依据自定义代码文本生成第一方法,将第一方法配置于第一程序类中,得到目标程序类;创建与自定义操作名称对应的目标类加载器,并通过目标类加载器对目标程序类进行编译处理,得到可执行文件。
可选地,处理器执行程序时还实现以下步骤:在得到可执行文件之后,通过目标类加载器的第二方法将可执行文件加载到目标程序类的上下文中;以自定义操作名称为索引,将目标程序类和目标类加载器存储于目标类型的类存储器中。
可选地,处理器执行程序时还实现以下步骤:依据数据操作配置信息对测试数据进行预处理操作,得到目标测试数据,包括:在数据操作配置信息为自定义操作配置的情况下,依据自定义操作配置对应的自定义操作名称从类存储器中获取目标类加载器,并切换当前线程类加载器为目标类加载器;通过目标类加载器的第三方法获取目标程序类中的目标方法,并通过反射执行目标方法,以执行目标方法中包含的自定义数据操作处理逻辑,得到目标测试数据。
可选地,处理器执行程序时还实现以下步骤:在数据操作配置信息为非自定义操作配置的情况下,依据非自定义操作配置对数据库和/或缓存进行数据处理,得到目标测试数据,其中,数据处理用于实现数据的增删改查。
可选地,处理器执行程序时还实现以下步骤:将目标测试数据发送至目标测试服务,包括:调用目标测试服务的服务接口,并将目标测试数据传送至服务接口。
本文中的设备可以是服务器、PC、PAD、手机等。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种基于数据处理的测试方法,其特征在于,包括:
接收网页端发送的测试案例执行请求,并获取与所述测试案例执行请求中的测试案例名称对应的配置信息,其中,所述配置信息至少包括数据操作配置信息,所述数据操作配置信息包括以下至少之一:自定义操作配置、非自定义操作配置;
依据所述数据操作配置信息对测试数据进行预处理操作,得到目标测试数据,并将所述目标测试数据发送至目标测试服务;
在将所述目标测试数据发送至所述目标测试服务之后,接收所述目标测试服务返回的测试结果。
2.根据权利要求1所述的方法,其特征在于,在接收网页端发送的测试案例执行请求之前,所述方法还包括:
接收所述网页端发送的测试案例配置信息,并将所述测试案例配置信息存储于数据库中,其中,所述测试案例配置信息包括所述数据操作配置信息;
在所述数据操作配置信息中存在所述自定义操作配置的情况下,获取所述自定义操作配置对应的自定义操作名称和自定义代码文本,并依据所述自定义操作名称和所述自定义代码文本生成自定义操作对应的可执行文件。
3.根据权利要求2所述的方法,其特征在于,依据所述自定义操作名称和所述自定义代码文本生成自定义操作对应的可执行文件,包括:
依据所述自定义操作名称确定所述自定义操作对应的第一程序类,并依据所述自定义代码文本生成第一方法,将所述第一方法配置于所述第一程序类中,得到目标程序类;
创建与所述自定义操作名称对应的目标类加载器,并通过所述目标类加载器对所述目标程序类进行编译处理,得到所述可执行文件。
4.根据权利要求3所述的方法,其特征在于,在得到所述可执行文件之后,所述方法还包括:
通过所述目标类加载器的第二方法将所述可执行文件加载到所述目标程序类的上下文中;
以所述自定义操作名称为索引,将所述目标程序类和所述目标类加载器存储于目标类型的类存储器中。
5.根据权利要求4所述的方法,其特征在于,依据所述数据操作配置信息对测试数据进行预处理操作,得到目标测试数据,包括:
在所述数据操作配置信息为所述自定义操作配置的情况下,依据所述自定义操作配置对应的自定义操作名称从所述类存储器中获取所述目标类加载器,并切换当前线程类加载器为所述目标类加载器;
通过所述目标类加载器的第三方法获取所述目标程序类中的目标方法,并通过反射执行所述目标方法,以执行所述目标方法中包含的自定义数据操作处理逻辑,得到所述目标测试数据。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在所述数据操作配置信息为所述非自定义操作配置的情况下,依据所述非自定义操作配置对数据库和/或缓存进行数据处理,得到所述目标测试数据,其中,所述数据处理用于实现数据的增删改查。
7.根据权利要求1所述的方法,其特征在于,将所述目标测试数据发送至目标测试服务,包括:
调用所述目标测试服务的服务接口,并将所述目标测试数据传送至所述服务接口。
8.一种基于数据处理的测试装置,其特征在于,包括:
获取模块,用于接收网页端发送的测试案例执行请求,并获取与所述测试案例执行请求中的测试案例名称对应的配置信息,其中,所述配置信息至少包括数据操作配置信息,所述数据操作配置信息包括以下至少之一:自定义操作配置、非自定义操作配置;
处理模块,用于依据所述数据操作配置信息对测试数据进行预处理操作,得到目标测试数据,并将所述目标测试数据发送至目标测试服务;
接收模块,用于在将所述目标测试数据发送至所述目标测试服务之后,接收所述目标测试服务返回的测试结果。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至7任一项中所述的基于数据处理的测试方法。
10.一种电子设备,其特征在于,所述电子设备包括一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现用于运行程序,其中,所述程序被设置为运行时执行所述权利要求1至7任一项中所述的基于数据处理的测试方法。
CN202311501735.8A 2023-11-10 2023-11-10 基于数据处理的测试方法、装置、存储介质及电子设备 Pending CN117493195A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311501735.8A CN117493195A (zh) 2023-11-10 2023-11-10 基于数据处理的测试方法、装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311501735.8A CN117493195A (zh) 2023-11-10 2023-11-10 基于数据处理的测试方法、装置、存储介质及电子设备

Publications (1)

Publication Number Publication Date
CN117493195A true CN117493195A (zh) 2024-02-02

Family

ID=89682541

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311501735.8A Pending CN117493195A (zh) 2023-11-10 2023-11-10 基于数据处理的测试方法、装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN117493195A (zh)

Similar Documents

Publication Publication Date Title
CN110162296B (zh) 应用程序编程接口文档的生成方法、装置及终端设备
EP1302867A2 (en) Efficient web page localization
CN1306402C (zh) 创建和使用预内在化程序文件的方法和设备
US20090254611A1 (en) System and Method for Platform and Language-Independent Development and Delivery of Page-Based Content
US8250523B2 (en) Source code wrapper generation
Fill SeMFIS: a flexible engineering platform for semantic annotations of conceptual models
CN110569108B (zh) 小游戏虚拟机执行环境的创建方法及相关产品
US10970047B2 (en) Lossless bi-directional formatting of program source code
CN111597238A (zh) 一种基于数据库的动态展示表格数据的方法及装置
CN113672222B (zh) 一种应用程序接口管理装置及其构建方法
CN112925523B (zh) 对象比较方法、装置、设备及计算机可读介质
CN114048415A (zh) 表单生成方法及装置、电子设备和计算机可读存储介质
CN117149631A (zh) 一种参数校验方法、装置、设备及介质
Yao et al. . NET compact framework programming with C#
CN116400914A (zh) 一种基于数据模型快速构建web应用的方法
CN117493195A (zh) 基于数据处理的测试方法、装置、存储介质及电子设备
CN115269040A (zh) 一种租户业务应用的拓展方法、装置及系统
US20090007157A1 (en) Mapping Data Sources to a Procedural API
CN115328679A (zh) 异构函数库的自动化集成方法、计算设备及其系统
US20220365758A1 (en) Tool for Introspection in Object-Oriented Source Code
CN112650512A (zh) 硬件驱动方法及装置、终端、存储介质
CN111881220A (zh) 列表存储下的数据操作方法、装置、电子设备和存储介质
CN117311799B (zh) 一种软件项目页面的配置方法
CN117234512B (zh) 业务快速开发方法、系统、电子设备及存储介质
CN115269058B (zh) 一种wpf资源加载方法及装置

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