自动化测试监控方法、装置、设备及存储介质与流程

文档序号:23651219发布日期:2021-01-15 13:47阅读:122来源:国知局
自动化测试监控方法、装置、设备及存储介质与流程

本发明涉及测试技术领域,尤其涉及一种自动化测试监控方法、装置、设备及存储介质。



背景技术:

在软件开发过程中或者开发完后,通常需要对软件进行相关测试,及时发现问题,从而保证软件在发布后能够正常运行。业界通过不断研究开发了一系列的自动化测试监控手段来提高测试效率、缩短测试时间及人力成本。

目前,传统的测试都是通过手工的形式进行,但是当用例量过大时,存在回归成本太高或回归遗漏的情况,这时需要引入自动化测试、监控。而业界的自动化框架多是基于单业务、串行的执行方式,同一批次的监控用例,一次的任务已完成,而另一个任务还没开始,导致关联用例的定位时机延后;串行还导致任务堆积与延迟,无法满足自动化测试与监控的需求,运行效率低。



技术实现要素:

本发明的主要目的是解决了自动化测试时效性不强的技术问题,提高了自动化框架运行效率。

本发明第一方面提供了一种自动化测试监控方法,包括:

获取目标任务的任务列表中包含的所有测试用例,以及所述测试用例对应的测试策略;

从预置脚本数据库中调取每个所述测试用例对应的测试脚本,并创建所述测试用例与所述测试脚本之间的关联关系;

当接收到所述目标任务的执行指令时,根据所述执行指令确定所述任务列表中的目标测试用例,并基于预置执行顺序和所述测试策略,执行所述目标测试用例,得到所述目标测试用例的测试结果;

对所述测试结果进行校验,判断所述测试结果与预期结果是否一致,其中,所述预期效果包括预期文本值以及预期字段值;

若所述测试结果与所述预期结果不一致,则将所述目标测试用例标注为异常用例,并发送告警邮件至预设邮箱;

当所述任务列表中所有测试用例运行完毕后,根据每个所述测试用例的测试结果生成测试报告。

可选地,在本发明第一方面的第一种实现方式中,在所述获取目标任务的任务列表中包含的所有测试用例,以及所述测试用例对应的测试策略之前,还包括:

读取目标配置文件;

根据所述目标配置文件加载目标任务,其中,所述目标任务包括多个测试用例;

确定所述目标任务的业务需求,并对所述业务需求进行评估,分别得到所述多个任务的触发频率;

基于所述触发频率和所述目标任务的预设最早触发时间,依次触发所述目标任务,其中,所述目标任务中包含多个相关联的测试用例。

可选地,在本发明第一方面的第二种实现方式中,所述获取目标任务的任务列表中包含的所有测试用例,以及所述测试用例对应的测试策略包括:

从定时触发的多个任务中读取目标任务,并获取所述目标任务包含的所有测试用例;

以与所述测试用例对应的功能描述和产品标识为字段,将所述字段和所述测试用例存储至测试用例数据库;

分别获取所述测试用例对应的权限集合,所述权限集合至少包括一条权限;

接收到测试用例读取请求,并确定所述读取请求是否满足所述测试用例的读取权限;

若是,则根据所述读取请求中的功能描述和产品标识从所述测试用例数据库中读取对应测试用例。

可选地,在本发明第一方面的第三种实现方式中,所述对所述测试结果进行校验,判断所述测试结果与预期结果是否一致包括:

获取测试结果,其中,所述测试结果包括在预置的等待时长内检测测试页面上页面元素的测试结果与所述目标测试用例的后端测试结果;

判断预置的等待时长内检测测试页面上页面元素的测试结果与所述目标测试用例的后端测试结果是否达到预期效果;

若在所述预置的等待时长内所述测试页面上页面元素的测试结果达到预期效果,且所述目标测试对象返回的后端测试结果达到预期效果,则确定所述目标测试用例的测试结果达到预期效果;

若在所述预置的等待时长内未检测到测试页面上页面元素的测试结果,且所述目标测试对象返回的后端测试结果达到预期结果,则确定所述目标测试用例的测试结果达到预期效果;

若在所述预置的等待时长内检测到所述测试页面上页面元素的测试结果未达到预期效果,或者所述目标测试对象返回的后端测试结果未达到预期结果,则确定所述目标测试用例的测试结果未达到预期效果。

可选地,在本发明第一方面的第四种实现方式中,所述当所述任务列表中所有测试用例运行完毕后,根据每个所述测试用例的测试结果生成测试报告包括:

将已执行测试用例的测试结果记录到所述测试报告中;

在所述测试报告中标记所述目标任务中测试结果达到预期效果的测试用例、所述测试结果未达到预期效果的测试用例以及未执行的测试用例。

可选地,在本发明第一方面的第五种实现方式中,在所述当所述任务列表中所有测试用例运行完毕后,根据每个所述测试用例的测试结果生成测试报告之后,还包括:

将所述测试报告存储至区块链节点。

本发明第二方面提供了一种自动化测试监控装置,包括:

获取模块,用于获取目标任务的任务列表中包含的所有测试用例,以及所述测试用例对应的测试策略;

创建模块,用于从预置脚本数据库中调取每个所述测试用例对应的测试脚本,并创建所述测试用例与所述测试脚本之间的关联关系;

