CN116010244A - 自动化测试方法、装置、电子设备及存储介质 - Google Patents
自动化测试方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116010244A CN116010244A CN202211547124.2A CN202211547124A CN116010244A CN 116010244 A CN116010244 A CN 116010244A CN 202211547124 A CN202211547124 A CN 202211547124A CN 116010244 A CN116010244 A CN 116010244A
- Authority
- CN
- China
- Prior art keywords
- data
- database
- report
- comparison
- execution
- 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
Images
Classifications
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本申请实施例公开了一种自动化测试方法、装置、电子设备及存储介质,涉及软件测试技术领域,通过在预设时间内运行网关程序,采集相关用户的操作数据,将采集到的操作数据通过网关程序调用接口存储作为测试新版本的样本数据,然后回放样本数据到不同版本的运行环境进行测试,其中实验组为第一版本的运行环境,对照组为第二版本的运行环境,对应生成第一执行报告和第二执行报告,通过对比第一执行报告和第二执行报告生成对比报告,得到第一版本的测试结果。因此不需要测试人员学习开发平台相关知识,也无需编写或增加测试用例,仅仅通过生产环境用户的真实操作,在不同版本间测试,对比不同的执行结果,分析对比报告即可实现准确率高的全面测试。
Description
技术领域
本申请涉及软件测试技术领域,特别是涉及一种自动化测试方法、装置、电子设备及存储介质。
背景技术
随着互联网的快速发展,开发商不断更新各种软件以提供更完善的服务,在新版本上线前需要判断新版本的质量,通常使用自动化测试实现,通过测试开发平台,按照场景增加相应的测试用例,以覆盖产品的功能及使用产品的客户场景。
相关技术中的自动化测试往往需要测试人员学习开发平台相关知识,对于功能复杂的产品需要增加测试用例的数量及速度,需要较高的学习成本的同时还受到测试人员的技术水平限制,导致测试准确度低,测试不够全面,进而影响测试效率。
发明内容
本申请旨在至少解决现有技术中存在的技术问题之一。为此,本申请实施例提供了一种自动化测试方法、装置、电子设备及存储介质,能够实现无需测试人员编写测试用例,即可在不同版本间进行测试。
第一方面,本申请实施例提供了一种自动化测试方法,包括:
运行网关程序采集预设时间内的操作数据,所述网关程序调用接口存储所述操作数据,并将所述操作数据作为测试的样本数据;
在实验组回放所述样本数据生成第一执行报告,所述实验组为第一版本的运行环境;
在对照组回放所述样本数据生成第二执行报告,所述对照组为第二版本的运行环境;
对比所述第一执行报告和所述第二执行报告,生成对比报告;
根据所述对比报告得到所述第一版本的测试结果。
在本申请的一些实施例中,所述网关程序为预先编写的lua脚本;所述运行网关程序采集预设时间内的操作数据,所述网关程序调用接口存储所述操作数据,并将所述操作数据作为测试的样本数据,还包括:
利用所述lua脚本生成采集至少一个用户的所述操作数据的子请求,所述子请求用于调用Nginx服务器采集所述操作数据;所述操作数据包括以下至少一种:请求数据、输出数据、数据库数据;
利用所述接口将所述操作数据存储至消息队列;
根据所述操作数据得到所述样本数据;所述样本数据包括:用户操作记录和用户操作对象记录。
在本申请的一些实施例中,所述根据所述操作数据得到所述样本数据,包括:将所述操作数据按照预处理规则进行过滤清洗,得到所述样本数据。
在本申请的一些实施例中,所述在实验组回放所述样本数据生成第一执行报告,还包括:
从所述消息队列调取所述样本数据至回放数据库;
在预设时间点复制所述回放数据库为第一数据库至所述实验组;
根据所述用户操作记录和用户操作对象记录生成请求,并根据所述请求生成第一执行结果;所述第一执行结果包括以下至少一种:第一状态码、第一返回值、第一数据库持久化数据;
对所述第一执行结果生成第一执行报告。
在本申请的一些实施例中,所述在对照组回放所述样本数据生成第二执行报告,还包括:
从所述消息队列调取所述样本数据至回放数据库;
在预设时间点复制所述回放数据库为第二数据库至所述对照组;
根据所述用户操作记录和用户操作对象记录生成请求,并根据所述请求生成第二执行结果;所述第二执行结果包括以下至少一种:第二状态码、第二返回值、第二数据库持久化数据;
对所述第二执行结果生成第二执行报告。
在本申请的一些实施例中,所述对比所述第一执行报告和所述第二执行报告,生成对比报告,还包括:
获取预设数据对比规则形成的规则库;
基于所述规则库,对所述第一执行报告和所述第二执行报告进行字段对比,得到第一对比结果;
读取所述第一数据库的第一日志文件和所述第二数据库的第二日志文件,进行对比得到第二对比结果;
根据所述第一对比结果和所述第二对比结果生成所述对比报告。
在本申请的一些实施例中,读取所述第一数据库的第一日志文件和所述第二数据库的第二日志文件,进行对比得到第二对比结果,还包括:
统计所述第一数据库和所述第二数据库的数据表的数量、行数、大小中的一种或多种,进行逐行对比;
对比所述第一数据库的第一元数据信息库和所述第二数据库的第二元数据信息库;
获取预设数据库行列对比规则,对比所述第一数据库和所述第二数据库的行数据和列数据,得到第二对比结果。
在本申请的一些实施例中,所述根据所述对比报告得到所述第一版本的测试结果,还包括:
获取所述第一版本和所述第二版本的修订记录;
根据所述修订记录确定排除范围;
根据所述排除范围对所述对比报告进行异常判断,得到所述第一版本的测试结果。
第二方面,本申请实施例还提供了一种自动化测试装置,包括:
数据采集模块,用于采集操作数据作为测试的样本数据;
数据回放模块,用于回放所述样本数据至实验组生成第一执行报告和对照组生成第二执行报告;
数据对比模块,用于对比所述第一执行报告和所述第二执行报告,生成对比报告;
数据分析模块,用于对所述对比报告进行分析,得到测试结果。
第三方面,本申请实施例还提供了一种电子设备,包括存储器、处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如本申请第一方面实施例所述的自动化测试方法。
第四方面,本申请实施例还提供了一种计算机可读存储介质,所述存储介质存储有程序,所述程序被处理器执行实现如本申请第一方面实施例所述的自动化测试方法。
本申请实施例至少包括以下有益效果:本申请实施例提供了一种自动化测试方法、装置、电子设备及存储介质,其中,通过在预设时间内运行网关程序,启用线上采集相关用户的操作数据,将采集到的操作数据通过网关程序调用接口存储作为测试新版本的样本数据,然后回放样本数据到不同版本的运行环境进行测试,其中实验组为第一版本的运行环境,对照组为第二版本的运行环境,对应生成第一执行报告和第二执行报告,通过对比第一执行报告和第二执行报告生成对比报告,得到第一版本的测试结果。因此不需要测试人员学习开发平台相关知识,也无需编写或增加测试用例,仅仅通过生产环境用户的真实操作,在不同版本间测试,即可实现准确率高的全面测试。
本申请的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1是本申请一个实施例提供的自动化测试方法流程示意图;
图2是图1中步骤S100的流程示意图;
图3是图1中步骤S200的流程示意图;
图4是图1中步骤S300的流程示意图;
图5是图1中步骤S400的流程示意图;
图6是图5中步骤S430的流程示意图;
图7是图1中步骤S500的流程示意图;
图8是本申请一个实施例提供的自动化测试容器依赖关系图;
图9是本申请一个实施例提供的自动化测试装置示意图;
图10是本申请一个实施例提供的电子设备的结构示意图。
附图标记:
数据采集模块100、数据回放模块200、数据对比模块300、数据分析模块400、电子设备1000、处理器1001、存储器1002。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能理解为对本申请的限制。
在本申请的描述中,需要理解的是,涉及到方位描述,例如上、下、前、后、左、右等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。
在本申请的描述中,若干的含义是一个或者多个,多个的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。如果有描述到第一、第二只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。
本申请的描述中,除非另有明确的限定,设置、安装、连接等词语应做广义理解,所属技术领域技术人员可以结合技术方案的具体内容合理确定上述词语在本申请中的具体含义。
随着互联网的快速发展,开发商不断更新各种软件以提供更完善的服务,在新版本上线前需要对该网络产品的性能进行全面、系统的测试,根据测试结果从而决定是否上线,此时通常使用自动化测试,通过测试开发平台,按照场景增加相应的测试用例,以覆盖产品的功能及使用产品的客户场景。然而常规的自动化测试在用例构造成本较高,通常存在以下缺陷:首先,需要测试人员编写测试用例,在为每种测试场景单独编写用例,其测试设计成本和编码成本,都需要专业测试人员耗费大量人工时间和精力,导致较高的学习成本。其次,由于测试用例的编写成本和编写门槛比较高,因此测试用例常出现的问题是覆盖场景不够丰富,容易出现测试遗漏,导致测试准确度低,进而影响测试效率。
基于此,本申请实施例提供了一种自动化测试方法、装置、电子设备及存储介质,能够在自动化测试过程中,无需测试人员编写测试用例,即可实现快速全面准确率高的测试。
参照图1所示的自动化测试方法流程示意图,本申请实施例提供了一种自动化测试方法,应用于计算机,该自动化测试方法包括但不限于以下步骤S100至步骤S500。
步骤S100,运行网关程序采集预设时间内的操作数据,网关程序调用接口存储操作数据,并将操作数据作为测试的样本数据。
在一些实施例中,网关作为所有流量的入口,可以用于对预配置的用户或者企业采集相关操作数据。具体的,在新版本发版前的预设时间内,例如新版本发版前10天或预设日期范围内,通过运行网关程序,启用线上操作数据的采集。网关程序采集预设时间内的操作数据的过程中,继续调用相关的接口将采集到的操作数据存储起来,作为测试的样本数据。可以理解的是,由此采集到的操作数据作为测试的样本数据,都是用户的真实输入,每一个请求都为真实场景,避免了人工或者自动构造类似单元测试的输入数据集,有利于覆盖用户的使用功能和场景,从而使测试更加全面。
步骤S200,在实验组回放样本数据生成第一执行报告。
在一些实施例中,实验组为第一集群,具体的,集群用于执行用户业务的一系列服务和基础设施等,其中部署了第一版本的运行环境,第一版本即新版本,因此第一集群可以部署新版本程序的环境。可以理解的是,在实验组中回放样本数据,能够对应生成第一执行报告。
步骤S300,在对照组回放样本数据生成第二执行报告。
在一些实施例中,对照组为第二集群,其中部署了第二版本的运行环境,即旧版本程序的环境,在对照组中回放样本数据,对应生成第二执行报告。
步骤S400,对比第一执行报告和第二执行报告,生成对比报告。
可以理解的是,实验组和对照组除了程序版本内容不同,其他均一致,例如运行环境等。本实施例通过回放相同的样本数据在两个不同版本间进行测试分别生成对应的执行报告。在一些实施例中,对对应生成的第一执行报告和第二执行报告进行对比,生成对比报告。
步骤S500,根据对比报告得到第一版本的测试结果。
在一些实施例中,根据对比报告进行分析,可以得到第一版本的测试结果,即新版本的测试结果,从而判断新版本是否存在异常。
参照图2所示,在本申请的一些实施例中,上述步骤S100中,还可以包括但不限于以下步骤S110至步骤S130。
步骤S110,利用lua脚本生成采集至少一个用户的操作数据的子请求,子请求用于调用Nginx服务器采集操作数据。
在一些实施例中,网关程序为预先编写的lua脚本,利用lua脚本生成子请求调用Nginx服务器采集操作数据。具体的,lua是一种可灵活嵌入应用程序中从而为应用程序提供灵活的扩展和定制功能的轻量级脚本,由标准C编写而成,几乎在所有操作系统和平台上都可以编译运行,Lua脚本很容易的被C/C++代码调用,也可以反过来调用C/C++的函数,这使得lua在应用程序中被广泛应用,并且容易理解和维护。Nginx采用C进行编写,是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,既可以在内部直接支持Rails和PHP程序对外进行服务,也可以支持作为HTTP代理服务对外进行服务。
可以理解的是,被采集的操作数据为预配置的企业及其用户的操作数据,例如,在处理http请求时,在网关lua的rewrite/access阶段发起子请求ngx.location.capture(),具体的,rewrite阶段用于实现跳转/重定向/缓存等功能,例如特定请求代理到外网,access即权限检查阶段,ngx_access在这个阶段运行,配置指令一般执行访问控制相关的任务,如检查用户的访问权限,检查用户的来源IP是否合法。发起的子请求ngx.location.capture()请求到相对于当前Nginx服务器的路径,通过Nginx采集数据的方式采集操作数据。
可以理解的是,操作数据包括以下至少一种:请求数据、输出数据、数据库数据。其中请求数据为用户请求的输入数据,输出数据为不同版本的程序执行用户请求后的返回数据,数据库数据为用户请求中操作对象的记录。
在一些实施例中,多租户场景下,通过为各个企业单独配置数据库实现数据隔离,通常在测试过程中,需要对进行测试的企业的数据库进行备份,以收集原始的数据库数据。可以理解的是,本实施例可以直接使用自动备份还原的数据库文件,或者将系统表结构和数据直接导出成sql去目标库中执行,或者使用阿里云dts工具进行全库迁移等,本申请对此不做限制。
步骤S120,利用接口将操作数据存储至消息队列。
在一些实施例中,网关程序是在生产环境截取流量,由于其与用户的请求同步,因此在采集操作数据时,需要尽量缩短时间,设置消息队列有利于将采集到操作数据延迟存储,通过网关程序调用收集服务接口将操作数据存储至消息队列,有效节约了时间。
步骤S130,根据操作数据得到样本数据。
在一些实施例中,将操作数据按照预处理规则进行过滤清洗,从而得到样本数据。例如本实施例中预处理规则是按照用户请求的请求头中的企业编码和用户id进行解析,具体的,按照请求头中的EngineCode和UserId进行区分,对残缺数据、错误数据及重复数据进行清洗,从而得到不同用户和对应的企业间的数据。
可以理解的是,样本数据包括用户操作记录和用户操作对象记录,具体的,用户操作记录为用户的操作动作,例如对某个数据的增删查改,而用户操作对象记录即数据记录,存储在数据库中的某一条数据记录。
参照图3所示,在本申请的一些实施例中,上述步骤S200中,还可以包括但不限于以下步骤S210至步骤S240。
步骤S210,从消息队列调取样本数据至回放数据库。
在一些实施例中,网关程序调用相关的存储服务接口将消息队列中的样本数据存储至回放数据中。
步骤S220,在预设时间点复制回放数据库为第一数据库至实验组。
在一些实施例中,选择采集操作数据的预设时间内的某一时刻作为预设时间点,将回放数据库复制并命名为第一数据库,作为测试的样本数据被实验组在测试过程中使用。例如,预设时间为14-19号采集操作数据,可以选择预设时间点为16号时间的回放数据库备份至实验组,选取16-18号的样本数据进行回放测试,本申请对此不做限制。
步骤S230,根据用户操作记录和用户操作对象记录生成请求,并根据请求生成第一执行结果。
在一些实施例中,后台任务使用第一数据库的样本数据模拟用户浏览器发送请求至实验组接口,具体的,根据用户操作记录和用户操作对象记录生成http请求,例如对某一条数据库数据进行更新操作,根据生成的http请求,实验组中的程序对应执行并生成第一执行结果。可以理解的是,第一执行结果包括以下至少一种:第一状态码、第一返回值、第一数据库持久化数据。应该理解的是,第一状态码可以是http请求对应的http状态码,例如代表请求已被接收需要继续处理的临时响应,或者代表需要客户端采取进一步都操作才能完成请求,或者服务器在处理请求过程中有错误或异常状态发生等,而第一返回值代表子程序或者函数执行结束后返回给主程序或者调用函数的函数的值。
步骤S240,对第一执行结果生成第一执行报告。
参照图4所示,在本申请的一些实施例中,上述步骤S300中,还可以包括但不限于以下步骤S310至步骤S340。
步骤S310,从消息队列调取样本数据至回放数据库。
在一些实施例中,网关程序调用相关的存储服务接口将消息队列中的样本数据存储至回放数据中。
步骤S320,在预设时间点复制回放数据库为第二数据库至对照组。
在一些实施例中,选择采集操作数据的预设时间内的某一时刻作为预设时间点,将回放数据库复制并命名为第二数据库,作为测试的样本数据被对照组在测试过程中使用。可以理解的是,相关的预设时间和预设时间点需要和实验组相同,确保在测试过程中,对照组和实验组的样本数据相同。
步骤S330,根据用户操作记录和用户操作对象记录生成请求,并根据请求生成第二执行结果。
在一些实施例中,后台任务使用第二数据库的样本数据模拟用户浏览器发送请求至实验组接口,具体的,根据用户操作记录和用户操作对象记录生成http请求,例如对某一条数据库数据进行更新操作,根据生成的http请求,实验组中的程序对应执行并生成第二执行结果。可以理解的是,第二执行结果包括以下至少一种:第二状态码、第二返回值、第二数据库持久化数据。应该理解的是,第二状态码可以是http请求对应的http状态码,例如代表请求已被接收需要继续处理的临时响应,或者代表需要客户端采取进一步都操作才能完成请求,或者服务器在处理请求过程中有错误或异常状态发生等,而第二返回值代表子程序或者函数执行结束后返回给主程序或者调用函数的函数的值。
步骤S340,对第二执行结果生成第二执行报告。
参照图5所示,在本申请的一些实施例中,上述步骤S400中,还可以包括但不限于以下步骤S410至步骤S440。
步骤S410,获取预设数据对比规则形成的规则库。
可以理解的是,由于实验组的程序版本与对照组不同,对于相同的样本数据得到的测试结果也会不同,具体的,即使功能和逻辑均正常的同一个接口,由于不同版本的字段及功能的不同从而导致返回数据不一致,因此数据比对的规则十分关键。
在一些实施例中,预设定义各种数据比对规则形成规则库,具体的,规则库是一系列配置规则,用于说明在第一执行结果和第二执行结果是否正确。可以理解的是,规则库是预先进行动态更新的,可以根据具体情况进行人工添加完善相应的数据比对规则,或者根据不同的测试执行结果进行补充,本申请对此不做限制。
步骤S420,对第一执行报告和第二执行报告进行字段对比得到第一对比结果。
在一些实施例中,基于规则库,对第一执行报告和第二执行报告进行字段对比,可以理解的是,可以使用JSONpath定义要对比的字段,JSONpath是一种信息抽取类库,从JSON文档中抽取指定信息的工具,提供多种语言实现版本,包括Javascript、Python、PHP和Java等。使用JSONpath定义要对比的字段,例如实验组返回的第一状态码是1.1,对照组返回的第二状态码是1.10,两者本质是相同的,因此本实施例通过规则库的配置规则判断得到“1.1==1.10”,说明实验组和对照组的执行结果是正确的,由此得到第一对比结果。
步骤S430,读取第一数据库的第一日志文件和第二数据库的第二日志文件,进行对比得到第二对比结果。
在一些实施例中,将经过测试后的实验组和对照组的数据库对应的日志文件读取出来进行对比,具体的,根据MySQL数据库中的二进制日志文件可以将用户操作对象记录进行还原,进行对比后得到第二对比结果。
步骤S440,根据第一对比结果和第二对比结果生成对比报告。
参照图6所示,在本申请的一些实施例中,上述步骤S430中,还可以包括但不限于以下步骤S431至步骤S433。
步骤S431,统计第一数据库和第二数据库的数据表的数量、行数、大小中的一种或多种,进行逐行对比。
在一些实施例中,通过读取第一数据库的二进制日志文件和第二数据库的二进制日志文件,统计对应的数据表的数量、行数、大小,逐行对比内容,从而可以得到实验组和对照组在经过相同的样本数据测试后,用户操作对象记录存在哪些变化。
步骤S432,对比第一数据库的第一元数据信息库和第二数据库第二元数据信息库。
在一些实施例中,通过对比第一数据的第一元数据信息库和第二数据库的第二元数据信息库,具体的,可以对比表信息和行信息,从而获得实验组和对照组在经过相同的样本数据测试后,数据库存在哪些变化。可以理解的是,在MySQL数据库中,元数据信息库即为information_schema,其保存着关于MySQL服务器所维护的所有其他数据库的信息,如数据库名,数据库的表,表栏的数据类型与访问权限等。
步骤S433,获取预设数据库行列对比规则,对比第一数据库和第二数据库的行数据和列数据,得到第二对比结果。
在一些实施例中,经过对比第一数据库的第一元数据信息库和第二数据库的第二元数据信息库后,再获取预设数据库行列对比规则,对比第一数据库和第二数据库的行数据和列数据,从而得到第二对比结果。具体的,列数据有不同的维度进行比较,例如对比列的数据类型,或者对比列的规定长度,也可以对比列的默认值等,本申请对此不做限制,本领域技术人员可以根据具体情况定义不同的对比规则。
参照图7所示,在本申请的一些实施例中,上述步骤S500中,还可以包括但不限于以下步骤S510至步骤S530。
步骤S510,获取第一版本和第二版本的修订记录。
可以理解的是,得到对比报告后,由于系统时间、自定义代码、定时器等因素的存在也有可能在运行时导致两组数据不一致,因此还需要对对比报告进一步进行分析。在一些实施例中,通过获取第一版本和第二版本的修订记录,以便于分析各因素及原因进行数据分析。
步骤S520,根据修订记录确定排除范围。
在一些实施例中,根据修订记录确定排除范围,具体的,关于定时器或自定义代码因素的影响,可以通过预先编写的规则或者人工分析相关的返回数据。然后再确定新版本的影响范围,即预期内已经知道那些接口或者功能的内容会存在变更。可以理解的是,业务逻辑的改变会带来数据的改变,在完善业务接口模块后,根据接口的数据差异排除新版本的接口影响范围,可根据数据报表看出哪些接口模块出现异常。
步骤S530,根据排除范围对对比报告进行异常判断,得到第一版本的测试结果。
在一些实施例中,根据排除范围对对比报告进行异常判断,具体的,如果有定时器或自定义代码因素的影响,例如一个接口运行后返回的是系统时间,由于新旧版本在测试上,开始的时间及运行的时间不同,可能导致返回的时间有所差别,但实际上,不同的系统时间均是正确的测试结果,又或者一个接口运行后返回的是随机整数,即每次调用接口运行返回的结果都有可能不同,但这也是正确的结果,因此需要根据预设规则或者人工介入进行判断,从而得到第一版本的测试结果。
应该理解的是,通过使用上述自动化测试方法,获取生产环境用户的真实操作,在不同版本间测试,从而无需测试人员专门学习开发平台相关知识从而编写增加不同场景的测试用例,即可实现测试的功能覆盖。
在规模化测试过程中,具体的,参照图8所示的自动化测试容器依赖关系图,在一些实施例中,通过Gateway网关运行lua脚本采集操作数据,调用接口ScaleTestCollectorService服务收集采集的操作数据,写入到ScaleMessageMQ消息队列。再调用接口
ScaleTestStorageService服务存储采集的操作数据至ScaleTestStorageDb回放数据库中,在测试的过程中,通过调用接口ScaleTestStorageService服务获取ScaleTestStorageDb回放数据库的样本数据,然后经过data-reply数据回放至实验组和对照组进行测试。
本发明实施例还提供一种自动化测试装置,可以实现上述自动化测试方法,参照图9所示,在本申请一些实施例中,自动化测试装置包括数据采集模块100、数据回放模块200、数据对比模块300以及数据分析模块400。具体的,数据采集模块100用于采集操作数据作为测试的样本数据;数据回放模块200用于回放样本数据至实验组生成第一执行报告和对照组生成第二执行报告;数据对比模块300用于对比第一执行报告和所述第二执行报告,生成对比报告;数据分析模块400用于对对比报告进行分析,从而得到测试结果。
本实施例的自动化测试装置的具体实施方式与上述自动化测试方法的具体实施方式基本一致,在此不再赘述。
图10示出了本申请实施例提供的电子设备1000。电子设备1000包括:处理器1001、存储器1002及存储在存储器1002上并可在处理器1001上运行的计算机程序,计算机程序运行时用于执行上述的自动化测试方法。
处理器1001和存储器1002可以通过总线或者其他方式连接。
存储器1002作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序,如本申请实施例描述的自动化测试方法。处理器1001通过运行存储在存储器1002中的非暂态软件程序以及指令,从而实现上述的自动化测试方法。
存储器1002可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储执行上述的自动化测试方法。此外,存储器1002可以包括高速随机存取存储器1002,还可以包括非暂态存储器1002,例如至少一个储存设备存储器件、闪存器件或其他非暂态固态存储器件。在一些实施方式中,存储器1002可选包括相对于处理器1001远程设置的存储器1002,这些远程存储器1002可以通过网络连接至该电子设备1000。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
实现上述的自动化测试方法所需的非暂态软件程序以及指令存储在存储器1002中,当被一个或者多个处理器1001执行时,执行上述的自动化测试方法,例如,执行图1中的方法步骤S100至步骤S500、图2中的方法步骤S110至步骤S130、图3中的方法步骤S210至步骤S240、图4中的方法步骤S310至步骤S340、图5中的方法步骤S410至步骤S440、图6中的方法步骤S431至步骤S433、图7中的方法步骤S510至步骤S530。
本申请实施例还提供了一种存储介质,存储介质为计算机可读存储介质,该存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述自动化测试方法。存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本申请实施例提供的自动化测试方法、装置、电子设备及存储介质,通过在预设时间内运行网关程序,启用线上采集相关用户的操作数据,将采集到的操作数据通过网关程序调用接口存储作为测试新版本的样本数据,然后回放样本数据到不同版本的运行环境进行测试,其中实验组为第一版本的运行环境,对照组为第二版本的运行环境,对应生成第一执行报告和第二执行报告,通过对比第一执行报告和第二执行报告生成对比报告,得到第一版本的测试结果。因此不需要测试人员学习开发平台相关知识,也无需编写或增加测试用例,仅仅通过生产环境用户的真实操作,在不同版本间测试,对比不同的执行结果,分析对比报告即可实现准确率高的全面测试。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、储存设备存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包括计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
还应了解,本申请实施例提供的各种实施方式可以任意进行组合,以实现不同的技术效果。以上是对本申请的较佳实施进行了具体说明,但本申请并不局限于上述实施方式,熟悉本领域的技术人员在不违背本申请精神的共享条件下还可作出种种等同的变形或替换。
Claims (11)
1.一种自动化测试方法,其特征在于,包括:
运行网关程序采集预设时间内的操作数据,所述网关程序调用接口存储所述操作数据,并将所述操作数据作为测试的样本数据;
在实验组回放所述样本数据生成第一执行报告,所述实验组为第一版本的运行环境;
在对照组回放所述样本数据生成第二执行报告,所述对照组为第二版本的运行环境;
对比所述第一执行报告和所述第二执行报告,生成对比报告;
根据所述对比报告得到所述第一版本的测试结果。
2.根据权利要求1所述的自动化测试方法,其特征在于,所述网关程序为预先编写的lua脚本;所述运行网关程序采集预设时间内的操作数据,所述网关程序调用接口存储所述操作数据,并将所述操作数据作为测试的样本数据,还包括:
利用所述lua脚本生成采集至少一个用户的所述操作数据的子请求,所述子请求用于调用Nginx服务器采集所述操作数据;所述操作数据包括以下至少一种:请求数据、输出数据、数据库数据;
利用所述接口将所述操作数据存储至消息队列;
根据所述操作数据得到所述样本数据;所述样本数据包括:用户操作记录和用户操作对象记录。
3.根据权利要求2所述的自动化测试方法,其特征在于,所述根据所述操作数据得到所述样本数据,包括:将所述操作数据按照预处理规则进行过滤清洗,得到所述样本数据。
4.根据权利要求2所述的自动化测试方法,其特征在于,所述在实验组回放所述样本数据生成第一执行报告,还包括:
从所述消息队列调取所述样本数据至回放数据库;
在预设时间点复制所述回放数据库为第一数据库至所述实验组;
根据所述用户操作记录和用户操作对象记录生成请求,并根据所述请求生成第一执行结果;所述第一执行结果包括以下至少一种:第一状态码、第一返回值、第一数据库持久化数据;
对所述第一执行结果生成第一执行报告。
5.根据权利要求4所述的自动化测试方法,其特征在于,所述在对照组回放所述样本数据生成第二执行报告,还包括:
从所述消息队列调取所述样本数据至回放数据库;
在预设时间点复制所述回放数据库为第二数据库至所述对照组;
根据所述用户操作记录和用户操作对象记录生成请求,并根据所述请求生成第二执行结果;所述第二执行结果包括以下至少一种:第二状态码、第二返回值、第二数据库持久化数据;
对所述第二执行结果生成第二执行报告。
6.根据权利要求5所述的自动化测试方法,其特征在于,所述对比所述第一执行报告和所述第二执行报告,生成对比报告,还包括:
获取预设数据对比规则形成的规则库;
基于所述规则库,对所述第一执行报告和所述第二执行报告进行字段对比,得到第一对比结果;
读取所述第一数据库的第一日志文件和所述第二数据库的第二日志文件,进行对比得到第二对比结果;
根据所述第一对比结果和所述第二对比结果生成所述对比报告。
7.根据权利要求6所述的自动化测试方法,其特征在于,读取所述第一数据库的第一日志文件和所述第二数据库的第二日志文件,进行对比得到第二对比结果,还包括:
统计所述第一数据库和所述第二数据库的数据表的数量、行数、大小中的一种或多种,进行逐行对比;
对比所述第一数据库的第一元数据信息库和所述第二数据库的第二元数据信息库;
获取预设数据库行列对比规则,对比所述第一数据库和所述第二数据库的行数据和列数据,得到第二对比结果。
8.根据权利要求1所述自动化测试方法,其特征在于,所述根据所述对比报告得到所述第一版本的测试结果,还包括:
获取所述第一版本和所述第二版本的修订记录;
根据所述修订记录确定排除范围;
根据所述排除范围对所述对比报告进行异常判断,得到所述第一版本的测试结果。
9.一种自动化测试装置,其特征在于,包括:
数据采集模块,用于采集操作数据作为测试的样本数据;
数据回放模块,用于回放所述样本数据至实验组生成第一执行报告和对照组生成第二执行报告;
数据对比模块,用于对比所述第一执行报告和所述第二执行报告,生成对比报告;
数据分析模块,用于对所述对比报告进行分析,得到测试结果。
10.一种电子设备,其特征在于,包括存储器、处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至8中任意一项所述的自动化测试方法。
11.一种计算机可读存储介质,其特征在于,所述存储介质存储有程序,所述程序被处理器执行实现如权利要求1至8中任意一项所述的自动化测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211547124.2A CN116010244A (zh) | 2022-12-05 | 2022-12-05 | 自动化测试方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211547124.2A CN116010244A (zh) | 2022-12-05 | 2022-12-05 | 自动化测试方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116010244A true CN116010244A (zh) | 2023-04-25 |
Family
ID=86028838
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211547124.2A Pending CN116010244A (zh) | 2022-12-05 | 2022-12-05 | 自动化测试方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116010244A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117591418A (zh) * | 2023-11-29 | 2024-02-23 | 中国东方航空股份有限公司 | 用于软件发布的数据测试方法、装置和存储介质 |
-
2022
- 2022-12-05 CN CN202211547124.2A patent/CN116010244A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117591418A (zh) * | 2023-11-29 | 2024-02-23 | 中国东方航空股份有限公司 | 用于软件发布的数据测试方法、装置和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9405662B2 (en) | Process for displaying test coverage data during code reviews | |
CN112100052B (zh) | 一种接口测试场景的回放方法及装置 | |
CN112650688B (zh) | 自动化回归测试方法、关联设备以及计算机程序产品 | |
CN110879781B (zh) | 程序调试方法、装置、电子设备及计算机可读存储介质 | |
US10635575B2 (en) | Testing of enterprise resource planning systems | |
CN113448854A (zh) | 一种回归测试方法和装置 | |
CN109408361A (zh) | Monkey测试复原方法、装置、电子设备及计算机可读存储介质 | |
CN114490375A (zh) | 应用程序的性能测试方法、装置、设备及存储介质 | |
CN113987393A (zh) | 一种网页操作记录器、系统、装置及方法 | |
CN116010244A (zh) | 自动化测试方法、装置、电子设备及存储介质 | |
CN110716804A (zh) | 无用资源的自动删除方法、装置、存储介质及电子设备 | |
CN112416417A (zh) | 一种代码量统计方法、装置、电子设备及存储介质 | |
CN109656825B (zh) | 美术资源处理的方法及装置、电子设备、存储介质 | |
CN112416735A (zh) | 一种应用程序检测方法、装置及终端设备、存储介质 | |
CN112905449B (zh) | 目标测试方法、装置、设备和存储介质 | |
CN112346994B (zh) | 一种测试信息关联方法、装置、计算机设备及存储介质 | |
CN113157528B (zh) | 一种基于大数据服务云的作业变动监控方法及装置 | |
CN114338846B (zh) | 一种报文测试的方法及装置 | |
CN110221952B (zh) | 业务数据的处理方法及装置、业务数据处理系统 | |
CN114416420A (zh) | 设备问题反馈方法和系统 | |
US20160275002A1 (en) | Image capture in application lifecycle management for documentation and support | |
US20160041900A1 (en) | Testing integrated business systems | |
CN112363944A (zh) | 一种用于多环境接口返回值对比的方法及设备 | |
CN116340187B (zh) | 规则引擎迁移测试方法、装置、电子设备及存储介质 | |
CN111324846B (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 |