CN113094265A - 测试脚本的分析方法及分析装置、电子设备 - Google Patents

测试脚本的分析方法及分析装置、电子设备 Download PDF

Info

Publication number
CN113094265A
CN113094265A CN202110358362.8A CN202110358362A CN113094265A CN 113094265 A CN113094265 A CN 113094265A CN 202110358362 A CN202110358362 A CN 202110358362A CN 113094265 A CN113094265 A CN 113094265A
Authority
CN
China
Prior art keywords
script
tested
information
test
analysis
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.)
Granted
Application number
CN202110358362.8A
Other languages
English (en)
Other versions
CN113094265B (zh
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.)
Hillstone Networks Co Ltd
Original Assignee
Hillstone Networks Co Ltd
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 Hillstone Networks Co Ltd filed Critical Hillstone Networks Co Ltd
Priority to CN202110358362.8A priority Critical patent/CN113094265B/zh
Publication of CN113094265A publication Critical patent/CN113094265A/zh
Application granted granted Critical
Publication of CN113094265B publication Critical patent/CN113094265B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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

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

测试脚本的分析方法及分析装置、电子设备
技术领域
本发明涉及信息处理技术领域,具体而言,涉及一种测试脚本的分析方法及分析装置、电子设备。
背景技术
相关技术中,自动化测试在越来越多的行业领域中发挥重要的作用。它可以替代大量的手工重复性操作,避免人为原因导致的错误和遗漏,提高回归测试效率,充分迎合敏捷开发的过程。然而,当大量的测试工作被自动化测试代替之后,自动化测试脚本越发复杂,测试耗时越来越多,产生的测试日志越发庞大。测试人员在自动化测试过程中,如何能实时快速查看每个测试脚本,尤其是复杂,多步骤测试脚本的测试步骤,每个步骤的执行过程,失败原因,提升结果分析效率,就变得至关重要。
当前的常见的自动化测试框架如nosetest,pyunit,java unit中提供的测试结果查看,通常都只能呈现每个测试脚本的测试结果。但是无法呈现脚本内自定义的测试步骤及子步骤,从而无法使用户预览到测试脚本的全貌,了解测试脚本预定义的所有执行流程,继而定位到此次失败在哪一个流程,步骤上。而robotframework、loadrunner等框架需要脚本执行完毕后才能查看执行报告。
而如果将每个自动化脚本中自定义的测试步骤都存储至常规数据库中,随着测试次数变多,测试脚本数量变大,又会不可避免地导致查询效率变低。
现有nose,pyunit,java unit等自动化测试框使用方法为按框架预定义的使用方式,编写测试用例,组成测试套,运行完成后,生成测试报告。报告中会呈现每个测试脚本的执行成功/失败结果,及错误发生的堆栈和统计信息。
使用上述常见的自动化测试框架主要缺点包括:
1)测试人员不能对测试脚本/用例中执行的测试步骤和流程进行预览。
2)不能对每个步骤的执行流程进行独立查看。
3)脚本分析人员很难结合上下文去分析脚本的失败原因。对于报告中反馈的错误信息,测试人员有时需要在全部测试日志中搜寻前后因果关系。定位效率低。
4)测试报告一般在所有测试完成后生成。对于大批量,长耗时的测试用例执行计划来说,无法实现实时分析。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种测试脚本的分析方法及分析装置、电子设备,以至少解决相关技术中在脚本测试过程中,无法查看具体的测试步骤,且分析效率较低的技术问题。
根据本发明实施例的一个方面,提供了一种测试脚本的分析方法,包括:分析多个待测试脚本,得到每个所述待测试脚本的脚本信息,其中,每个所述待测试脚本包括:多个待测试步骤,所述多个待测试步骤中至少包括:外部终端输入的指定测试步骤;采用预定义函数分析每个所述待测试步骤的步骤信息;执行所述指定测试步骤,得到步骤运行结果;基于所述脚本信息、所述步骤信息和所述步骤运行结果,生成脚本分析日志。
可选地,分析多个待测试脚本,得到每个所述待测试脚本的脚本信息的步骤,包括:接收脚本测试任务,其中,所述脚本测试任务中包括所有待测试脚本的脚本集合;采用目录索引算法依次调用所述脚本集合中的每个所述待测试脚本;分析每个所述待测试脚本的起始行,得到起始信息;分析每个所述待测试脚本的成功结束行和失败结束行,得到结束信息;在脚本分析日志中标记每个所述待测试脚本的起始信息和结束信息,得到所述脚本信息。
可选地,采用预定义函数分析每个所述待测试步骤的步骤信息的步骤,包括:对每个所述待测试脚本,在脚本执行框架中设置对应的第一预定义函数和第二预定义函数;采用所述第一预定义函数记录每个所述待测试步骤的起始信息;采用所述第二预定义函数记录每个所述待测试步骤的结束信息;基于每个所述待测试步骤的起始信息和结束信息,确定每个所述待测试步骤的步骤信息。
可选地,执行所述指定测试步骤,得到步骤运行结果的步骤,包括:执行所述指定测试步骤的各个子步骤,并判断每个所述子步骤是否执行成功;若所有子步骤都执行成功,则确定所述指定测试步骤执行成功;若存在子步骤执行失败,则确定所述指定测试步骤执行失败,得到步骤运行结果。
可选地,在生成脚本分析日志之后,所述分析方法还包括:接收第一测试展示指令;响应所述第一测试展示指令,在终端显示界面上的第一子页面展示已测试脚本以及所述已测试脚本的脚本运行结果;在终端显示界面上的第二子页面分层展示所述已测试脚本的步骤树,其中,所述步骤树包括:多个已测试步骤和每个所述已测试步骤包含的子步骤;在终端显示界面上的第三子页面展示所述已测试步骤的步骤运行结果和步骤执行流程。
可选地,在生成脚本分析日志之后,所述分析方法还包括:接收第二测试展示指令;响应所述第二测试展示指令,确定所述指定测试步骤的起始行和结束行;基于所述指定测试步骤的起始行和结束行,确定日志起始位置和日志结束位置;基于所述日志起始位置、日志结束位置以及所述指定测试步骤的步骤标识信息,在终端显示界面上展示所述指定测试步骤的日志信息。
根据本发明实施例的另一方面,还提供了一种测试脚本的分析装置,包括:第一分析单元,用于分析多个待测试脚本,得到每个所述待测试脚本的脚本信息,其中,每个所述待测试脚本包括:多个待测试步骤,所述多个待测试步骤中至少包括:外部终端输入的指定测试步骤;第二分析单元,用于采用预定义函数分析每个所述待测试步骤的步骤信息;执行单元,用于执行所述指定测试步骤,得到步骤运行结果;生成单元,用于基于所述脚本信息、所述步骤信息和所述步骤运行结果,生成脚本分析日志。
可选地,所述第一分析单元包括:第一接收模块,用于接收脚本测试任务,其中,所述脚本测试任务中包括所有待测试脚本的脚本集合;第一调用模块,用于采用目录索引算法依次调用所述脚本集合中的每个所述待测试脚本;第一分析模块,用于分析每个所述待测试脚本的起始行,得到起始信息;第二分析模块,用于分析每个所述待测试脚本的成功结束行和失败结束行,得到结束信息;标记模块,用于在脚本分析日志中标记每个所述待测试脚本的起始信息和结束信息,得到所述脚本信息。
可选地,所述第二分析单元包括:第一设置模块,用于对每个所述待测试脚本,在脚本执行框架中设置对应的第一预定义函数和第二预定义函数;第一记录模块,用于采用所述第一预定义函数记录每个所述待测试步骤的起始信息;第二记录模块,用于采用所述第二预定义函数记录每个所述待测试步骤的结束信息;第一确定模块,用于基于每个所述待测试步骤的起始信息和结束信息,确定每个所述待测试步骤的步骤信息。
可选地,所述执行单元包括:第一执行模块,用于执行所述指定测试步骤的各个子步骤,并判断每个所述子步骤是否执行成功;第二确定模块,用于在所有子步骤都执行成功,则确定所述指定测试步骤执行成功;第三确定模块,用于在存在子步骤执行失败,则确定所述指定测试步骤执行失败,得到步骤运行结果。
可选地,所述分析装置还包括:第一接收单元,用于在生成脚本分析日志之后,接收第一测试展示指令;第一响应单元,用于响应所述第一测试展示指令,在终端显示界面上的第一子页面展示已测试脚本以及所述已测试脚本的脚本运行结果;第一展示单元,用于在终端显示界面上的第二子页面分层展示所述已测试脚本的步骤树,其中,所述步骤树包括:多个已测试步骤和每个所述已测试步骤包含的子步骤;第二展示单元,用于在终端显示界面上的第三子页面展示所述已测试步骤的步骤运行结果和步骤执行流程。
可选地,所述分析装置还包括:第二接收单元,用于在生成脚本分析日志之后,接收第二测试展示指令;第二响应单元,用于响应所述第二测试展示指令,确定所述指定测试步骤的起始行和结束行;第四确定模块,用于基于所述指定测试步骤的起始行和结束行,确定日志起始位置和日志结束位置;第三展示单元,用于基于所述日志起始位置、日志结束位置以及所述指定测试步骤的步骤标识信息,在终端显示界面上展示所述指定测试步骤的日志信息。
根据本发明实施例的另一方面,还提供了一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的测试脚本的分析方法。
根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行上述任意一项所述的测试脚本的分析方法。
本发明实施例中,采用分析多个待测试脚本,得到每个待测试脚本的脚本信息,其中,每个待测试脚本包括:多个待测试步骤,多个待测试步骤中至少包括:外部终端输入的指定测试步骤;采用预定义函数分析每个待测试步骤的步骤信息;执行指定测试步骤,得到步骤运行结果;基于脚本信息、步骤信息和步骤运行结果,生成脚本分析日志。在该实施例中,可以使用户直观的了解每次测试包含的测试脚本、测试步骤每个步骤下包含的子步骤,并且可独立查看每个测试步骤的运行结果及产生的测试日志,提高分析效率,从而解决相关技术中在脚本测试过程中,无法查看具体的测试步骤,且分析效率较低的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的测试脚本的分析方法的流程图;
图2是根据本发明实施例的一种可选的测试脚本的分析装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于本领域技术人员理解本发明,下面对本发明各实施例中涉及的部分术语或者名词做出解释:
Lucene,一套用于全文检索和搜寻的开源程序库,提供了一个简单却强大的应用程序接口,能够做全文索引和搜寻。本发明中,可以使用lucene的文件目录索引(FsDirectory)方式,实现日志的脚本步骤存储和查询,一次测试脚本集的全运行为一个任务,一个任务存储一个独立的索引目录。
文档Document:数据库中一条具体的记录;
字段Field:数据库中的每个字段;
目录对象Directory:物理存储位置(可使用RAM,FsDirectory,DB等方式)。
本发明可应用于各种自动化脚本测试应用或者自动化脚本测试系统中,能够提供一种自动化脚本测试日志存储及实时分步骤查询方式,例如,基于全文索引框架lucene实现脚本测试及实时分步骤查询。用户可直观的了解每次测试过程中:含哪些测试脚本、每个测试脚本下有哪些测试步骤,子步骤;每个测试步骤运行的测试结果;独立显示每个测试步骤产生的测试日志。同时,本发明实施的查询操作可在运行过程中实时进行,无需等到所有脚本/用例全部执行结束。每次测试作为一个独立的索引记录进行存储,其查询效率不受测试任务数累计的限制。本发明可以使测试人员对每个自动化测试脚本先有个预览,而后,结合上下文流程,对产生错误的失败位置进行快速定位,且查询速度快,不受累积多次测试的影响,由此大大提升自动化测试人员对自动化测试运行结果的分析效率。下面结合各个实施例对本发明进行详细说明。
根据本发明实施例,提供了一种测试脚本的分析方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的一种可选的测试脚本的分析方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102,分析多个待测试脚本,得到每个待测试脚本的脚本信息,其中,每个待测试脚本包括:多个待测试步骤,多个待测试步骤中至少包括:外部终端输入的指定测试步骤;
步骤S104,采用预定义函数分析每个待测试步骤的步骤信息;
步骤S106,执行指定测试步骤,得到步骤运行结果;
步骤S108,基于脚本信息、步骤信息和步骤运行结果,生成脚本分析日志。
通过上述步骤,可以分析多个待测试脚本,得到每个待测试脚本的脚本信息,其中,每个待测试脚本包括:多个待测试步骤,多个待测试步骤中至少包括:外部终端输入的指定测试步骤;采用预定义函数分析每个待测试步骤的步骤信息;执行指定测试步骤,得到步骤运行结果;基于脚本信息、步骤信息和步骤运行结果,生成脚本分析日志。在该实施例中,可以使用户直观的了解每次测试包含的测试脚本、测试步骤每个步骤下包含的子步骤,并且可独立查看每个测试步骤的运行结果及产生的测试日志,提高分析效率,从而解决相关技术中在脚本测试过程中,无法查看具体的测试步骤,且分析效率较低的技术问题。
本发明实施例,适用于如下自动化测试场景:
1)测试脚本众多,测试人员无法了解所有测试脚本的测试流程。
2)测试脚本流程复杂,一个测试脚本中包含多个测试步骤及子步骤。出错时难于快速定位问题。
3)测试脚本运行频率高。产生的测试日志庞大。
4)一次运行耗时较长,需要实时查看运行情况。
下面结合上述各实施步骤来详细说明。
步骤S102,分析多个待测试脚本,得到每个待测试脚本的脚本信息,其中,每个待测试脚本包括:多个待测试步骤,多个待测试步骤中至少包括:外部终端输入的指定测试步骤。
对于一个复杂的自动化测试脚本,其内部常常会划分为特定的几个测试步骤及子步骤。以防火墙自动化测试为例,大致可分为:
测试步骤1),连接防火墙,下发指令,进行网络配置和策略配置。
测试步骤2),操作PC进行协议模拟。包括:pc网络配置,协议服务端,客户端命令控制,从而构造流经防火墙的特定协议报文。
测试步骤3),防火墙日志匹配,检查匹配结果等。
一个测试步骤通常又会分成几个子步骤。
可选的,分析多个待测试脚本,得到每个待测试脚本的脚本信息的步骤,包括:接收脚本测试任务,其中,脚本测试任务中包括所有待测试脚本的脚本集合;采用目录索引算法依次调用脚本集合中的每个待测试脚本;分析每个待测试脚本的起始行,得到起始信息;分析每个待测试脚本的成功结束行和失败结束行,得到结束信息;在脚本分析日志中标记每个待测试脚本的起始信息和结束信息,得到脚本信息。
本发明实施例使用通用的测试框架来对测试脚本执行测试操作,测试框架调用测试脚本时,在测试日志中标记每个待测试脚本的起始和结束行。例如,设置:
每个脚本起始行(或开始行):[flag_scriptstart]scriptname;
每个脚本成功结束行:[flag_scriptend][success]scriptname;
每个脚本失败结束行:[flag_scriptend][fail]scriptname。
步骤S104,采用预定义函数分析每个待测试步骤的步骤信息。
在本发明实施例中,采用预定义函数分析每个待测试步骤的步骤信息的步骤,包括:对每个待测试脚本,在脚本执行框架中设置对应的第一预定义函数和第二预定义函数;采用第一预定义函数记录每个待测试步骤的起始信息;采用第二预定义函数记录每个待测试步骤的结束信息;基于每个待测试步骤的起始信息和结束信息,确定每个待测试步骤的步骤信息。
测试脚本中调用预定义函数,记录每个测试步骤的开始行(必选)与结束行(可选)。例如,对于一个测试步骤起始行,在脚本执行框架中定义特定的函数step_start,传递参数为步骤编号及步骤描述:Function step_start(stepidx,stepdesc);
函数中,实现日志打印格式为:[flag_step][stepidx]stepdesc。
如调用step_start(1,“验证http server是否连接成功”),则自动打印日志:[flag_step][Step1]验证http server是否连接成功。
对于每个测试步骤,判断其执行结果时,可使用封装好的assert函数进行成功失败判断。只需要传入判断条件creterial和错误提示failmsg。
Function assert(creterial,failmsg);
Assert成功时,根据框架记录的上一个步骤的stepidx,自动打印日志:
[flag_step][success][stepidx]执行成功。
对于assert失败的情况。自动打印日志行为:[flag_step][fail][stepidx]stepfail reason。
对于子步骤,要求测试步骤idx定义为x.x.x,如step1.1,step1.1.1。
步骤S106,执行指定测试步骤,得到步骤运行结果。
另一种可选的,执行指定测试步骤,得到步骤运行结果的步骤,包括:执行指定测试步骤的各个子步骤,并判断每个子步骤是否执行成功;若所有子步骤都执行成功,则确定指定测试步骤执行成功;若存在子步骤执行失败,则确定指定测试步骤执行失败,得到步骤运行结果。
为简化脚本日志编写,无需对每个测试步骤的结果进行assert判定。这样造成测试脚本过于冗长,因此,本发明实施例中可定义各个测试步骤运行结果判定标准如下:
如果缺少某个测试步骤的判定行([flag_step][success]或者[flag_step][fail]),则默认为该测试步骤执行成功。若测试步骤中的至少一个子步骤执行失败,则该子步骤的父步骤,父父步骤及以上均判定为失败。
步骤S108,基于脚本信息、步骤信息和步骤运行结果,生成脚本分析日志。
可选的,在生成脚本分析日志之后,分析方法还包括:接收第一测试展示指令;响应第一测试展示指令,在终端显示界面上的第一子页面展示已测试脚本以及已测试脚本的脚本运行结果;在终端显示界面上的第二子页面分层展示已测试脚本的步骤树,其中,步骤树包括:多个已测试步骤和每个已测试步骤包含的子步骤;在终端显示界面上的第三子页面展示已测试步骤的步骤运行结果和步骤执行流程。
分别通过不同的子页面分别展示测试脚本、测试步骤以及子步骤,例如,在左侧子页面展示失败运行的测试脚本/用例罗列;中间子页面分层展示脚本步骤和子步骤树形;失败步骤红色标记;右侧子页面独立显示为指定测试步骤的执行流程日志。
另一种可选的,在生成脚本分析日志之后,分析方法还包括:接收第二测试展示指令;响应第二测试展示指令,确定指定测试步骤的起始行和结束行;基于指定测试步骤的起始行和结束行,确定日志起始位置和日志结束位置;基于日志起始位置、日志结束位置以及指定测试步骤的步骤标识信息,在终端显示界面上展示指定测试步骤的日志信息。
脚本运行过程中,实时对测试日志进行文本解析和索引存储。
对于一次大规模的测试脚本(或测试用例)运行,有时耗时数天之久。为了方便在运行中,对已运行测试脚本进行及早分析,本发明实施例采用实时日志解析和索引存储方案,以一个测试脚本为单位,每个测试脚本执行完成后,提交一批document,本发明实施例通过如下表格1定义document的字段名、字段内容以及备注信息:
表1 document字段定义内容
Figure BDA0003004513320000091
Figure BDA0003004513320000101
对于运行中的任务日志文件,开启一个进程,逐行进行读取。读取过程中的信息,存储在如下定义的任务日志信息存储类TaskLogRealTimeBean中。每读取到一个脚本的结束定义行时([flag_scriptend]行),提交创建该脚本相关的所有document,并存入索引。
脚本开始行处理:对于匹配到[flag_scriptstart]的行。使用正则表达式匹配出脚本名,记录至TaskLogRealTimeBean的scriptname属性中。同时设置TaskLogRealTimeBean中的scriptstartseek值为该行起始位置在日志文件中的offset值。
脚本步骤行处理:对于匹配到[flag_step]开头的行(可能为步骤起始行,也可能是步骤结束行),将该行信息存储至SeekStepMap中,分别设置信息Key和信息Value,其中,Key为该行的起始offset值,Value为该行的内容。
脚本结束行处理:对于匹配到[flag_scriptend]的行。设置TaskLogRealTimeBean中的scriptEndSeek值该行的结束offset值。匹配出脚本运行结果值,设置到scriptRunResult中,而后将这个完整的TaskLogRealTimeBean提交进行document构建和索引存储。
可选的,本发明实施例还可以实现测试日志的实施搜索查看,例如,使用lucene文件索引进行脚本,脚本步骤,脚本日志搜索查看。
Document构建完成后,要实现搜索所有已完成运行的用例脚本,则在query中设置条件为doctype=script_type即可。从hit的document中取出scriptname,scriptrunresult,script日志开始startline和结束endline的值,即在日志文件中的偏移位置即可。
为实现步骤的树形查找显示,想要查看指定步骤的日志信息,则通过startline和endline值,通过seek到文件的offset起止位置,取出中间的文本内容即可。
本发明实施例,充分利用了lucene全文索引框架的文本索引独立存储,搜索查询效率高的特点,主要带来以下多个方面的有益效果:
1、支持在自动化测试结果中对每个脚本用例呈现其测试步骤及子步骤的树形分层显示。按需独立查看每个步骤/子步骤的测试流程日志。
2、对于脚本数量众多,功能复杂的情况,方便测试人员快速理解测试脚本的功能,从而有效的结合上下文去分析定位脚本失败的原因。
3、每次运行结果作为独立的索引的存储。运行结果的查询效率不受运行次数累加的影响。
4、索引存储相对于关系型数据库占用的空间和内存都较小。
5、可在测试运行过程中实时进行用例运行情况查询。
下面结合另一种可选的实施例来说明本发明。
实施例二
本发明实施例提供了测试脚本的分析装置,该分析装置中包含的各个实施单元对应于上述实施例一中的各个实施步骤。
图2是根据本发明实施例的一种可选的测试脚本的分析装置的示意图,如图2所示,该分析装置可以包括:第一分析单元21,第二分析单元23,执行单元25,生成单元27,其中,
第一分析单元21,用于分析多个待测试脚本,得到每个待测试脚本的脚本信息,其中,每个待测试脚本包括:多个待测试步骤,多个待测试步骤中至少包括:外部终端输入的指定测试步骤;
第二分析单元23,用于采用预定义函数分析每个待测试步骤的步骤信息;
执行单元25,用于执行指定测试步骤,得到步骤运行结果;
生成单元27,用于基于脚本信息、步骤信息和步骤运行结果,生成脚本分析日志。
上述测试脚本的分析装置,可以通过第一分析单元21分析多个待测试脚本,得到每个待测试脚本的脚本信息,其中,每个待测试脚本包括:多个待测试步骤,多个待测试步骤中至少包括:外部终端输入的指定测试步骤,通过第二分析单元23采用预定义函数分析每个待测试步骤的步骤信息;通过执行单元25执行指定测试步骤,得到步骤运行结果;通过生成单元27基于脚本信息、步骤信息和步骤运行结果,生成脚本分析日志。在该实施例中,可以使用户直观的了解每次测试包含的测试脚本、测试步骤每个步骤下包含的子步骤,并且可独立查看每个测试步骤的运行结果及产生的测试日志,提高分析效率,从而解决相关技术中在脚本测试过程中,无法查看具体的测试步骤,且分析效率较低的技术问题。
可选的,第一分析单元包括:第一接收模块,用于接收脚本测试任务,其中,脚本测试任务中包括所有待测试脚本的脚本集合;第一调用模块,用于采用目录索引算法依次调用脚本集合中的每个待测试脚本;第一分析模块,用于分析每个待测试脚本的起始行,得到起始信息;第二分析模块,用于分析每个待测试脚本的成功结束行和失败结束行,得到结束信息;标记模块,用于在脚本分析日志中标记每个待测试脚本的起始信息和结束信息,得到脚本信息。
可选的,第二分析单元包括:第一设置模块,用于对每个待测试脚本,在脚本执行框架中设置对应的第一预定义函数和第二预定义函数;第一记录模块,用于采用第一预定义函数记录每个待测试步骤的起始信息;第二记录模块,用于采用第二预定义函数记录每个待测试步骤的结束信息;第一确定模块,用于基于每个待测试步骤的起始信息和结束信息,确定每个待测试步骤的步骤信息。
可选的,执行单元包括:第一执行模块,用于执行指定测试步骤的各个子步骤,并判断每个子步骤是否执行成功;第二确定模块,用于在所有子步骤都执行成功,则确定指定测试步骤执行成功;第三确定模块,用于在存在子步骤执行失败,则确定指定测试步骤执行失败,得到步骤运行结果。
可选的,分析装置还包括:第一接收单元,用于在生成脚本分析日志之后,接收第一测试展示指令;第一响应单元,用于响应第一测试展示指令,在终端显示界面上的第一子页面展示已测试脚本以及已测试脚本的脚本运行结果;第一展示单元,用于在终端显示界面上的第二子页面分层展示已测试脚本的步骤树,其中,步骤树包括:多个已测试步骤和每个已测试步骤包含的子步骤;第二展示单元,用于在终端显示界面上的第三子页面展示已测试步骤的步骤运行结果和步骤执行流程。
可选的,分析装置还包括:第二接收单元,用于在生成脚本分析日志之后,接收第二测试展示指令;第二响应单元,用于响应第二测试展示指令,确定指定测试步骤的起始行和结束行;第四确定模块,用于基于指定测试步骤的起始行和结束行,确定日志起始位置和日志结束位置;第三展示单元,用于基于日志起始位置、日志结束位置以及指定测试步骤的步骤标识信息,在终端显示界面上展示指定测试步骤的日志信息。
上述的测试脚本的分析装置还可以包括处理器和存储器,上述第一分析单元21,第二分析单元23,执行单元25,生成单元27等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
上述处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来基于脚本信息、步骤信息和步骤运行结果,生成脚本分析日志。
上述存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
根据本发明实施例的另一方面,还提供了一种电子设备,包括:处理器;以及存储器,用于存储处理器的可执行指令;其中,处理器配置为经由执行可执行指令来执行上述任意一项的测试脚本的分析方法。
根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的计算机程序,其中,在计算机程序运行时控制计算机可读存储介质所在设备执行上述任意一项的测试脚本的分析方法。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:分析多个待测试脚本,得到每个待测试脚本的脚本信息,其中,每个待测试脚本包括:多个待测试步骤,多个待测试步骤中至少包括:外部终端输入的指定测试步骤;采用预定义函数分析每个待测试步骤的步骤信息;执行指定测试步骤,得到步骤运行结果;基于脚本信息、步骤信息和步骤运行结果,生成脚本分析日志。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种测试脚本的分析方法,其特征在于,包括:
分析多个待测试脚本,得到每个所述待测试脚本的脚本信息,其中,每个所述待测试脚本包括:多个待测试步骤,所述多个待测试步骤中至少包括:外部终端输入的指定测试步骤;
采用预定义函数分析每个所述待测试步骤的步骤信息;
执行所述指定测试步骤,得到步骤运行结果;
基于所述脚本信息、所述步骤信息和所述步骤运行结果,生成脚本分析日志。
2.根据权利要求1所述的分析方法,其特征在于,分析多个待测试脚本,得到每个所述待测试脚本的脚本信息的步骤,包括:
接收脚本测试任务,其中,所述脚本测试任务中包括所有待测试脚本的脚本集合;
采用目录索引算法依次调用所述脚本集合中的每个所述待测试脚本;
分析每个所述待测试脚本的起始行,得到起始信息;
分析每个所述待测试脚本的成功结束行和失败结束行,得到结束信息;
在脚本分析日志中标记每个所述待测试脚本的起始信息和结束信息,得到所述脚本信息。
3.根据权利要求1所述的分析方法,其特征在于,采用预定义函数分析每个所述待测试步骤的步骤信息的步骤,包括:
对每个所述待测试脚本,在脚本执行框架中设置对应的第一预定义函数和第二预定义函数;
采用所述第一预定义函数记录每个所述待测试步骤的起始信息;
采用所述第二预定义函数记录每个所述待测试步骤的结束信息;
基于每个所述待测试步骤的起始信息和结束信息,确定每个所述待测试步骤的步骤信息。
4.根据权利要求1所述的分析方法,其特征在于,执行所述指定测试步骤,得到步骤运行结果的步骤,包括:
执行所述指定测试步骤的各个子步骤,并判断每个所述子步骤是否执行成功;
若所有子步骤都执行成功,则确定所述指定测试步骤执行成功;
若存在子步骤执行失败,则确定所述指定测试步骤执行失败,得到步骤运行结果。
5.根据权利要求1所述的分析方法,其特征在于,在生成脚本分析日志之后,所述分析方法还包括:
接收第一测试展示指令;
响应所述第一测试展示指令,在终端显示界面上的第一子页面展示已测试脚本以及所述已测试脚本的脚本运行结果;
在终端显示界面上的第二子页面分层展示所述已测试脚本的步骤树,其中,所述步骤树包括:多个已测试步骤和每个所述已测试步骤包含的子步骤;
在终端显示界面上的第三子页面展示所述已测试步骤的步骤运行结果和步骤执行流程。
6.根据权利要求1所述的分析方法,其特征在于,在生成脚本分析日志之后,所述分析方法还包括:
接收第二测试展示指令;
响应所述第二测试展示指令,确定所述指定测试步骤的起始行和结束行;
基于所述指定测试步骤的起始行和结束行,确定日志起始位置和日志结束位置;
基于所述日志起始位置、日志结束位置以及所述指定测试步骤的步骤标识信息,在终端显示界面上展示所述指定测试步骤的日志信息。
7.一种测试脚本的分析装置,其特征在于,包括:
第一分析单元,用于分析多个待测试脚本,得到每个所述待测试脚本的脚本信息,其中,每个所述待测试脚本包括:多个待测试步骤,所述多个待测试步骤中至少包括:外部终端输入的指定测试步骤;
第二分析单元,用于采用预定义函数分析每个所述待测试步骤的步骤信息;
执行单元,用于执行所述指定测试步骤,得到步骤运行结果;
生成单元,用于基于所述脚本信息、所述步骤信息和所述步骤运行结果,生成脚本分析日志。
8.根据权利要求7所述的分析装置,其特征在于,所述第一分析单元包括:
第一接收模块,用于接收脚本测试任务,其中,所述脚本测试任务中包括所有待测试脚本的脚本集合;
第一调用模块,用于采用目录索引算法依次调用所述脚本集合中的每个所述待测试脚本;
第一分析模块,用于分析每个所述待测试脚本的起始行,得到起始信息;
第二分析模块,用于分析每个所述待测试脚本的成功结束行和失败结束行,得到结束信息;
标记模块,用于在脚本分析日志中标记每个所述待测试脚本的起始信息和结束信息,得到所述脚本信息。
9.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至6中任意一项所述的测试脚本的分析方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行权利要求1至6中任意一项所述的测试脚本的分析方法。
CN202110358362.8A 2021-04-01 2021-04-01 测试脚本的分析方法及分析装置、电子设备 Active CN113094265B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110358362.8A CN113094265B (zh) 2021-04-01 2021-04-01 测试脚本的分析方法及分析装置、电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110358362.8A CN113094265B (zh) 2021-04-01 2021-04-01 测试脚本的分析方法及分析装置、电子设备