执行模块,用于当接收到所述目标任务的执行指令时,根据所述执行指令确定所述任务列表中的目标测试用例,并基于预置执行顺序和所述测试策略,执行所述目标测试用例,得到所述目标测试用例的测试结果;

校验模块,用于对所述测试结果进行校验,判断所述测试结果与预期结果是否一致,其中,所述预期效果包括预期文本值以及预期字段值;

发送模块,用于当所述测试结果与所述预期结果不一致时,则将所述目标测试用例标注为异常用例,并发送告警邮件至预设邮箱;

生成模块,用于当所述任务列表中所有测试用例运行完毕后,根据每个所述测试用例的测试结果生成测试报告。

可选地,在本发明第二方面的第一种实现方式中,所述自动化测试监控装置还包括:

读取模块,用于读取目标配置文件;

加载模块,用于根据所述目标配置文件加载目标任务,其中,所述目标任务包括多个测试用例;

评估模块,用于确定所述目标任务的业务需求,并对所述业务需求进行评估,分别得到所述多个任务的触发频率;

触发模块,用于基于所述触发频率和所述目标任务的预设最早触发时间,依次触发所述目标任务,其中,所述目标任务中包含多个相关联的测试用例。

可选地,在本发明第二方面的第二种实现方式中,所述获取模块具体用于:

从定时触发的多个任务中读取目标任务,并获取所述目标任务包含的所有测试用例;

以与所述测试用例对应的功能描述和产品标识为字段,将所述字段和所述测试用例存储至测试用例数据库;

分别获取所述测试用例对应的权限集合,所述权限集合至少包括一条权限;

接收到测试用例读取请求,并确定所述读取请求是否满足所述测试用例的读取权限;

若是,则根据所述读取请求中的功能描述和产品标识从所述测试用例数据库中读取对应测试用例。

可选地,在本发明第二方面的第三种实现方式中,所述校验模块包括:

获取单元,用于获取测试结果,其中,所述测试结果包括在预置的等待时长内检测测试页面上页面元素的测试结果与所述目标测试用例的后端测试结果;

判断单元,用于判断预置的等待时长内检测测试页面上页面元素的测试结果与所述目标测试用例的后端测试结果是否达到预期效果;

确定单元,用于若在所述预置的等待时长内所述测试页面上页面元素的测试结果达到预期效果,且所述目标测试对象返回的后端测试结果达到预期效果,则确定所述目标测试用例的测试结果达到预期效果;

若在所述预置的等待时长内未检测到测试页面上页面元素的测试结果,且所述目标测试对象返回的后端测试结果达到预期结果,则确定所述目标测试用例的测试结果达到预期效果;

若在所述预置的等待时长内检测到所述测试页面上页面元素的测试结果未达到预期效果,或者所述目标测试对象返回的后端测试结果未达到预期结果,则确定所述目标测试用例的测试结果未达到预期效果。

可选地,在本发明第二方面的第四种实现方式中,所述生成模块具体用于:

将已执行测试用例的测试结果记录到所述测试报告中;

在所述测试报告中标记所述目标任务中测试结果达到预期效果的测试用例、所述测试结果未达到预期效果的测试用例以及未执行的测试用例。

可选地,在本发明第二方面的第五种实现方式中,所述自动化测试监控装置还包括:

存储模块,具体用于将所述测试报告存储至区块链节点。

本发明第三方面提供了一种自动化测试监控设备,包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;

所述至少一个处理器调用所述存储器中的所述指令,以使得所述自动化测试监控设备执行上述的自动化测试监控方法。

本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的自动化测试监控方法。

本发明提供的技术方案中,通过获取目标任务中包含的全部测试用例和对应测试策略,并根据生成的测试脚本创建测试用例与测试脚本之间的关联关系;当接收到目标任务的执行指令时,根据预置的执行顺序和测试策略,执行目标任务中的测试用例得到测试结果,并对测试结果进行校验,判断对应测试结果与预期结果是否一致;若不一致,则确定与该异常测试结果对应的测试用例,并发送告警邮件至预设邮箱,同时生成测试报告并输出。解决了业界的自动化框架运行效率低、时效性不强的技术问题。

附图说明

图1为本发明自动化测试监控方法的第一个实施例示意图;

图2为本发明自动化测试监控方法的第二个实施例示意图;

图3为本发明自动化测试监控方法的第三个实施例示意图;

图4为本发明自动化测试监控方法的第四个实施例示意图;

图5为本发明自动化测试监控方法的第五个实施例示意图;

图6为本发明自动化测试监控装置的第一个实施例示意图;

图7为本发明自动化测试监控装置的第二个实施例示意图;

图8为本发明自动化测试监控设备的一个实施例示意图。

具体实施方式

本发明实施例提供了一种自动化测试监控方法、装置、设备及存储介质,本发明的技术方案中,先获取目标任务中包含的全部测试用例和对应测试策略,并根据生成的测试脚本创建测试用例与测试脚本之间的关联关系;当接收到目标任务的执行指令时,根据预置的执行顺序和测试策略,执行目标任务中的测试用例得到测试结果,并对测试结果进行校验,判断对应测试结果与预期结果是否一致;若不一致,则确定与该异常测试结果对应的测试用例,并发送告警邮件至预设邮箱,同时生成测试报告并输出。解决了业界的自动化框架运行效率低、时效性不强的技术问题。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中自动化测试监控方法的第一个实施例包括:

101、获取目标任务的任务列表中包含的所有测试用例,以及测试用例对应的测试策略;

本实施例中,测试用例是指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略,即为实施测试而向被测试系统提供的输入数据、操作或各种环境设置以及期望结果的一个特定的集合。测试用例的内容包括测试目标、测试环境、输入数据、测试步骤、预置条件、用例编号和预期结果等。

测试用例包括手工测试用例和测试用例,手工测试用例(testcase,tc)包含一个测试逻辑和一组测试参数。测试者根据测试用例确定应用软件或者软件系统是否能够正确工作。通常情况下,tc存储在用例管理系统(简称tc系统)中,tc系统可以用于管理tc,通常使用网页(web)技术开发。测试用例(test-automationscript),简称测试脚本,能够借助计算机完成应用软件或者软件系统的自动化测试,通常以文件方式存储在文件系统中,每种编程语言均有其特定的测试脚本。

测试策略包括执行测试用例的类型和数量、以及执行各测试用例的触发条件等。

102、从预置脚本数据库中调取每个测试用例对应的测试脚本,并创建测试用例与测试脚本之间的关联关系;

本实施例中,关联关系可以指当测试用例在终端上被执行时,触发服务端安装的测试脚本启动。关联关系可用表格、向量或矩阵等方式呈现,本申请不对此作限定。

在一些实施方式中,触发服务器上安装的测试脚本启动的触发机制可基于客户机/服务器(client/server,c/s)结构实现。c/s结构包括client程序和server程序,client程序部署在终端上,server程序部署在服务器上。client程序的任务是将用户的要求提交给server程序,再将server程序返回的结果以特定的形式显示给用户。server程序的任务是接收客户程序提出的服务请求,进行相应的处理,再将结果返回给客户程序。

其中,测试脚本是为了进行自动化测试而编写的脚本,测试脚本包括操作序列数据以及用于调用操作序列数据单元功能脚本的单元功能脚本代码,操作序列数据由用户对待测应用程序进行测试时所执行的全部操作步骤中的部分连续的操作步骤对应的操作数据构成。

在一些实施方式中,所述方法还包括:

在测试脚本目录中,预先进行同步配置;根据所述同步配置同步测试脚本和测试用例,在进行所述同步配置之后,建立sync.yml文件来保存所述同步配置。可见,通过同步配置能够实现测试脚本与测试用例之间的一致性。

在一些实施方式中,所述方法还包括:使用代码封装所述多个测试用例;将测试用例中对应的规范化模块转化成机器语言,以将测试用例映射到测试脚本,最终生成所述测试脚本。

103、当接收到目标任务的执行指令时,根据执行指令确定任务列表中的目标测试用例,并基于预置执行顺序和测试策略,执行目标测试用例,得到目标测试用例的测试结果;

本实施例中,目标任务是指定时触发的而是监控任务,根据预置的读取条件读取到有效的符合条件的任务,并将该任务加入celery队列;其中,celery队列其实就是一个任务列表,每个目标任务包含有多个测试用例,换句话说,一个任务是一个包含有多个测试用例的任务。业务测试时,我们会设计测试用例,一个功能验证点就是一个用例,比如测试本文档,验证“标题是否存在”、“标题文字是否符合预期”,这就是两个用例。

本实施例中,各个任务中的测试用例是根据各自对应的测试策略并发运行的,但是各个任务是根据预先设置好的执行顺序依次运行的。根据测试策略中执行测试用例的时长、执行测试用例的类型、以及执行各测试用例的触发条件,调用或启动多个测试用例。测试用例的执行状态包括:通过、排队、阻塞、跳过、失败、警告、关闭、在检查中、已分配和指派、已解决的、结束、不可再生的、可复制的、被拒的、或者不适用的测试用例中的任一项。

当服务器接收到目标任务的执行指令时,服务器根据预置的执行顺序,执行目标任务中的目标测试用例,执行指令用于指示执行测试进程中的任务。目标测试用例是为目标测试对象编制的测试输入、执行条件、执行步骤以及预期结果。

需要说明得是,当用于测试的设备处于空闲状态的时候,设备会向服务器发送测试请求,该测试请求中包括执行指令,当服务器接收到执行指令时,会从测试进程中调用任务进行测试,在测试进程中,任务是根据写入测试进程的时间进行排序的。

服务器执行目标测试用例,具体为,服务器根据目标配置文件,初始化测试环境;服务器根据目标配置文件中的浏览器引擎标识以及url,进入目标测试页面;服务器执行目标测试用例中的操作步骤,包括输入、点击、提交等页面操作。

104、对测试结果进行校验,判断测试结果与预期结果是否一致,其中,预期效果包括预期文本值以及预期字段值;

本实施例中,对测试用例的测试结果进行校验,判断目标测试用例的测试结果是否达到预期效果,预期效果包括预期文本值以及预期字段值。测试结果为服务器执行目标测试用例后,测试页面上显示的结果或者后端中相关目标测试对象返回的测试结果,预期效果为根据需求预设的预期值。

