CN115576817A - 一种自动化测试系统、方法、电子设备及存储介质 - Google Patents
一种自动化测试系统、方法、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115576817A CN115576817A CN202211259858.0A CN202211259858A CN115576817A CN 115576817 A CN115576817 A CN 115576817A CN 202211259858 A CN202211259858 A CN 202211259858A CN 115576817 A CN115576817 A CN 115576817A
- Authority
- CN
- China
- Prior art keywords
- test
- interface
- layer
- automatic test
- case 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
-
- 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/3676—Test management for coverage analysis
-
- 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/3684—Test management for test design, e.g. generating new test cases
-
- 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/3672—Test management
- G06F11/3692—Test management for test results analysis
Abstract
本发明公开了一种自动化测试系统、方法、电子设备及存储介质。该系统包括:配置层,用于存储环境信息以及与代码关联的配置信息;数据库处理层,用于根据环境信息连接目标数据库,对目标数据库进行数据库操作;自动化测试层,用于根据测试用例和配置信息实现界面自动化测试和接口自动化测试,得到用例执行结果;执行层,用于确定测试用例以及用例执行顺序,根据用例执行顺序调用自动化测试层执行测试用例,获取用例执行结果;日志层,用于根据用例执行结果生成用例执行记录,通过日志存储用例执行记录。本发明实现业务全流程的自动化测试,改善相关技术中自动化测试覆盖率不高的情况,提高了系统自动化测试覆盖率,达到了提升测试效率的目标。
Description
技术领域
本发明涉及测试技术领域,尤其涉及一种自动化测试系统、方法、电子设备及存储介质。
背景技术
为了应对日益丰富的业务需求,提供高质量的软件,测试人员在测试提质增效的方向不断发掘,自动化测试在提升测试效率方面起到显著的效果。
目前项目自动化测试的方式通常分三种,一种是移动端系统,通过移动端录制工具来实现移动端功能回放达到自动化测试;一种是web页面,和移动端类似,可以通过录制工具来实现界面自动化测试;还有一种是接口自动化测试,可以利用已有工具直接发送报文实现自动化测试。然而,对界面和接口相结合的系统,按照以上自动化方式只能实现部分模块自动化,具有自动化测试覆盖率不高的缺陷。
发明内容
本发明实施例提供了一种自动化测试系统、方法、电子设备及存储介质,可以提高自动化测试覆盖率,提升测试效率。
根据本发明的一方面,提供了一种自动化测试系统,包括:
配置层,用于存储环境信息以及与代码关联的配置信息;
数据库处理层,用于根据所述环境信息连接目标数据库,对所述目标数据库进行数据库操作;
自动化测试层,用于根据测试用例和所述配置信息实现界面自动化测试和接口自动化测试,得到用例执行结果;
执行层,用于确定所述测试用例以及用例执行顺序,根据所述用例执行顺序调用所述自动化测试层执行所述测试用例,获取所述用例执行结果;
日志层,用于根据所述用例执行结果生成用例执行记录,通过日志存储所述用例执行记录。
根据本发明的另一方面,提供了一种自动化测试方法,包括:
配置层存储环境信息以及与代码关联的配置信息;
数据库处理层根据所述环境信息连接目标数据库,对所述目标数据库进行数据库操作;
自动化测试层根据测试用例和所述配置信息实现界面自动化测试和接口自动化测试,得到用例执行结果;
执行层确定所述测试用例以及用例执行顺序,根据所述用例执行顺序调用所述自动化测试层执行所述测试用例,获取所述用例执行结果;
日志层根据所述用例执行结果生成用例执行记录,通过日志存储所述用例执行记录。
根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的自动化测试方法。
根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的自动化测试方法。
本发明实施例的技术方案,通过配置层、数据库处理层、自动化测试层、执行层和日志层构建一种自动化测试系统,实现根据业务流程确定测试用例以及用例执行顺序,并根据测试用例和配置信息按照用例执行顺序自动执行测试用例,实现界面自动化测试和接口自动化测试,通过融合界面自动化测试和接口自动化测试,从而实现业务全流程的自动化测试,改善目前自动化测试方式的自动化测试覆盖率不高的情况,提高了系统自动化测试覆盖率,节约了人工测试时间,达到提升测试效率的目标。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种自动化测试系统的架构图;
图2为本发明实施例提供的另一种自动化测试系统的架构图;
图3为本发明实施例提供了一种自动化测试方法的流程图;
图4为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,目前市面上有各种自动化测试工具和开源框架,界面自动化测试录制工具(如selenium,qtp,airtest等常用的自动化测试工具)容易上手,通常熟悉工具的操作,就可以实现页面的自动化录制。另外,常用的接口测试工具(如postman,soapui,jmeter等)主要是模拟接口发送报文,只要熟悉接口的测试以及学习工具的使用方法,就能利用现有的工具完成接口的自动化测试。
然而,界面自动化录制虽然容易学习,但是界面自动化测试录制工具迭代更新很快,录制的脚本维护成本过大,因此使用的效果有限。接口测试工具只适用于接口测试,无法满足业务流程全自动化测试。上述工具为针对各个业务环节进行单独测试,无法将业务流程中的各环节串联起来执行自动化测试。
为了解决上述问题,本发明实施例提供一种实现业务全流程的自动化测试的测试系统。
图1为本发明实施例提供的一种自动化测试系统的架构图,本实施例可适用于业务全流程的自动化测试情况。如图1所示,该系统包括:配置层10、数据库处理层20、自动化测试层30、执行层40以及日志层50。
配置层10,用于存储环境信息以及与代码关联的配置信息;
数据库处理层20,用于根据所述环境信息连接目标数据库,对所述目标数据库进行数据库操作;
自动化测试层30,用于根据测试用例和所述配置信息实现界面自动化测试和接口自动化测试,得到用例执行结果;
执行层40,用于确定所述测试用例以及用例执行顺序,根据所述用例执行顺序调用所述自动化测试层执行所述测试用例,获取所述用例执行结果;
日志层50,用于根据所述用例执行结果生成用例执行记录,通过日志存储所述用例执行记录。
需要说明的是,基于日志层中的用例执行记录可以实现各类统计报表,统计范围包括新增用例信息、新增交易信息和用例执行次数等。
需要说明的是,上述自动化测试系统基于Robot Framework框架搭建。具体地,本发明基于Robot Framework框架中丰富的测试库,根据业务流程串联测试用例,实现界面自动化测试和接口自动化测试相结合,从而,实现业务全流程的自动化测试。其中,自动化测试指软件测试的自动化,即在预设条件下把以人为驱动的运行系统的测试行为转化为机器执行的过程。
其中,Robot Framework是用于验收测试和验收测试驱动开发(ATDD)的自动化测试框架,基于Python编写,也可以在Jython上运行,提供跨平台支持。通过使用关键字驱动测试(KDT)方法简化了自动化测试过程,方便测试人员创建易读的测试。且该框架的测试库丰富,扩展性高。Python是一种高级的、面向对象的,开放源代码的计算机编程语言。Python是开源并且免费的,类库多,功能强大,拓展性强,覆盖了网络编程,数据库访问,文件操作等绝大部分应用场景。Java是一种计算机编程语言,面向对象编程,具有功能强大和简单易用的特点。Jython即为Python语言使用java来完全实现。
随着企业的发展,业务的扩张,企业的软件越来越多样化,为了应对日益丰富的业务需求,提供高质量的软件,测试人员在测试提质增效的方向不断发掘,自动化测试在提升测试效率方面起到显著的效果,自动化测试的技术日趋成熟,并大量应用在项目的回归测试当中,如能在软件测试过程中提升自动化测试覆盖率,不仅能更好的保障系统的质量,也能为企业提升人效,节约成本。
本发明提供了一种基于Robot Framework全流程自动化测试系统,基于RobotFramework框架提供的丰富的测试库,根据业务流程编写自动化测试模块,实现将web界面测试以及接口测试结合起来,从而实现业务全流程的自动化测试,提高了自动化测试的覆盖率,提升了测试效率。
对于自动化测试系统中的配置层,自定义环境信息并进行存储,以针对不同环境执行用例。例如,环境信息包括生产环境信息测试环境信息以及开发环境信息等。上述环境信息主要包括数据库信息、软件配置信息以及用户数据等。
对于自动化测试系统中的配置层,还存储与代码关联的配置信息。其中,配置信息为代码执行过程中所需的信息。例如,与代码关联的配置信息包括公钥信息、私钥信息、关键字信息以及依赖配置信息等。
对于自动化测试系统中的数据库处理层,根据环境信息中的数据库信息连接目标数据库。在生成环境、测试环境或开发环境等不同环境下,需要连接的数据库也有所区别。例如,通过Python连接数据库底层驱动,实现目标数据库的查询、插入、修改、删除等功能。
对于自动化测试系统中的自动化测试层,利用selenium插件编写程序代码调用浏览器驱动,采用XPath方法识别html中控件元素,实现页面自动化测试录制。其中,XPath为一种用来确定XML文档中某部分位置的语言。XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。自动化测试层还采用Request技术根据界面不能实现的操作实现接口自动化测试。其中,接口为程序中负责在不同模块之间传输数据,或接收数据并做处理的类或函数。
具体地,依照用例执行顺序,自动化测试层顺序获取测试用例,并根据测试用例和配置信息进行界面自动化测试或接口自动化测试。例如,在接口自动化测试过程中,对于需要加密的数据,通过配置信息中的公钥信息或私钥信息,对需要加密的数据进行加密。或者,在接口自动化测试或界面自动化测试过程中,通过关键字信息中的已实现的关键字实现文件操作、数据库操作、接口操作或访问已存在的java程序等功能。或者,在接口自动化测试或界面自动化测试过程中,通过配置信息中的依赖配置信息确定所依赖的依赖包。
对于执行层,包含测试用例目录,用例粒度尽量小,以方便功能之间相互组合,达到高复用的目的。例如,对于在自主取款机上取款的业务,登录账户是一个用例,查询余额是一个用例,取款是一个用例,账户额度调整是一个用例,打印回执单是一个用例,将多个用例组合起来构成取款业务流程。此外,对于在自主存取款机上存款的业务,登录账户是一个用例,查询余额是一个用例,存款是一个用例,账户额度调整是一个用例,打印回执单是一个用例,将多个用例组合起来构成存款业务流程。对于上述两个业务流程中,登录账户用例、查询余额用例、账户额度调整用例和打印回执单用例均是可以复用的测试用例。
执行层根据业务流程确定测试所需要的测试用例,以及各用例的执行顺序,调用自动化测试层,以指示自动化测试层按照用例执行顺序查询用例模块,获取测试用例,并顺序执行测试用例。自动化测试层根据测试用例和配置信息实现界面自动化测试和接口自动化测试,得到用例执行结果,发送用例执行结果到执行层,执行层解析执行结果,得到每次测试用例的执行情况,并记录,以方便查询和概览。对于执行失败的测试用例,根据测试用例标识通知自动化测试层重新执行对应测试用例,实现界面自动化测试或接口自动化测试。可选地,将测试用例的执行情况保存到数据库,以向更高平台提供服务报表。
对于日志层,根据用例执行结果生成用例执行记录,通过日志形式存储用例执行记录。其中,用例执行记录包括每次测试用例的执行情况等。
本发明实施例通过配置层、数据库处理层、自动化测试层、执行层和日志层构建一种自动化测试系统,实现根据业务流程确定测试用例以及用例执行顺序,并根据测试用例和配置信息按照用例执行顺序自动执行测试用例,实现界面自动化测试和接口自动化测试,通过融合界面自动化测试和接口自动化测试,从而实现业务全流程的自动化测试,改善目前自动化测试方式的自动化测试覆盖率不高的情况,提高了系统自动化测试覆盖率,节约了人工测试时间,达到提升测试效率的目标。
图2为本发明实施例提供的另一种自动化测试系统的架构图,本实施例在上述实施例的基础上,对自动化测试系统包括的各层进行进一步细化。如图2所示:
所述配置层10包括:
环境配置模块11,用于存储环境信息、环境商圈、平台信息和产品信息。需要说明的是,环境配置模块实现自定义环境信息,以针对不同环境执行用例。缓存每个环境商圈,平台,产品信息,以方便查阅。
公私钥模块12,用于保存对接口报文进行加密和签名的公钥和私钥。由于提供给外部平台的互联网接口,需要对接口报文进行加密和签名,因此通过公私钥模块12存储公钥和/或私钥。
关键字模块13,用于保存实现特定功能的关键字。其中,特定功能包括文件操作功能、数据库操作功能、接口操作功能、访问已存在java程序功能等。本发明实施例中的关键字是指关键字驱动测试中已实现的关键字。关键字驱动测试也称为表格驱动测试或行动驱动测试。它将创建测试程序的步骤分为规划及实现两个阶段,关键字驱动就是通过一些关键词组装成一些测试语句,将多个这样语句组合在一起就形成了一个脚本,这样就不需要测试人员去学习某一种开发语言,只需要使用提供这个自动化框架就可以完成自动化的过程。
依赖模块14,用于保存依赖包。大部分依赖包都是一些库文件,有动态库也有静态库,一个程序的依赖包如果没有安装,只安装了这个程序本身是不能使用的。本发明实施例中,通过依赖模块14存储与自动化测试系统具有依赖关系的依赖包。
所述数据库处理层20具体用于:
在所述环境信息为生产环境的情况下,根据所述生产环境下的数据库配置信息连接目标数据库,根据所述关键字模块中与数据库操作关联的关键字对所述目标数据库进行数据库操作;
在所述环境信息为测试环境的情况下,根据所述测试环境下的数据库配置信息连接目标数据库,根据所述关键字模块中与数据库操作关联的关键字对所述目标数据库进行数据库操作;
在所述环境信息为开发环境的情况下,根据所述开发环境下的数据库配置信息连接目标数据库,根据所述关键字模块中与数据库操作关联的关键字对所述目标数据库进行数据库操作。
需要说明的是,上述数据库操作包括数据库查询、插入、修改、删除等相关功能中的一种或多种。
所述自动化测试层30包括:
界面处理模块31,用于调用浏览器驱动代码模拟界面操作,识别已打开页面中的控件元素,基于所述控件元素模拟测试操作。例如,利用selenium插件编写程序代码调用浏览器驱动,采用XPath方法识别html中控件元素,实现页面自动化测试录制。
接口处理模块32,用于根据界面操作和测试操作确定目标接口,通过所述目标接口传输或处理界面操作数据和测试操作数据。例如,采用Request技术从界面操作中提取特定步骤实现接口。其中,特定步骤通常为界面操作无法实现的功能。
所述接口处理模块32还用于:
通过代码实现特定流程节点的人工审核接口和异常情况下的重试接口。例如,接口处理模块32同时还实现管理端的特定流程节点的人工审核接口和异常情况下的重试接口,从而,保证业务流程能够通畅执行。
所述执行层40包括:
用例模块41,用于保存测试用例。
执行模块42,用于根据测试需求确定目标测试用例和用例执行顺序,按照所述用例执行顺序分别调用所述自动化测试层执行所述目标测试用例,获取所述目标测试用例的用例执行结果。具体地,执行模块42确定测试用例的集成或组合顺序,根据测试用例的组合顺序通过自动化测试层30查询用例模块41,以使自动化测试层30获取测试所需的测试用例,顺序执行测试用例,得到用例执行结果。执行模块42获取每次用例执行的执行记录,保存每次用例执行的执行记录,并且根据测试用例标识(例如用例ID)对执行记录为失败的测试用例执行重试。执行模块42解析每次执行用例的用例执行结果,并将解析结果与测试用例标识进行关联,以便于查询和概览。
监听模块43,用于在用例执行过程中的特定事件触发的情况下,通过所述特定事件对应的监听接口执行特定操作。例如,监听模块43实现在Robot Framework执行过程中切入执行指定的功能,切入点分为多个维度,常用的如:suite级别(start_suite、end_suite)、test级别(start_test、end_test)、以及整个用例执行结束(close)。本发明实施例主要使用监听器完成初始化java虚拟机和关闭java虚拟机,用例执行之后收集业务相关信息,用例执行失败之后收集错误信息等功能。
所述监听模块43具体用于:
在初始化虚拟机事件触发的情况下,通过第一监听接口初始化设定虚拟机标识对应的虚拟机,其中,所述第一监听接口的接口方法中包含虚拟机标识;
在关闭虚拟机事件触发的情况下,通过第二监听接口关闭设定虚拟机标识对应的虚拟机,其中,所述第二监听接口的接口方法中包含虚拟机标识;
在用例执行成功事件触发的情况下,通过第三监听接口获取设定参数对应的设定信息,其中,所述第三监听接口的接口方法中包含设定参数;
在用例执行失败事件触发的情况下,通过第四监听接口获取错误信息,其中,所述第四监听接口用于获取所述执行模块在用例执行失败的情况下生成的错误信息。
所述执行模块42还用于:
获取标签配置信息,根据所述标签配置信息确定测试用例与业务类型的关联关系,根据所述关联关系向所述业务类型添加标签属性。
具体地,Robot Framework本身提供标签功能,用户可以根据该功能配置用例的标签,根据用户配置信息实现给用例打上交易标签,让用例和交易挂钩。运行时可选择特定标签执行用例,运行完成时可根据标签查看用例执行情况,通过检查案例绑定和执行案例,查看交易覆盖率和交易执行通过率。
本发明实施例提供一种基于Robot Framework全流程自动化测试系统,实现根据业务流程串联测试用例,从而,实现界面自动化测试与接口自动化测试的贯通使用,无需人工操作以串联测试系统的业务流程,提高了业务全流程的自动化测试的覆盖率,从而节约了人工测试时间,提升了测试效率。
假设业务流程是在企业通过接口向系统推送客户以及推送单据等信息,客户在管理端审核补充客户资料信息,完成贷前所有步骤,然后第三方平台调用接口发起融资申请,最后通过一系列校验,审批通过之后完成放款。那么,实现该系统的业务流程不能单纯录制界面自动化,或者通过接口调用就实现流程自动化,需要将页面和接口结合的方式才能实现流程的自动化。开发语言使用的是java,调用接口需要依赖开发提供jar包,针对不同的平台,不同的环境,jar包不一样,各个jar包之间不能兼容,不易使用。Java工程没有针对客户填充请求,每换一个客户需要手动替换客户相关信息,针对新手来说更换信息比较麻烦。Java工程直接使用的是jar包中的对象来发送请求,字段是否为空,字段类型被限制死了也不能针对接口做异常测试。Java工程只是单独的接口,没有把业务流程串联起来,综上所述,目前的已有工具已经不能满足日常测试需求了。Robot Framework是一个比较优秀成熟的自动化测试框架,它丰富的测试库足以实现业务流程的各类场景。
其中,界面自动化即使用Selenium技术,模拟客户登录、申请融资、签订合同、还款等一系列操作。
接口自动化即使用Request技术,从界面操作中提取特定步骤实现接口,完成客户融资等一列请求。同时实现了管理端贷款流程节点的人工审核接口和异常情况下的重试接口,使贷款流程能够通畅执行。
图3为本发明实施例提供了一种自动化测试方法的流程图,本实施例可适用于业务全流程的自动化测试情况,该方法可以由本发明任一实施例提供的自动化测试系统来执行,该自动化测试系统可以采用硬件和/或软件的形式实现,该自动化测试系统可配置于电子设备中。如图3所示,该方法包括:
S310、配置层存储环境信息以及与代码关联的配置信息。
其中,环境信息包括生产环境信息测试环境信息以及开发环境信息等。上述环境信息主要包括数据库信息、软件配置信息以及用户数据等。配置信息为代码执行过程中所需的信息。例如,与代码关联的配置信息包括公钥信息、私钥信息、关键字信息以及依赖配置信息等。
具体地,配置层自定义环境信息并进行存储,以针对不同环境执行用例。配置层还存储与代码关联的配置信息,以通过自动化测试层根据配置信息和测试用例实现界面自动化测试和接口自动化测试。
S320、数据库处理层根据所述环境信息连接目标数据库,对所述目标数据库进行数据库操作。
示例性地,在所述环境信息为生产环境的情况下,根据所述生产环境下的数据库配置信息连接目标数据库,根据所述关键字模块中与数据库操作关联的关键字对所述目标数据库进行数据库操作。
在所述环境信息为测试环境的情况下,根据所述测试环境下的数据库配置信息连接目标数据库,根据所述关键字模块中与数据库操作关联的关键字对所述目标数据库进行数据库操作。
在所述环境信息为开发环境的情况下,根据所述开发环境下的数据库配置信息连接目标数据库,根据所述关键字模块中与数据库操作关联的关键字对所述目标数据库进行数据库操作。
S330、自动化测试层根据测试用例和所述配置信息实现界面自动化测试和接口自动化测试,得到用例执行结果。
示例性地,依照用例执行顺序,自动化测试层顺序获取测试用例,并根据测试用例和配置信息进行界面自动化测试或接口自动化测试。对于界面自动化测试用例,利用selenium插件编写程序代码调用浏览器驱动,采用XPath方法识别html中控件元素,实现页面自动化测试录制。对于接口自动化测试用例,采用Request技术根据界面不能实现的操作实现接口自动化测试。
S340、执行层确定所述测试用例以及用例执行顺序,根据所述用例执行顺序调用所述自动化测试层执行所述测试用例,获取所述用例执行结果。
示例性地,执行层根据业务流程确定测试所需要的测试用例,以及各用例的执行顺序,调用自动化测试层,以指示自动化测试层按照用例执行顺序查询用例模块,获取测试用例,并顺序执行测试用例。自动化测试层根据测试用例和配置信息实现界面自动化测试和接口自动化测试,得到用例执行结果,发送用例执行结果到执行层,执行层解析执行结果,得到每次测试用例的执行情况,并记录,以方便查询和概览。对于执行失败的测试用例,根据测试用例标识通知自动化测试层重新执行对应测试用例,实现界面自动化测试或接口自动化测试。可选地,将测试用例的执行情况保存到数据库,以向更高平台提供服务报表。
S350、日志层根据所述用例执行结果生成用例执行记录,通过日志存储所述用例执行记录。
示例性地,日志层根据每个测试用例的用例执行结果生成用例执行记录,通过日志形式保存用例执行记录和测试用例标识,基于该日志统计新增用例信息,新增交易信息以及用例执行次数等。
本发明实施例通过配置层、数据库处理层、自动化测试层、执行层和日志层构建一种自动化测试系统,实现根据业务流程确定测试用例以及用例执行顺序,并根据测试用例和配置信息按照用例执行顺序自动执行测试用例,实现界面自动化测试和接口自动化测试,通过融合界面自动化测试和接口自动化测试,从而实现业务全流程的自动化测试,改善目前自动化测试方式的自动化测试覆盖率不高的情况,提高了系统自动化测试覆盖率,节约了人工测试时间,达到提升测试效率的目标。
图4为本发明实施例提供的一种电子设备的结构示意图。图4示出了可以用来实施本发明的实施例的电子设备10的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图4所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(ROM)12、随机访问存储器(RAM)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(ROM)12中的计算机程序或者从存储单元18加载到随机访问存储器(RAM)13中的计算机程序,来执行各种适当的动作和处理。在RAM 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、ROM 12以及RAM 13通过总线14彼此相连。输入/输出(I/O)接口15也连接至总线14。
电子设备10中的多个部件连接至I/O接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如自动化测试方法。
在一些实施例中,自动化测试方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由ROM 12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到RAM13并由处理器11执行时,可以执行上文描述的自动化测试方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行自动化测试方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (10)
1.一种自动化测试系统,其特征在于,包括:
配置层,用于存储环境信息以及与代码关联的配置信息;
数据库处理层,用于根据所述环境信息连接目标数据库,对所述目标数据库进行数据库操作;
自动化测试层,用于根据测试用例和所述配置信息实现界面自动化测试和接口自动化测试,得到用例执行结果;
执行层,用于确定所述测试用例以及用例执行顺序,根据所述用例执行顺序调用所述自动化测试层执行所述测试用例,获取所述用例执行结果;
日志层,用于根据所述用例执行结果生成用例执行记录,通过日志存储所述用例执行记录。
2.根据权利要求1所述的系统,其特征在于,所述配置层包括:
环境配置模块,用于存储环境信息、环境商圈、平台信息和产品信息;
公私钥模块,用于保存对接口报文进行加密和签名的公钥和私钥;
关键字模块,用于保存实现特定功能的关键字;
依赖模块,用于保存依赖包。
3.根据权利要求1所述的系统,其特征在于,所述自动化测试层包括:
界面处理模块,用于调用浏览器驱动代码模拟界面操作,识别已打开页面中的控件元素,基于所述控件元素模拟测试操作;
接口处理模块,用于根据界面操作和测试操作确定目标接口,通过所述目标接口传输或处理界面操作数据和测试操作数据。
4.根据权利要求3所述的系统,其特征在于,所述接口处理模块还用于:
通过代码实现特定流程节点的人工审核接口和异常情况下的重试接口。
5.根据权利要求1所述的系统,其特征在于,所述执行层包括:
用例模块,用于保存测试用例;
执行模块,用于根据测试需求确定目标测试用例和用例执行顺序,按照所述用例执行顺序分别调用所述自动化测试层执行所述目标测试用例,获取所述目标测试用例的用例执行结果;
监听模块,用于在用例执行过程中的特定事件触发的情况下,通过所述特定事件对应的监听接口执行特定操作。
6.根据权利要求5所述的系统,其特征在于,所述监听模块具体用于:
在初始化虚拟机事件触发的情况下,通过第一监听接口初始化设定虚拟机标识对应的虚拟机,其中,所述第一监听接口的接口方法中包含虚拟机标识;
在关闭虚拟机事件触发的情况下,通过第二监听接口关闭设定虚拟机标识对应的虚拟机,其中,所述第二监听接口的接口方法中包含虚拟机标识;
在用例执行成功事件触发的情况下,通过第三监听接口获取设定参数对应的设定信息,其中,所述第三监听接口的接口方法中包含设定参数;
在用例执行失败事件触发的情况下,通过第四监听接口获取错误信息,其中,所述第四监听接口用于获取所述执行模块在用例执行失败的情况下生成的错误信息。
7.根据权利要求5所述的系统,其特征在于,所述执行模块还用于:
获取标签配置信息,根据所述标签配置信息确定测试用例与业务类型的关联关系,根据所述关联关系向所述业务类型添加标签属性。
8.一种自动化测试方法,其特征在于,包括:
配置层存储环境信息以及与代码关联的配置信息;
数据库处理层根据所述环境信息连接目标数据库,对所述目标数据库进行数据库操作;
自动化测试层根据测试用例和所述配置信息实现界面自动化测试和接口自动化测试,得到用例执行结果;
执行层确定所述测试用例以及用例执行顺序,根据所述用例执行顺序调用所述自动化测试层执行所述测试用例,获取所述用例执行结果;
日志层根据所述用例执行结果生成用例执行记录,通过日志存储所述用例执行记录。
9.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求8所述的自动化测试方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求8所述的自动化测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211259858.0A CN115576817A (zh) | 2022-10-14 | 2022-10-14 | 一种自动化测试系统、方法、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211259858.0A CN115576817A (zh) | 2022-10-14 | 2022-10-14 | 一种自动化测试系统、方法、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115576817A true CN115576817A (zh) | 2023-01-06 |
Family
ID=84585752
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211259858.0A Pending CN115576817A (zh) | 2022-10-14 | 2022-10-14 | 一种自动化测试系统、方法、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115576817A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117149820A (zh) * | 2023-09-25 | 2023-12-01 | 湖南长银五八消费金融股份有限公司 | 一种借据操作检测方法、装置、设备及存储介质 |
CN117234944A (zh) * | 2023-11-09 | 2023-12-15 | 天津华来科技股份有限公司 | 一种基于pytest的接口自动化测试方法 |
-
2022
- 2022-10-14 CN CN202211259858.0A patent/CN115576817A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117149820A (zh) * | 2023-09-25 | 2023-12-01 | 湖南长银五八消费金融股份有限公司 | 一种借据操作检测方法、装置、设备及存储介质 |
CN117234944A (zh) * | 2023-11-09 | 2023-12-15 | 天津华来科技股份有限公司 | 一种基于pytest的接口自动化测试方法 |
CN117234944B (zh) * | 2023-11-09 | 2024-01-30 | 天津华来科技股份有限公司 | 一种基于pytest的接口自动化测试方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110309071B (zh) | 测试代码的生成方法及模块、测试方法及系统 | |
US7673292B2 (en) | Auto conversion of tests between different functional testing tools | |
WO2021088724A1 (zh) | 一种测试方法及装置 | |
US8060863B2 (en) | Conformance control module | |
CN109284463B (zh) | 一种基于动态模板的数据收集方法及系统 | |
CN115576817A (zh) | 一种自动化测试系统、方法、电子设备及存储介质 | |
US8234633B2 (en) | Incident simulation support environment and business objects associated with the incident | |
CN102571403B (zh) | 通用数据质量管控适配器的实现方法和装置 | |
JP2023500228A (ja) | Mlベースのイベント・ハンドリング | |
JP5568177B2 (ja) | 複合アプリケーションの自動分析 | |
CN108845940A (zh) | 一种企业级信息系统自动化功能测试方法和系统 | |
CN111596899A (zh) | 一种基于Java开发的数据库迁移方法、系统、设备及存储介质 | |
CN110928796A (zh) | 一种自动化测试平台 | |
CN112506771A (zh) | 一种报文比对方法和装置 | |
EP3818445B1 (en) | Automated control of distributed computing devices | |
CN109684207B (zh) | 操作序列封装的方法、装置、电子设备及存储介质 | |
CN111881056A (zh) | 一种自动化测试框架及测试方法 | |
CN110716804A (zh) | 无用资源的自动删除方法、装置、存储介质及电子设备 | |
CN111881025B (zh) | 一种自动化测试任务调度方法、装置及系统 | |
CN114116509A (zh) | 程序分析方法、装置、电子设备和存储介质 | |
CN110399296B (zh) | 测试客户端与服务端之间交互接口的方法、系统和介质 | |
CN112328473A (zh) | 代码自动化集成测试方法、装置及电子设备 | |
US8868424B1 (en) | Interactive voice response data collection object framework, vertical benchmarking, and bootstrapping engine | |
CN115484560B (zh) | 智能短信的处理方法、装置、电子设备及存储介质 | |
CN113704228B (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 |