Publications (2)

Publication Number Publication Date
CN113094265A true CN113094265A (zh) 2021-07-09
CN113094265B CN113094265B (zh) 2022-09-09

Family

ID=76672867

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110358362.8A Active CN113094265B (zh) 2021-04-01 2021-04-01 测试脚本的分析方法及分析装置、电子设备

Country Status (1)

Country Link
CN (1) CN113094265B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102831058A (zh) * 2012-08-17 2012-12-19 北京星网锐捷网络技术有限公司 一种测试方法和装置
CN109344066A (zh) * 2018-09-29 2019-02-15 深圳市奇林软件有限公司 一种浏览器页面的测试方法、系统及终端
CN111930456A (zh) * 2020-08-06 2020-11-13 Oppo广东移动通信有限公司 一种测试日志的显示方法及电子设备、存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102831058A (zh) * 2012-08-17 2012-12-19 北京星网锐捷网络技术有限公司 一种测试方法和装置
CN109344066A (zh) * 2018-09-29 2019-02-15 深圳市奇林软件有限公司 一种浏览器页面的测试方法、系统及终端
CN111930456A (zh) * 2020-08-06 2020-11-13 Oppo广东移动通信有限公司 一种测试日志的显示方法及电子设备、存储介质

Also Published As

Publication number Publication date
CN113094265B (zh) 2022-09-09