本实施例中,在预置的等待时长内判断测试页面上页面元素的测试结果是否达到预期效果,以及判断目标测试用例的后端测试结果是否达到预期效果,两种验证方式来验证目标测试用例的测试结果是否达到预期结果。需要说明得是,在前端页面上显示的文本值在后端的表示方式不一样,并通过预设的转换接口在前端和后端进行转换,例如在某应用中,后端采用的是js对象简谱(javascriptobjectnotation,json)的数据交换格式,在测试页面上某元素的文本值“hello”,在后端对应的json格式的字段值为“a”。再比如,预期的结果:平安附加少儿恶性肿瘤疾病保险的等待期为90天。返回的测试结果“answer字段”的值:如果包含“平安附加少儿恶性肿瘤疾病保险的等待期为90天“,则测试结果与预期结果一致,验证成功;如果不包含或文字不一致,则测试结果与预期结果不一致,验证失败。

105、若测试结果与预期结果不一致,则将目标测试用例标注为异常用例,并发送告警邮件至预设邮箱;

本实施例中,若目标测试用例的测试结果与预期效果不一致,则服务器会确定目标任务中与该异常测试结果对应的测试用例,例如,当测试用例b的测试结果未达到预期效果时,服务器会确定该测试用例b。并按预置邮箱,向对应负责人发送告警邮件。

需要说明得是,若目标测试用例的测试结果未达到预期效果,服务器将发送告警邮件提示目标任务执行失败并读取等待进程中待任务的配置文件,服务器进行下一个任务的测试。

106、当任务列表中所有测试用例运行完毕后,根据每个测试用例的测试结果生成测试报告。

本实施例中,服务器生成目标任务的测试报告,具体的,服务器将已执行测试用例的测试结果记录到所述测试报告中;服务器在测试报告中标记目标任务中测试结果达到预期效果的测试用例、测试结果未达到预期效果的测试用例以及未执行的测试用例,以便测试人员分辨出错的测试用例以及分析出错的原因。需要说明得是,测试报告记录目标测试用例的测试结果可以是以图表的形式,也可以是以文本的形式,还可以是其他的形式,具体此处不做限制。

本发明实施例,用于自动化测试与监控能代替手工工作,可以满足自动化测试与监控的需求,每个监控用例可以高并发运行、及时得到结论,提高了用例的执行效率。

本发明实施例中,通过获取目标任务中包含的全部测试用例和对应测试策略,并根据生成的测试脚本创建测试用例与测试脚本之间的关联关系;当接收到目标任务的执行指令时,根据预置的执行顺序和测试策略,执行目标任务中的测试用例得到测试结果,并对测试结果进行校验,判断对应测试结果与预期结果是否一致;若不一致,则确定与该异常测试结果对应的测试用例,并发送告警邮件至预设邮箱,同时生成测试报告并输出。解决了业界的自动化框架运行效率低、时效性不强的技术问题。

请参阅图2,本发明实施例中自动化测试监控方法的第二个实施例包括:

201、读取目标配置文件;

本实施例中,服务器读取目标配置文件。目标配置文件包括如下的一种或多种信息:目标任务的参数、环境参数、浏览器引擎标识、用户名及密码以及指定统一资源定位地址(uniformresourcelocator,url)。

需要说明得是,目标配置文件用于确定目标测试用例操作步骤所在的页面或框架以及预置的等待时长等参数。测试人员可通过调整目标测试文件中的参数改变目标任务中目标测试用例的服务器的等待时长等。

202、根据目标配置文件加载目标任务,其中,目标任务包括多个测试用例;

本实施例中,服务器根据目标配置文件确定目标任务,其中,目标任务为符合预置读取条件的(有效)任务,包括多个测试用例,并且在该目标任务中,相关联的任务合按照预置的执行顺序进行排列。

需要说明得是,测试用例是并发运行的。整体运行耗时由原来的∑ixi变为max(xi),原来的整体耗时受用例的个数影响,也受每个用例的执行时长影响,是所有时长的累加;优化后的框架,只取决于耗时最长的用例,意味着所有用例最长1s内全部完成,基本不存在延迟的情况,保障了每个监控时间点稳定产出结果。

203、确定目标任务的业务需求,并对业务需求进行评估,分别得到多个任务的触发频率;

本实施例中,根据目标任务的业务需求,确定该celery的任务队列中各个目标任务的出发时间及触发频率。触发频率可以是天级,小时级甚至秒级。

204、基于触发频率和目标任务的预设最早触发时间,依次触发目标任务;

本实施例中,触发频率和目标任务的预设最早触发时间,依次触发目标任务。服务器根据执行顺序,依次执行目标任务中的目标测试用例,执行指令用于指示执行测试进程中的任务。

当服务器接收到执行指令时,会从测试进程中调用任务进行测试,在测试进程中,任务是根据写入测试进程的时间进行排序的。服务器执行目标测试用例,具体为,服务器根据目标配置文件,初始化测试环境;服务器根据目标配置文件中的浏览器引擎标识以及url,进入目标测试页面;服务器执行目标测试用例中的操作步骤,包括输入、点击、提交等页面操作。

205、获取目标任务的任务列表中包含的所有测试用例,以及测试用例对应的测试策略;

206、从预置脚本数据库中调取每个测试用例对应的测试脚本,并创建测试用例与测试脚本之间的关联关系;

