CN112286806B - 自动化测试方法、装置、存储介质及电子设备 - Google Patents
自动化测试方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN112286806B CN112286806B CN202011171314.XA CN202011171314A CN112286806B CN 112286806 B CN112286806 B CN 112286806B CN 202011171314 A CN202011171314 A CN 202011171314A CN 112286806 B CN112286806 B CN 112286806B
- Authority
- CN
- China
- Prior art keywords
- executed
- test
- task
- test case
- environment
- 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
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/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
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为本发明实施例涉及的任务执行结果的界面示意图;
图9为本发明实施例的自动化测试装置的流程示意图;
图10为本发明实施例的电子设备的结构示意图。
标号说明:
1、自动化测试装置;2、电子设备;11、定义模块;12、生成模块;13、执行模块;21、处理器;22、存储器。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
请参照图1至图8,本发明实施例提供了一种自动化测试方法,包括步骤:
接收基础配置项信息、待执行测试用例和被测环境列表,生成待执行任务模板,所述基础配置项信息包括报告接收对象,所述待执行测试用例的每一个测试用例脚本上均定义有环境字段;
根据所述待执行任务模板自动生成待执行任务,将所述待执行任务添加至任务队列中;
在每一个被测环境下,执行所述环境字段与所述被测环境相对应的测试用例脚本,直至所述待执行测试用例中的所有测试用例均在对应的被测环境下执行完毕;
自动生成并发送测试结果至所述报告接收对象。
从上述描述可知,本发明的有益效果为:对于用户来说,只需要输入基础配置项信息、待执行测试用例和被测环境列表,之后根据待执行任务模板自动生成待执行任务,并将待执行任务添加至任务队列中;由于每一个测试用例脚本上均定义有环境字段,因此,在每一个被测环境下,就可以自动执行环境字段与被测环境相对应的测试用例脚本,从而无需用户去设定某个测试用例脚本在某个被测环境上执行,就能实现每一个测试用例脚本都能被分配到正确的被测环境执行,之后自动生成并发送测试结果至所述报告接收对象。由此,在自动化测试过程中大大减少手动重复性的工作,以降低自动化测试的出错率且提高自动化测试的工作效率,从而有效节省时间和管理成本。
进一步地,所述接收基础配置项信息、待执行测试用例和被测环境列表,生成待执行任务模板具体包括以下步骤:
接收任务模板创建请求,生成基础配置项界面,并接收在所述基础配置项界面输入的待执行任务、任务执行时间以及报告接收对象,得到基础配置项信息;
生成测试用例界面,并接收在所述测试用户界面所勾选的测试用例,得到待执行测试用例;
生成被测环境界面,并接收在所述被测环境界面所勾选的被测环境,得到被测环境列表;
最终得到包括所述基础配置项信息、所述待执行测试用例和所述被测环境列表的待执行任务模板。
从上述描述可知,通过向用户展示测试用例界面和被测环境界面,使得用户只需要勾选就可以选择待执行任务所需要的测试用例和被测环境,从而进一步减少手动重复性的工作,以提高自动化测试的效率。
进一步地,所述根据所述待执行任务模板自动生成待执行任务具体包括以下步骤:
在当前时间达到所述任务执行时间时,根据所述待执行任务模板的基础配置项信息生成一个初始化的待执行任务;
根据所述待执行测试用例生成所述待执行任务的测试用例列表;
根据所述被测环境列表的被测环境,判断每一个测试用例的测试用例脚本中所定义的环境字段是否在所述被测环境列表中有定义,若是,则所述测试用例的初始化状态为可用,否则为不可用。
从上述描述可知,通过预先设置任务执行时间,使得系统能自动启动任务测试,尤其在对于需要周期内重复测试的任务来说,预先设定任务执行时间,限定一个周期内的某个时间点来自动启动测试任务,从而无需用户进行任务开启,进一步减少手动重复性的工作,提高自动化测试的效率;同时,通过测试用例脚本上所定义的环境字段,自动验证每一个测试用例是否可以被执行,以自动判断该测试用例是否是可用的,从而在判断为不可用时直接标记,以省略后续对其所浪费的时间,提高自动化测试效率。
进一步地,所述在每一个被测环境下,执行所述环境字段与所述被测环境相对应的测试用例脚本,直至所述待执行测试用例中的所有测试用例均在对应的被测环境下执行完毕具体包括以下步骤:
在当前被测环境的当前代理程序启动后,由当前代理程序创建或更新当前被测环境的环境信息,并使用轮询的方式向调度控制服务器发送测试任务请求;
由所述当前代理程序接收调度控制服务器所返回与所述当前被测环境相对应的待执行任务;
由所述当前代理程序向测试用例数据库发送测试用例请求,接收并执行所述测试用例数据库返回的所有当前测试用例脚本,所述测试用户请求包括当前物理地址、环境字段列表和所述待执行任务,所述当前测试用例脚本为所述待执行任务内所定义的环境字段在所述当前被测环境的环境字段列表内的测试用例脚本,所返回的所有所述当前测试用例脚本均对应有一个用例标识;
在每一个所述当前测试用例脚本的执行过程中,在与所述用例标识对应的用例路径上生成测试日记和当前执行状态,由所述当前代理程序的主线程轮询每一个所述当前测试用例的测试日记和当前执行状态,并将所述测试日记上传到日记数据库,将所述当前执行状态上传到后台异步任务程序;
由所述后台异步任务程序判断是否所述待执行任务中的各个所述当前测试用例的所述当前执行状态是否均为完成,若是,则完成所述待执行任务的自动化测试。
从上述描述可知,在被测环境下获取与之相对应的测试用例,倘若并行多个被测环境,则可以并行对多个测试用例进行执行,以提高自动化测试效率。另外,在获取的当前测试用例脚本上附有用例标识,使得可以基于该用例标识对应的用例路径上生成测试日记和当前执行状态,使得测试日志集中并且方便的查询分析,从而对测试过程进行自动化监测和数据记录。
进一步地,所述自动生成并发送测试结果至所述报告接收对象具体包括以下步骤:
在所述待执行任务完成自动化测试后,统计所述待执行任务中的每一个所述当前测试用例的最终状态,当所有所述当前测试用例的最终状态均为用例测试通过时,则所述待执行任务的测试结果为任务测试通过,否则为测试失败,所述最终状态包括用例测试通过、用例测试失败以及不可用;
统计所述待执行任务中每一种所述最终状态所对应的所述当前测试用例的数量,计算用例测试通过率以及用例测试完成率,并将每一个所述测试用例上包括启动时间、完成时间、执行时长、执行结果和日志链接的执行情况进行罗列;
将所述待执行任务的测试结果、所述用例测试通过率、所述用例测试完成率以及每一个所述测试用例的执行情况按照预设模板语法渲染为邮件模板的测试报告;
将所述测试报告发送至所述报告接收对象,所述报告接收对象为报告接收者的邮箱地址。
从上述描述可知,能够对每个测试用例的结果进行汇总整合,得到待执行任务的测试结果以及测试情况,并将所整合的测试报告通过邮件方式发给预先设定的接收者,从而实现测试报告自动总结并发送,进一步缩短测试总时长,提高自动化测试效率。
进一步地,还包括生成待执行任务模板组,所述待执行任务模板组为多个所述待执行任务模板的顺序组合。
进一步地,所述基础配置项信息包括是否分布式执行信息,若是,则测试用例脚本包括多个测试用例分片脚本;
在执行所述测试用例脚本时,同时调度多个当前被测环境以分别处理多个所述测试用例分片脚本。
从上述描述可知,在进行测试用例的测试时,通过将一个测试用例基本按照不同的实现功能分成多个测试用例分片脚本,由多个对应的被测环境分别处理多个测试用例分片脚本,缩短每一个测试用例的测试时长,提高自动化测试效率。
请参照图9,本发明另一实施例提供了一种自动化测试装置1,包括:
定义模块11,用于接收基础配置项信息、待执行测试用例和被测环境列表,生成待执行任务模板,所述基础配置项信息包括报告接收对象,所述待执行测试用例的每一个测试用例脚本上均定义有环境字段;
生成模块12,用于根据所述待执行任务模板自动生成待执行任务,将所述待执行任务添加至任务队列中;
执行模块13,用于在每一个被测环境下,执行所述环境字段与所述被测环境相对应的测试用例脚本,直至所述待执行测试用例中的所有测试用例均在对应的被测环境下执行完毕;
发送模块14,用于自动生成并发送测试结果至所述报告接收对象。
其中,关于定义模块11、生成模块12、执行模块13和发送模块14所实现的具体过程和对应的效果,可以参照上述实施例的自动化测试方法中的相关描述。
本发明另一实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序存储有上述实施例的自动化测试方法。
其中,关于本实施例中的计算机程序中包含的自动化测试方法的具体实现过程和对应效果,可以参照上述实施例的自动化测试方法中的相关描述。
请参照图1至图8,本发明另一实施例提供了一种电子设备2,包括存储器22、处理器21及存储在存储器22上并可在处理器21上运行的计算机程序,所述处理器21执行所述计算机程序时实现上述实施例的自动化测试方法。
其中,关于本实施例中处理器21所实现的自动化测试方法的具体实现过程和对应效果,可以参照上述的实施例的自动化测试方法中的相关描述。
本申请的自动化测试方法和对应的装置、存储介质及电子设备2主要应用于对任何存储器需要自动化测试时的应用场景,以下结合具体的应用场景进行说明:
根据以上,并结合图1至图8,本发明的实施例一为:
在本实施例中,如图2所示,主要的服务端功能和客户端功能基于Python实现;使用flask框架开发API服务器;使用SocketServer开发调度控制服务器Engine,它负责从任务队列里获取任务;待代理程序Agent来轮询时,告诉Agent是否有其待执行的任务;使用MongoDB存储业务数据;Redis进行业务数据缓存和任务队列存储;使用celery作为后台异步任务程序,以处理后台异步任务;使用ElasticSearch(ES,日记数据库)集中收集测试日志,即本实施例使用Python和开源工具来进行自动化测试,开发成本低,开发周期短,维护简单。
其中,API服务器提供的API接口和用户界面如下表1所示,celery如下表2所示:
表1:API接口和用户界面
表2:celery(异步任务队列)
由此,本实施例提供了一种自动化测试方法,其包括步骤:
S1、接收基础配置项信息、待执行测试用例和被测环境列表,生成待执行任务模板,所述基础配置项信息包括报告接收对象,所述待执行测试用例的每一个测试用例脚本上均定义有环境字段;
在本实施例中,步骤S1具体包括以下步骤:
S11、接收任务模板创建请求,生成基础配置项界面,并接收在所述基础配置项界面输入的待执行任务、任务执行时间以及报告接收对象,得到基础配置项信息;
在本实施例中,还包括生成待执行任务模板组,所述待执行任务模板组为多个所述待执行任务模板的顺序组合。
其中,如图2所示,提供的基础配置项界面中的Task即对应实施例中的任务模板,其主要对待执行任务的属性进行定义,以下针对几个与本实施例密切相关的属性进行如下说明:
(1)、Name,即待执行任务的名称。
(2)、Distributed,即是否分布式执行。如图3所示的ture为每个当前被测环境分别处理对应的测试用例分片脚本;若为false,则是每个环境都会执行满足条件的所有测试用例。
(3)、Shard,即分片大小,意为每次下发给被测环境的测试用例最大数量;
(4)、Category,即待执行任务模板的时间类型,其中,daily为每日,weekly为每周,one-time为一次性的,如图3所示的customsize为自定义。
(4)、Time,即当Category为daily,weekly或one-time时,需要指定待执行任务模板的开始时间,时间达到后,待执行任务模板自动开始执行,即任务执行时间。
(5)、receivers,即待执行任务模板每次执行完成后,所需要发送的报告接收对象。
S12、生成测试用例界面,并接收在所述测试用户界面所勾选的测试用例,得到待执行测试用例;
如图4所示,当基础配置项界面上点击Next,即下一步,则进入测试用例界面,其中,待执行测试用例的每一个测试用例脚本上均定义有环境字段,即topo字段。
其中,每一个测试用例的完整的脚本内容如图4所示,并且需要保存到指定的gitlab工程中。为方便勾选,用户界面会请求gitlab的工程数据,生成测试用例目录树,来展示测试用例在gitlab的层次结构。
S13、生成被测环境界面,并接收在所述被测环境界面所勾选的被测环境,得到被测环境列表;
如图5所示,即展示多个被测环境供用户勾选,以定义待执行任务模板能够调度的被测环境列表。被测环境即代理程序Agent在启动时,需要在配置文件中定义能够在此被测环境上执行的脚本topo列表。
S14、最终得到包括所述基础配置项信息、所述待执行测试用例和所述被测环境列表的待执行任务模板。
S2、根据所述待执行任务模板自动生成待执行任务,将所述待执行任务添加至任务队列中;
在本实施例中,步骤S2具体包括以下步骤:
S21、在当前时间达到所述任务执行时间时,根据所述待执行任务模板的基础配置项信息生成一个初始化的待执行任务;
其中,如图6和图7所示,Task是任务模板,job为任务,即Task只是定义一个任务模板,当当前时间已经达到Task定义的任务执行时间时,Celery异步任务Task_2_job根据Task的属性生成一个初始状态为“created”的job。
S22、根据所述待执行测试用例生成所述待执行任务的测试用例列表;
在本实施例中,根据Task勾选的测试用例生成job对应的testcase(测试用例)列表。
S23、根据所述被测环境列表的被测环境,判断每一个测试用例的测试用例脚本中所定义的环境字段是否在所述被测环境列表中有定义,若是,则所述测试用例的初始化状态为可用,否则为不可用;
在本实施例中,根据Task勾选的被测环境,验证每一个testcase是否可以被执行。testcase验证规则为对应测试脚本中定义的topo字段是否在被测环境列表中的某个被测环境的脚本topo列表中有定义。如果是,测试用例的状态被初始化为Standby(等待),否则为Unavailable(不可用),其中Standby即为等待被执行,对应于本实施例其他地方描述的“可用”。
S24、将所述待执行任务添加至任务队列中。
在本实施例中,在Task_2_job完成时,将job添加到Redis(任务队列)。
S3、在每一个被测环境下,执行所述环境字段与所述被测环境相对应的测试用例脚本,直至所述待执行测试用例中的所有测试用例均在对应的被测环境下执行完毕;
在本实施例中,由于测试用例脚本有定义环境字段,所以通过环境字段可用判断这个测试用例脚本所对应的被测环境,从而将测试用例脚本分配到正确的被测环境。
S4、自动生成并发送测试结果至所述报告接收对象。
根据以上,并结合图1至图8,本发明的实施例二为:
一种自动化测试方法,在上述实施例一的基础上,对步骤S3和步骤S4作进一步限定如下。
在本实施例中,如图5和图6所示,步骤S3具体包括以下步骤:
S31、在当前被测环境的当前代理程序启动后,由当前代理程序创建或更新当前被测环境的环境信息,并使用轮询的方式向调度控制服务器发送测试任务请求;
在本实施例中,在当前被测环境的当前代理程序Agent启动后,发送一个POST请求,创建或更新当前被测环境的环境信息,并以轮询的方式向Engine报告当前状态,即相当于发送测试任务请求。
S32、由所述当前代理程序接收调度控制服务器所返回与所述当前被测环境相对应的待执行任务;
在本实施例中,Engine在接收到Agent的请求消息时,检测Redis任务队列,若有该Agent的待执行任务,则以JSON(数据交互格式)的数据结果反馈给Agent。此时,Agent拿到了待执行job。
S33、由所述当前代理程序向测试用例数据库发送测试用例请求,接收并执行所述测试用例数据库返回的所有当前测试用例脚本,所述测试用户请求包括当前物理地址、环境字段列表和所述待执行任务,所述当前测试用例脚本为所述待执行任务内所定义的环境字段在所述当前被测环境的环境字段列表内的测试用例脚本,所返回的所有所述当前测试用例脚本均对应有一个用例标识;
在本实施例中,Agent向系统发送一个带自己MAC地址(物理地址)和topo列表的get请求,以获取测试用例分片脚本,返回的每个测试用例对应一个id(用例标识)以便agent回填测试用例状态和保存日志时关联。其中,Agent获取到测试用例分片脚本后,生成自动化框架执行相关配置文件,然后使用python subprocess.Popen方法启动进程,开始执行测试脚本。
S34、在每一个所述当前测试用例脚本的执行过程中,在与所述用例标识对应的用例路径上生成测试日记和当前执行状态,由所述当前代理程序的主线程轮询每一个所述当前测试用例的测试日记和当前执行状态,并将所述测试日记上传到日记数据库,将所述当前执行状态上传到后台异步任务程序;
在本实施例中,测试用例分片脚本在执行过程中,在用例标识对应的用例路径下产生测试日志和当前执行状态;Agent的主线程轮询测试日志和当前执行状态,将新产生的测试日志异步写入ES,将当前执行状态以PUT请求的方式向后台异步任务程序进行实时后台更新。待测试用例分片脚本执行完成后,接着向Engine获取待执行任务。
其中,后台异步任务程序和当前代理程序均是处于同一终端上的不同程序。
S35、由所述后台异步任务程序判断是否所述待执行任务中的各个所述当前测试用例的所述当前执行状态是否均为完成,若是,则完成所述待执行任务的自动化测试。
在本实施例中,Celery异步任务中的end_job通过判断每一个测试用例的状态是否为Pass(通过)或Fail(失败)来检测Job是否完成。
在本实施例中,如图5和图6所示,步骤S4具体包括以下步骤:
S41、在所述待执行任务完成自动化测试后,统计所述待执行任务中的每一个所述当前测试用例的最终状态,当所有所述当前测试用例的最终状态均为用例测试通过时,则所述待执行任务的测试结果为任务测试通过,否则为测试失败,所述最终状态包括用例测试通过、用例测试失败以及不可用;
在本实施例中,当该Job所有用测试例都处于最终状态(Pass、Fail或Unavailable)时,若测试用例的最终状态均为Pass,则待执行任务的任务状态修改为Pass,否则修改为Fail。
S42、统计所述待执行任务中每一种所述最终状态所对应的所述当前测试用例的数量,计算用例测试通过率以及用例测试完成率,并将每一个所述测试用例上包括启动时间、完成时间、执行时长、执行结果和日志链接的执行情况进行罗列;
在本实施例中,会触发report_job的异步任务,统计该job的各最终状态的测试用例数量,计算通过率和完成率;并将所有用例的执行情况罗列。
S43、将所述待执行任务的测试结果、所述用例测试通过率、所述用例测试完成率以及每一个所述测试用例的执行情况按照预设模板语法渲染为邮件模板的测试报告;
在本实施例中,以jinja2(基于python的模板引擎)的模板语法渲染上述测试数据为预定义邮件模板的测试报告,该测试报告为html字符串。
S44、将所述测试报告发送至所述报告接收对象,所述报告接收对象为报告接收者的邮箱地址。
在本实施例中,调用邮件服务接口,将测试报告发送给Job中预先定义的receivers。
自此,Task生成Job并调度执行处理完成。如图8所示,用户可在webui(WebsiteUser Interface,网络产品界面设计)中查看任务执行情况,同时,在webui上还可以查看用例状态和用例日志。
请参照图9,本发明的实施例三为与上述实施例一或二中的自动化测试方法相对应的一种自动化测试装置1,包括:
定义模块11,用于接收基础配置项信息、待执行测试用例和被测环境列表,生成待执行任务模板,所述基础配置项信息包括报告接收对象,所述待执行测试用例的每一个测试用例脚本上均定义有环境字段;
生成模块12,用于根据所述待执行任务模板自动生成待执行任务,将所述待执行任务添加至任务队列中;
执行模块13,用于在每一个被测环境下,执行所述环境字段与所述被测环境相对应的测试用例脚本,直至所述待执行测试用例中的所有测试用例均在对应的被测环境下执行完毕;
发送模块14,用于自动生成并发送测试结果至所述报告接收对象。
本发明的实施例四为与上述实施例一或二中的自动化测试方法对应的一种计算机可读存储介质,其上存储有计算机程序,计算机程序存储有如上实施例一或二中的自动化测试方法。
请参照图10,本发明的实施例五为与上述实施例一或二中的自动化测试方法相对应的一种电子设备2,包括存储器22、处理器21及存储在存储器22上并可在处理器21上运行的计算机程序,其中,处理器21执行计算机程序时实现上述实施例一或二中的自动化测试方法。
在本申请所提供的五个实施例中,应该理解到,所揭露的方法、装置、存储介质以及电子设备2,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
综上所述,本发明提供的一种自动化测试方法、装置、存储介质及电子设备,对于用户来说,只需要输入基础配置项信息、待执行测试用例和被测环境列表,之后根据待执行任务模板自动生成待执行任务,并将待执行任务添加至任务队列中;实现测试用例被分配到正确的被测环境执行、自动将测试用例结果回填到测试用例管理、测试日志集中并且方便的查询分析以及测试报告自动总结并发送等功能来缩短测试总时长。由此,在自动化测试过程中大大减少手动重复性的工作,以降低自动化测试的出错率且提高自动化测试的工作效率,从而有效节省时间和管理成本。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (8)
1.一种自动化测试方法,其特征在于,包括步骤:
接收基础配置项信息、待执行测试用例和被测环境列表,生成待执行任务模板,所述基础配置项信息包括报告接收对象,所述待执行测试用例的每一个测试用例脚本上均定义有环境字段;
根据所述待执行任务模板自动生成待执行任务,将所述待执行任务添加至任务队列中;
在每一个被测环境下,执行所述环境字段与所述被测环境相对应的测试用例脚本,直至所述待执行测试用例中的所有测试用例均在对应的被测环境下执行完毕;
自动生成并发送测试结果至所述报告接收对象;
所述接收基础配置项信息、待执行测试用例和被测环境列表,生成待执行任务模板具体包括以下步骤:
接收任务模板创建请求,生成基础配置项界面,并接收在所述基础配置项界面输入的待执行任务、任务执行时间以及报告接收对象,得到基础配置项信息;
生成测试用例界面,并接收在所述测试用例界面所勾选的测试用例,得到待执行测试用例;
生成被测环境界面,并接收在所述被测环境界面所勾选的被测环境,得到被测环境列表;
最终得到包括所述基础配置项信息、所述待执行测试用例和所述被测环境列表的待执行任务模板;
所述根据所述待执行任务模板自动生成待执行任务具体包括以下步骤:
在当前时间达到所述任务执行时间时,根据所述待执行任务模板的基础配置项信息生成一个初始化的待执行任务;
根据所述待执行测试用例生成所述待执行任务的测试用例列表;
根据所述被测环境列表的被测环境,判断每一个测试用例的测试用例脚本中所定义的环境字段是否在所述被测环境列表中有定义,若是,则所述测试用例的初始化状态为可用,否则为不可用。
2.根据权利要求1所述的自动化测试方法,其特征在于,所述在每一个被测环境下,执行所述环境字段与所述被测环境相对应的测试用例脚本,直至所述待执行测试用例中的所有测试用例均在对应的被测环境下执行完毕具体包括以下步骤:
在当前被测环境的当前代理程序启动后,创建或更新当前被测环境的环境信息,并使用轮询的方式向调度控制服务器发送测试任务请求;
由所述当前代理程序接收调度控制服务器所返回与所述当前被测环境相对应的待执行任务;
由所述当前代理程序向测试用例数据库发送测试用例请求,接收并执行所述测试用例数据库返回的所有当前测试用例脚本,所述测试用例请求包括当前物理地址、环境字段列表和所述待执行任务,所述当前测试用例脚本为所述待执行任务内所定义的环境字段在所述当前被测环境的环境字段列表内的测试用例脚本,所返回的所有所述当前测试用例脚本均对应有一个用例标识;
在每一个所述当前测试用例脚本的执行过程中,在与所述用例标识对应的用例路径上生成测试日记和当前执行状态,由所述当前代理程序的主线程轮询每一个所述当前测试用例的测试日记和当前执行状态,并将所述测试日记上传到日记数据库,将所述当前执行状态上传到后台异步任务程序;
由所述后台异步任务程序判断是否所述待执行任务中的各个所述当前测试用例的所述当前执行状态是否均为完成,若是,则完成所述待执行任务的自动化测试。
3.根据权利要求2所述的自动化测试方法,其特征在于,所述自动生成并发送测试结果至所述报告接收对象具体包括以下步骤:
在所述待执行任务完成自动化测试后,统计所述待执行任务中的每一个所述当前测试用例的最终状态,当所有所述当前测试用例的最终状态均为用例测试通过时,则所述待执行任务的测试结果为任务测试通过,否则为测试失败,所述最终状态包括用例测试通过、用例测试失败以及不可用;
统计所述待执行任务中每一种所述最终状态所对应的所述当前测试用例的数量,计算用例测试通过率以及用例测试完成率,并将每一个所述测试用例上包括启动时间、完成时间、执行时长、执行结果和日志链接的执行情况进行罗列;
将所述待执行任务的测试结果、所述用例测试通过率、所述用例测试完成率以及每一个所述测试用例的执行情况按照预设模板语法渲染为邮件模板的测试报告;
将所述测试报告发送至所述报告接收对象,所述报告接收对象为报告接收者的邮箱地址。
4.根据权利要求1至3任一所述的自动化测试方法,其特征在于,还包括生成待执行任务模板组,所述待执行任务模板组为多个所述待执行任务模板的顺序组合。
5.根据权利要求1至3任一所述的自动化测试方法,其特征在于,所述基础配置项信息包括是否分布式执行信息,若是,则测试用例脚本包括多个测试用例分片脚本;
在执行所述测试用例脚本时,同时调度多个当前被测环境以分别处理多个所述测试用例分片脚本。
6.一种自动化测试装置,其特征在于,包括:
定义模块,用于接收基础配置项信息、待执行测试用例和被测环境列表,生成待执行任务模板,所述基础配置项信息包括报告接收对象,所述待执行测试用例的每一个测试用例脚本上均定义有环境字段;
生成模块,用于根据所述待执行任务模板自动生成待执行任务,将所述待执行任务添加至任务队列中;
执行模块,用于在每一个被测环境下,执行所述环境字段与所述被测环境相对应的测试用例脚本,直至所述待执行测试用例中的所有测试用例均在对应的被测环境下执行完毕;
发送模块,用于自动生成并发送测试结果至所述报告接收对象;
所述接收基础配置项信息、待执行测试用例和被测环境列表,生成待执行任务模板具体包括以下步骤:
接收任务模板创建请求,生成基础配置项界面,并接收在所述基础配置项界面输入的待执行任务、任务执行时间以及报告接收对象,得到基础配置项信息;
生成测试用例界面,并接收在所述测试用例界面所勾选的测试用例,得到待执行测试用例;
生成被测环境界面,并接收在所述被测环境界面所勾选的被测环境,得到被测环境列表;
最终得到包括所述基础配置项信息、所述待执行测试用例和所述被测环境列表的待执行任务模板;
所述根据所述待执行任务模板自动生成待执行任务具体包括以下步骤:
在当前时间达到所述任务执行时间时,根据所述待执行任务模板的基础配置项信息生成一个初始化的待执行任务;
根据所述待执行测试用例生成所述待执行任务的测试用例列表;
根据所述被测环境列表的被测环境,判断每一个测试用例的测试用例脚本中所定义的环境字段是否在所述被测环境列表中有定义,若是,则所述测试用例的初始化状态为可用,否则为不可用。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序存储有如权利要求1-5任意一项所述的自动化测试方法。
8.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-5任意一项所述的自动化测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011171314.XA CN112286806B (zh) | 2020-10-28 | 2020-10-28 | 自动化测试方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011171314.XA CN112286806B (zh) | 2020-10-28 | 2020-10-28 | 自动化测试方法、装置、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112286806A CN112286806A (zh) | 2021-01-29 |
CN112286806B true CN112286806B (zh) | 2023-10-03 |
Family
ID=74372580
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011171314.XA Active CN112286806B (zh) | 2020-10-28 | 2020-10-28 | 自动化测试方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112286806B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114706773A (zh) * | 2022-03-29 | 2022-07-05 | 网宿科技股份有限公司 | 自动化测试方法、设备及可读存储介质 |
CN115221146B (zh) * | 2022-09-20 | 2022-12-27 | 云账户技术(天津)有限公司 | 一种删除Redis中key值的方法及装置 |
CN115269443A (zh) * | 2022-09-29 | 2022-11-01 | 中邮消费金融有限公司 | 软件缺陷自动定位测试方法及系统 |
CN115543806B (zh) * | 2022-10-08 | 2024-06-07 | 武汉赫尔墨斯智能科技有限公司 | 一种支持自动调用自动匹配自动执行用例测试的方法 |
CN115391231B (zh) * | 2022-10-26 | 2023-02-07 | 江苏北弓智能科技有限公司 | 一种接口自动化测试方法 |
CN116048962A (zh) * | 2022-12-15 | 2023-05-02 | 宁畅信息产业(北京)有限公司 | 测试报告生成方法、装置、计算机设备和存储介质 |
CN116680194B (zh) * | 2023-06-29 | 2024-05-28 | 广州形银科技有限公司 | 一种高效半自动人工智能软件的实现方法 |
CN117421153B (zh) * | 2023-11-09 | 2024-05-28 | 哈尔滨市科佳通用机电股份有限公司 | 一种铁路货车故障图像识别模型自动化测试系统及方法 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102004659A (zh) * | 2009-08-31 | 2011-04-06 | 埃森哲环球服务有限公司 | 集成环境生成器 |
CA2990074A1 (en) * | 2017-01-23 | 2018-07-23 | Accenture Global Solutions Limited | Cloud connected automated testing |
CN108845952A (zh) * | 2018-08-17 | 2018-11-20 | 成都成电光信科技股份有限公司 | 一种基于测试用例脚本的航电fc数据激励方法 |
CN109144869A (zh) * | 2018-08-16 | 2019-01-04 | 平安科技(深圳)有限公司 | 自动化测试方法、装置、计算机设备及存储介质 |
CN109726134A (zh) * | 2019-01-16 | 2019-05-07 | 中国平安财产保险股份有限公司 | 接口测试方法和系统 |
CN110389900A (zh) * | 2019-07-10 | 2019-10-29 | 深圳市腾讯计算机系统有限公司 | 一种分布式数据库集群测试方法、装置及存储介质 |
CN110928774A (zh) * | 2019-11-07 | 2020-03-27 | 杭州顺网科技股份有限公司 | 一种基于节点式的自动化测试系统 |
CN111355632A (zh) * | 2020-02-19 | 2020-06-30 | 深圳市万睿智能科技有限公司 | 基于sipp的性能测试方法与装置和计算机设备及存储介质 |
WO2020140820A1 (zh) * | 2019-01-03 | 2020-07-09 | 京东方科技集团股份有限公司 | 软件测试方法、系统、装置、设备、介质及计算机程序产品 |
CN111679978A (zh) * | 2020-05-29 | 2020-09-18 | 腾讯科技(深圳)有限公司 | 一种程序测试方法、程序测试装置、电子设备及存储介质 |
CN111723009A (zh) * | 2020-06-12 | 2020-09-29 | 芯河半导体科技(无锡)有限公司 | 一种python自动化测试系列产品的框架系统 |
CN111831563A (zh) * | 2020-07-09 | 2020-10-27 | 平安国际智慧城市科技股份有限公司 | 接口自动测试方法、装置及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109726093B (zh) * | 2017-10-27 | 2022-03-22 | 伊姆西Ip控股有限责任公司 | 用于执行测试用例的方法、设备和计算机程序产品 |
-
2020
- 2020-10-28 CN CN202011171314.XA patent/CN112286806B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102004659A (zh) * | 2009-08-31 | 2011-04-06 | 埃森哲环球服务有限公司 | 集成环境生成器 |
CA2990074A1 (en) * | 2017-01-23 | 2018-07-23 | Accenture Global Solutions Limited | Cloud connected automated testing |
CN109144869A (zh) * | 2018-08-16 | 2019-01-04 | 平安科技(深圳)有限公司 | 自动化测试方法、装置、计算机设备及存储介质 |
CN108845952A (zh) * | 2018-08-17 | 2018-11-20 | 成都成电光信科技股份有限公司 | 一种基于测试用例脚本的航电fc数据激励方法 |
WO2020140820A1 (zh) * | 2019-01-03 | 2020-07-09 | 京东方科技集团股份有限公司 | 软件测试方法、系统、装置、设备、介质及计算机程序产品 |
CN109726134A (zh) * | 2019-01-16 | 2019-05-07 | 中国平安财产保险股份有限公司 | 接口测试方法和系统 |
CN110389900A (zh) * | 2019-07-10 | 2019-10-29 | 深圳市腾讯计算机系统有限公司 | 一种分布式数据库集群测试方法、装置及存储介质 |
CN110928774A (zh) * | 2019-11-07 | 2020-03-27 | 杭州顺网科技股份有限公司 | 一种基于节点式的自动化测试系统 |
CN111355632A (zh) * | 2020-02-19 | 2020-06-30 | 深圳市万睿智能科技有限公司 | 基于sipp的性能测试方法与装置和计算机设备及存储介质 |
CN111679978A (zh) * | 2020-05-29 | 2020-09-18 | 腾讯科技(深圳)有限公司 | 一种程序测试方法、程序测试装置、电子设备及存储介质 |
CN111723009A (zh) * | 2020-06-12 | 2020-09-29 | 芯河半导体科技(无锡)有限公司 | 一种python自动化测试系列产品的框架系统 |
CN111831563A (zh) * | 2020-07-09 | 2020-10-27 | 平安国际智慧城市科技股份有限公司 | 接口自动测试方法、装置及存储介质 |
Non-Patent Citations (1)
Title |
---|
阳长永等.嵌入式软件自动化测试及管理系统研究.《计算机测量与控制》.2019,第第27卷卷(第第9期期),57-60+75. * |
Also Published As
Publication number | Publication date |
---|---|
CN112286806A (zh) | 2021-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112286806B (zh) | 自动化测试方法、装置、存储介质及电子设备 | |
CN108415832B (zh) | 接口自动化测试方法、装置、设备及存储介质 | |
US10296563B2 (en) | Automated testing of perceptible web page elements | |
CN108874558B (zh) | 分布式事务的消息订阅方法、电子装置及可读存储介质 | |
CN108628748B (zh) | 自动化测试管理方法和自动化测试管理系统 | |
US10116534B2 (en) | Systems and methods for WebSphere MQ performance metrics analysis | |
US8898643B2 (en) | Application trace replay and simulation systems and methods | |
CN111522728A (zh) | 自动化测试用例的生成方法、电子设备及可读存储介质 | |
CN110740071B (zh) | 一种网络接口监控的方法、装置及系统 | |
CN110784374A (zh) | 业务系统运行状态的监控方法、装置、设备和系统 | |
CN111752844A (zh) | 一种接口测试方法、装置、计算设备及存储介质 | |
CN111367792A (zh) | 一种测试方法、装置、存储介质及电子设备 | |
CN112181852A (zh) | 一种接口自动化测试方法、装置、计算机设备及存储介质 | |
CN115328758A (zh) | 一种工业软件大数据量的性能测试方法和系统 | |
CN111221727A (zh) | 测试方法、装置、电子设备和计算机可读介质 | |
US11169910B2 (en) | Probabilistic software testing via dynamic graphs | |
CN116048987A (zh) | 流程业务的处理方法、装置、电子设备、系统和存储介质 | |
CN111240981A (zh) | 一种接口测试方法、系统及平台 | |
CN114155054A (zh) | 一种基于kafka的大数据报表统计的测试方法及其系统 | |
CN111831523A (zh) | 一种客户端无感知排查线上问题的方法及系统 | |
CN116860624A (zh) | 一种基于Jmeter的自动化性能测试方法 | |
CN116467188A (zh) | 一种多环境场景下的通用本地复现系统和方法 | |
CN111277425A (zh) | 集中化数据传输管理的装置 | |
CN111679899B (zh) | 任务调度方法、装置、平台设备及存储介质 | |
CN112346994B (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 |