Similar Documents

Publication Publication Date Title
CN106844217B (zh) 对应用的控件进行埋点的方法及装置、可读存储介质
CN110928772B (zh) 一种测试方法及装置
US8312322B2 (en) System for automated generation of computer test procedures
CN107665171B (zh) 自动回归测试方法及装置
WO2018120721A1 (zh) 用户界面的测试方法、系统、电子装置及计算机可读存储介质
CN111552633A (zh) 接口的异常调用测试方法、装置、计算机设备及存储介质
US10169218B2 (en) Method for automatically validating data against a predefined data specification
US11436133B2 (en) Comparable user interface object identifications
CN105468511A (zh) 网页脚本错误定位方法及装置
WO2021142771A1 (zh) 服务工单生成方法、装置及系统
CN114897296A (zh) Rpa流程标注方法、执行过程回放方法及存储介质
WO2007118271A1 (en) A method and system and product for conditioning software
CN117194255A (zh) 测试数据维护方法、装置、设备及存储介质
CN111026604B (zh) 一种日志文件解析方法及装置
WO2012012905A1 (en) Systems and methods of rapid business discovery and transformation of business processes
CN113094265B (zh) 测试脚本的分析方法及分析装置、电子设备
CN106250401A (zh) 一种回放原始通讯数据的装置和方法
CN107885648B (zh) 一种生成测试报告的方法和装置
CN116069628A (zh) 一种智能处置的软件自动化回归测试方法、系统及设备
CN112597040B (zh) 一种界面自动化测试方法、装置及电子设备
US10162849B1 (en) System, method, and computer program for automatic database validation associated with a software test
CN115310011A (zh) 页面展示方法、系统以及可读存储介质
CN114064510A (zh) 功能测试方法、装置、电子设备和存储介质
CN113268412B (zh) Web系统测试用例录制的控件解析方法、装置、设备和介质
CN115470127B (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