207、当接收到目标任务的执行指令时,根据执行指令确定任务列表中的目标测试用例,并基于预置执行顺序和测试策略,执行目标测试用例,得到目标测试用例的测试结果;

208、对测试结果进行校验,判断测试结果与预期结果是否一致,其中,预期效果包括预期文本值以及预期字段值;

209、若测试结果与预期结果不一致,则将目标测试用例标注为异常用例,并发送告警邮件至预设邮箱;

210、当任务列表中所有测试用例运行完毕后,根据每个测试用例的测试结果生成测试报告;

211、将测试报告存储至区块链节点。

本实施例中,区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。

本实施例中步骤205-210与第一实施例中的步骤101-106类似,此处不再赘述。

本发明实施例中,通过获取目标任务中包含的全部测试用例和对应测试策略,并根据生成的测试脚本创建测试用例与测试脚本之间的关联关系;当接收到目标任务的执行指令时,根据预置的执行顺序和测试策略,执行目标任务中的测试用例得到测试结果,并对测试结果进行校验,判断对应测试结果与预期结果是否一致;若不一致,则确定与该异常测试结果对应的测试用例,并发送告警邮件至预设邮箱,同时生成测试报告并输出。解决了业界的自动化框架运行效率低、时效性不强的技术问题。

请参阅图3,本发明实施例中自动化测试监控方法的第三个实施例包括:

301、从定时触发的多个任务中读取目标任务,并获取目标任务包含的所有测试用例;

本实施例中,目标用户输入的用户问句指的是目标用户在线输入的业务咨询信息。根据业务咨询信息,对该业务咨询信息进行语义分析,提取出业务咨询信息中的关键字,并根据预置标签库中的标签进行匹配,根据匹配到的结果确定目标用户所咨询业务的业务类型。比如,某用户输入的咨询信息为“我想查询私家医生业务,如何查询”,对用户输入的咨询信息进行语义分析,提取出“医生”、“私家医生业务”等关键字,根据这些关键字,与预置标签库中的标签进行匹配,确定该用户问句中携带的标签“寿险”、“私家医生咨询”、“挂号业务”等。

302、以与测试用例对应的功能描述和产品标识为字段,将字段和测试用例存储至测试用例数据库;

本实施例中,测试用例具有标识,事先建立了测试用例标识与功能描述和产品标识对应关系表,通过该测试用例的标识查询该表,获得与测试用例的对应的功能描述和产品标识。

本实施例中,字段和对应的测试用例是根据字段按照预定顺序在数据库中存储的。

本实施例中,测试用例包括文档,所述文档记录了测试用例的创建端,每一测试用例都对应至少一个功能模块,测试用例用于测试对应的功能模块,在以与测试用例对应的功能描述和产品标识为字段,将字段和对应的测试用例存储至数据库。

303、分别获取测试用例对应的权限集合,权限集合至少包括一条权限;

本实施例中,获取每一测试用例对应的权限集合被存储至数据库中。其中,测试用例中包括权限集合,测试用例对应的权限集合是从该测试用例中获取的,是通过权限表或者权限映射表的方式建立的。

304、接收到测试用例读取请求,并确定读取请求是否满足测试用例的读取权限;

本实施例中,测试用例获取请求与至少一个测试终端对应,测试用例获取请求包括要获取的测试用例的功能描述和产品标识。权限即测试用例库分发测试用例的规则或条件。

本实施例中,测试用例获取请求中包括请求获取的测试用例的标识,而测试用例的标识被记录在对应的测试用例中,当接收到测试用例获取请求后,根据该请求中的测试用例的标识确定所述测试用例获取请求所针对的测试用例,进而确定与该测试用例获取请求对应的权限集合。

305、若是,则根据读取请求中的功能描述和产品标识从测试用例数据库中读取对应测试用例;

本实施例中,当测试用例获取请求满足了对应的权限集合中的所有权限,说明该请求是合法请求,可以合法地使用所请求的测试用例,这样就可以将测试用例获取请求所针对的测试用例发送至对应的测试终端。

306、从预置脚本数据库中调取每个测试用例对应的测试脚本,并创建测试用例与测试脚本之间的关联关系;

307、当接收到目标任务的执行指令时,根据执行指令确定任务列表中的目标测试用例,并基于预置执行顺序和测试策略,执行目标测试用例,得到目标测试用例的测试结果;

308、对测试结果进行校验,判断测试结果与预期结果是否一致,其中,预期效果包括预期文本值以及预期字段值;

309、若测试结果与预期结果不一致,则将目标测试用例标注为异常用例,并发送告警邮件至预设邮箱;

310、当任务列表中所有测试用例运行完毕后,根据每个测试用例的测试结果生成测试报告。

本实施例中步骤306-310与第一实施例中的步骤102-106类似,此处不再赘述。

本发明实施例中,通过获取目标任务中包含的全部测试用例和对应测试策略,并根据生成的测试脚本创建测试用例与测试脚本之间的关联关系;当接收到目标任务的执行指令时,根据预置的执行顺序和测试策略,执行目标任务中的测试用例得到测试结果,并对测试结果进行校验,判断对应测试结果与预期结果是否一致;若不一致,则确定与该异常测试结果对应的测试用例,并发送告警邮件至预设邮箱,同时生成测试报告并输出。解决了业界的自动化框架运行效率低、时效性不强的技术问题。

请参阅图4,本发明实施例中自动化测试监控方法的第四个实施例包括:

401、获取目标任务的任务列表中包含的所有测试用例,以及测试用例对应的测试策略;

402、从预置脚本数据库中调取每个测试用例对应的测试脚本,并创建测试用例与测试脚本之间的关联关系;

403、当接收到目标任务的执行指令时,根据执行指令确定任务列表中的目标测试用例,并基于预置执行顺序和测试策略,执行目标测试用例,得到目标测试用例的测试结果;

404、获取测试结果,其中,测试结果包括在预置的等待时长内检测测试页面上页面元素的测试结果与目标测试用例的后端测试结果;

本实施例中,测试结果包括在预置的等待时长内检测测试页面上页面元素的测试结果与目标测试用例的后端测试结果。比如,服务器提交测试请求给后端中目标测试用例的目标测试对象;服务器获取目标测试对象处理完测试请求后返回的测试字段值;服务器将测试字段值与预期效果中的预期字段值进行比较;若测试字段值与预期字段值一致,则服务器确定目标测试用例的后端测试结果达到预期效果;若测试字段值与预期效果中的预期字段值不一致,则服务器确定目标测试用例的后端测试结果未达到预期效果。

405、判断预置的等待时长内检测测试页面上页面元素的测试结果与目标测试用例的后端测试结果是否达到预期效果;

本实施例中,在执行目标测试用例时,进入测试页面并提交进行测试操作的请求;在服务器提交进行测试操作的请求后,服务器以预置的时长为检测周期开始检测页面元素的文本值;当服务器检测到页面元素的文本值改变时,服务器停止检测测试页面上页面元素的文本值是否改变;服务器统计当前时刻的检测周期数量;服务器将预置的时长乘以当前时刻的检测周期数量得到页面响应时长;当页面响应时长未超过预置的等待时长时,服务器将测试页面上页面元素改变后的目标文本值与预期效果中的预期文本值进行比较;若页面元素改变后的目标文本值与预期文本值一致,则服务器确定测试页面上页面元素的测试结果达到了预期效果;若页面元素改变后的目标文本值与预期文本值不一致,则服务器确定测试页面上页面元素的测试结果未达到预期效果。比如,设定接口:http://30.*.*.*:8000/kbqa/response,传入的参数:{"userid":"123","question":"","correctquestion":"平安附加少儿定期寿险的等待期"},读取的数据:json.result.answer,预期的结果:平安附加少儿恶性肿瘤疾病保险的等待期为90天。返回的测试结果“answer字段”的值:如果包含“平安附加少儿恶性肿瘤疾病保险的等待期为90天“,则测试结果与预期结果一致,验证成功;如果不包含或文字不一致,则测试结果与预期结果不一致,验证失败。

本实施例中,当在所述预置的等待时长内测试页面上页面元素的测试结果达到预期效果,且目标测试对象返回的后端测试结果达到预期效果,则确定目标测试用例的测试结果达到预期效果;本实施例中,若服务器在预置的等待时长内检测到测试页面上页面元素的测试结果达到预期效果,且目标测试对象返回的后端测试结果达到预期效果,则服务器确定目标测试用例的测试结果达到预期效果。例如,服务器在预置的等待时长5秒内检测到页面元素的文本值变为预期文本值:“待确认”,并且后端中目标测试对象返回的测试字段值为预期字段值:“c”,则服务器确认目标测试用例的测试结果达到预期效果。

本实施例中,当在所述预置的等待时长内未检测到测试页面上页面元素的测试结果,且目标测试对象返回的后端测试结果达到预期结果,则确定目标测试用例的测试结果达到预期效果;本实施例中,若服务器在预置的等待时长内服务器未检测到测试页面上页面元素的测试结果,且目标测试对象返回的后端测试结果达到预期结果,则服务器确定目标测试用例的测试结果达到预期效果。例如,服务器在预置的等待时长5秒内未检测到页面元素的文本值改变,并且后端中目标测试对象返回的测试字段值为预期字段值:“c”,则服务器确认目标测试用例的测试结果达到预期效果。比如,预期的结果:平安附加少儿恶性肿瘤疾病保险的等待期为90天。返回的测试结果“answer字段”的值:如果包含“平安附加少儿恶性肿瘤疾病保险的等待期为90天”,则测试结果与预期结果一致,验证成功。

本实施例中,若在预置的等待时长内检测到测试页面上页面元素的测试结果未达到预期效果,或者目标测试对象返回的后端测试结果未达到预期结果,则确定目标测试用例的测试结果未达到预期效果。

本实施例中,确定多个所述标签中的每个标签的业务价值进一步包括获得多个所述标签中的每个标签的历史访问次数,最后访问时间以及调用方的数量,基于所述历史访问次数,最后访问时间以及调用方的数量确定标签的标签价值。比如,,预期的结果:平安附加少儿恶性肿瘤疾病保险的等待期为90天。返回的测试结果“answer字段”的值:如果包含的是“平安福的等待期是90天”或其他答案,与请求不匹配,则测试结果与预期结果不一致,验证失败。

406、若测试结果与预期结果不一致,则将目标测试用例标注为异常用例,并发送告警邮件至预设邮箱;

407、当任务列表中所有测试用例运行完毕后,根据每个测试用例的运行结果生成测试报告。

本实施例中步骤401-403和406-407与第一实施例中的步骤101-103和105-106类似,此处不再赘述。

本发明实施例中,通过获取目标任务中包含的全部测试用例和对应测试策略,并根据生成的测试脚本创建测试用例与测试脚本之间的关联关系;当接收到目标任务的执行指令时,根据预置的执行顺序和测试策略,执行目标任务中的测试用例得到测试结果,并对测试结果进行校验,判断对应测试结果与预期结果是否一致;若不一致,则确定与该异常测试结果对应的测试用例,并发送告警邮件至预设邮箱,同时生成测试报告并输出。解决了业界的自动化框架运行效率低、时效性不强的技术问题。

请参阅图5,本发明实施例中自动化测试监控方法的第五个实施例包括:

501、获取目标任务的任务列表中包含的所有测试用例,以及测试用例对应的测试策略;

502、从预置脚本数据库中调取每个测试用例对应的测试脚本,并创建测试用例与测试脚本之间的关联关系;

503、当接收到目标任务的执行指令时,根据执行指令确定任务列表中的目标测试用例,并基于预置执行顺序和测试策略,执行目标测试用例,得到目标测试用例的测试结果;

504、对测试结果进行校验,判断测试结果与预期结果是否一致,其中,预期效果包括预期文本值以及预期字段值;

505、若测试结果与预期结果不一致,则将目标测试用例标注为异常用例,并发送告警邮件至预设邮箱;

506、将已执行测试用例的测试结果记录到测试报告中;

本实施例中,当用于对被测系统进行测试的测试用例全部运行结束后,每个被调用的执行机均会返回对应的测试结果到服务器中,以进行汇总处理,得到一个总的相应的测试报告,该测试报告可以包括测试用例组中从多方面进行设计的测试用例的进行测试之后的结果。该测试报告即包括性能基线测试和需求性能测试的结果的总和,能够对被测系统进行更为全面的测试,基于此可以提高被测系统的质量和测试效率。

另外,对于执行失败的测试用例,在测试报告中要显示错误日志,并发送告警邮件值预设收件人。

507、在测试报告中标记目标任务中测试结果达到预期效果的测试用例、测试结果未达到预期效果的测试用例以及未执行的测试用例。

本实施例中,服务器生成目标任务的测试报告,具体的,服务器将已执行测试用例的测试结果记录到测试报告中;服务器在测试报告中标记目标任务中测试结果达到预期效果的测试用例、测试结果未达到预期效果的测试用例以及未执行的测试用例,以便测试人员分辨出错的测试用例以及分析出错的原因。

需要说明得是,测试报告记录目标测试用例的测试结果可以是以图表的形式,也可以是以文本的形式,还可以是其他的形式,具体此处不做限制。

本实施例中步骤501-505与第一实施例中的101-105类似,此处不再赘述。

在本发明实施例中,通过获取目标任务中包含的全部测试用例和对应测试策略,并根据生成的测试脚本创建测试用例与测试脚本之间的关联关系;当接收到目标任务的执行指令时,根据预置的执行顺序和测试策略,执行目标任务中的测试用例得到测试结果,并对测试结果进行校验,判断对应测试结果与预期结果是否一致;若不一致,则确定与该异常测试结果对应的测试用例,并发送告警邮件至预设邮箱,同时生成测试报告并输出。解决了业界的自动化框架运行效率低、时效性不强的技术问题。

上面对本发明实施例中自动化测试监控方法进行了描述,下面对本发明实施例中自动化测试监控装置进行描述,请参阅图6,本发明实施例中自动化测试监控装置的第一个实施例包括:

获取模块601,用于获取目标任务的任务列表中包含的所有测试用例,以及所述测试用例对应的测试策略;

创建模块602,用于从预置脚本数据库中调取每个所述测试用例对应的测试脚本,并创建所述测试用例与所述测试脚本之间的关联关系;

执行模块603,用于当接收到所述目标任务的执行指令时,根据所述执行指令确定所述任务列表中的目标测试用例,并基于预置执行顺序和所述测试策略,执行所述目标测试用例,得到所述目标测试用例的测试结果;

校验模块604,用于对所述测试结果进行校验,判断所述测试结果与预期结果是否一致,其中,所述预期效果包括预期文本值以及预期字段值;

发送模块605,用于当所述测试结果与所述预期结果不一致时,则将所述目标测试用例标注为异常用例,并发送告警邮件至预设邮箱;

生成模块606,用于当所述任务列表中所有测试用例运行完毕后,根据每个所述测试用例的测试结果生成测试报告。

本发明实施例中,通过获取目标任务中包含的全部测试用例和对应测试策略,并根据生成的测试脚本创建测试用例与测试脚本之间的关联关系;当接收到目标任务的执行指令时,根据预置的执行顺序和测试策略,执行目标任务中的测试用例得到测试结果,并对测试结果进行校验,判断对应测试结果与预期结果是否一致;若不一致,则确定与该异常测试结果对应的测试用例,并发送告警邮件至预设邮箱,同时生成测试报告并输出。解决了业界的自动化框架运行效率低、时效性不强的技术问题。

请参阅图7,本发明实施例中自动化测试监控装置的第二个实施例,该自动化测试监控装置具体包括:

获取模块601,用于获取目标任务的任务列表中包含的所有测试用例,以及所述测试用例对应的测试策略;

创建模块602,用于从预置脚本数据库中调取每个所述测试用例对应的测试脚本,并创建所述测试用例与所述测试脚本之间的关联关系;

执行模块603,用于当接收到所述目标任务的执行指令时,根据所述执行指令确定所述任务列表中的目标测试用例,并基于预置执行顺序和所述测试策略,执行所述目标测试用例,得到所述目标测试用例的测试结果;

校验模块604,用于对所述测试结果进行校验,判断所述测试结果与预期结果是否一致,其中,所述预期效果包括预期文本值以及预期字段值;

发送模块605,用于当所述测试结果与所述预期结果不一致时,则将所述目标测试用例标注为异常用例,并发送告警邮件至预设邮箱;

生成模块606,用于当所述任务列表中所有测试用例运行完毕后,根据每个所述测试用例的测试结果生成测试报告。

本实施例中,所述自动化测试监控装置还包括:

读取模块607,用于读取目标配置文件;

加载模块608,用于根据所述目标配置文件加载目标任务,其中,所述目标任务包括多个测试用例;

评估模块609,用于确定所述目标任务的业务需求,并对所述业务需求进行评估,分别得到所述多个任务的触发频率;

触发模块610,用于基于所述触发频率和所述目标任务的预设最早触发时间,依次触发所述目标任务,其中,所述目标任务中包含多个相关联的测试用例。

本实施例中,所述获取模块601具体用于:

从定时触发的多个任务中读取目标任务,并获取所述目标任务包含的所有测试用例;

以与所述测试用例对应的功能描述和产品标识为字段,将所述字段和所述测试用例存储至测试用例数据库;

分别获取所述测试用例对应的权限集合,所述权限集合至少包括一条权限;

接收到测试用例读取请求,并确定所述读取请求是否满足所述测试用例的读取权限;

若是,则根据所述读取请求中的功能描述和产品标识从所述测试用例数据库中读取对应测试用例。

本实施例中,所述校验模块604包括:

获取单元6041,用于获取测试结果,其中,所述测试结果包括在预置的等待时长内检测测试页面上页面元素的测试结果与所述目标测试用例的后端测试结果;

判断单元6042,用于判断预置的等待时长内检测测试页面上页面元素的测试结果与所述目标测试用例的后端测试结果是否达到预期效果;

确定单元6043,用于若在所述预置的等待时长内所述测试页面上页面元素的测试结果达到预期效果,且所述目标测试对象返回的后端测试结果达到预期效果,则确定所述目标测试用例的测试结果达到预期效果;若在所述预置的等待时长内未检测到测试页面上页面元素的测试结果,且所述目标测试对象返回的后端测试结果达到预期结果,则确定所述目标测试用例的测试结果达到预期效果;若在所述预置的等待时长内检测到所述测试页面上页面元素的测试结果未达到预期效果,或者所述目标测试对象返回的后端测试结果未达到预期结果,则确定所述目标测试用例的测试结果未达到预期效果。

本实施例中,所述生成模块606具体用于:

将已执行测试用例的测试结果记录到所述测试报告中;

在所述测试报告中标记所述目标任务中测试结果达到预期效果的测试用例、所述测试结果未达到预期效果的测试用例以及未执行的测试用例。

本实施例中,所述自动化测试监控装置还包括:

存储模块611,用于将所述测试报告存储至区块链节点。

本发明实施例中,通过获取目标任务中包含的全部测试用例和对应测试策略,并根据生成的测试脚本创建测试用例与测试脚本之间的关联关系;当接收到目标任务的执行指令时,根据预置的执行顺序和测试策略,执行目标任务中的测试用例得到测试结果,并对测试结果进行校验,判断对应测试结果与预期结果是否一致;若不一致,则确定与该异常测试结果对应的测试用例,并发送告警邮件至预设邮箱,同时生成测试报告并输出。解决了业界的自动化框架运行效率低、时效性不强的技术问题。

上面图6和图7从模块化功能实体的角度对本发明实施例中的自动化测试监控装置进行详细描述,下面从硬件处理的角度对本发明实施例中自动化测试监控设备进行详细描述。

图8是本发明实施例提供的一种自动化测试监控设备的结构示意图,该自动化测试监控设备800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessingunits,cpu)810(例如,一个或一个以上处理器)和存储器820,一个或一个以上存储应用程序833或数据832的存储介质830(例如一个或一个以上海量存储设备)。其中,存储器820和存储介质830可以是短暂存储或持久存储。存储在存储介质830的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对自动化测试监控设备800中的一系列指令操作。更进一步地,处理器810可以设置为与存储介质830通信,在自动化测试监控设备800上执行存储介质830中的一系列指令操作,以实现上述各方法实施例提供的自动化测试监控方法的步骤。

自动化测试监控设备800还可以包括一个或一个以上电源840,一个或一个以上有线或无线网络接口850,一个或一个以上输入输出接口860,和/或,一个或一个以上操作系统831,例如windowsserve,macosx,unix,linux,freebsd等等。本领域技术人员可以理解,图8示出的自动化测试监控设备结构并不构成对本申请提供的自动化测试监控设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行上述自动化测试监控方法的步骤。

本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。

所述领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1