CN113010417A - 基于自动化测试的脚本执行方法及装置 - Google Patents
基于自动化测试的脚本执行方法及装置 Download PDFInfo
- Publication number
- CN113010417A CN113010417A CN202110228103.3A CN202110228103A CN113010417A CN 113010417 A CN113010417 A CN 113010417A CN 202110228103 A CN202110228103 A CN 202110228103A CN 113010417 A CN113010417 A CN 113010417A
- Authority
- CN
- China
- Prior art keywords
- execution
- machine
- test
- script
- 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.)
- Pending
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 254
- 238000013515 script Methods 0.000 title claims abstract description 196
- 238000000034 method Methods 0.000 title claims abstract description 80
- 230000002159 abnormal effect Effects 0.000 claims description 59
- 238000004590 computer program Methods 0.000 claims description 12
- 238000001514 detection method Methods 0.000 abstract description 12
- 238000013473 artificial intelligence Methods 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 26
- 238000012423 maintenance Methods 0.000 description 24
- 238000010586 diagram Methods 0.000 description 17
- 238000012545 processing Methods 0.000 description 17
- 238000012544 monitoring process Methods 0.000 description 15
- 230000007613 environmental effect Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 230000005856 abnormality Effects 0.000 description 7
- 238000011084 recovery Methods 0.000 description 7
- 238000013024 troubleshooting Methods 0.000 description 7
- 238000003745 diagnosis Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 238000011835 investigation Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 3
- 238000000605 extraction Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 238000010998 test method Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
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/3688—Test 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
技术领域
本发明属于人工智能技术领域,尤其是涉及软件自动化测试技术领域,具体涉及一种基于自动化测试的脚本执行方法及装置。
背景技术
自动化测试作为测试领域的重要测试方式之一,在软件研发过程中的起到的作用越来越明显,随着自动化测试方法论及各类自动化测试工具的逐步成熟,自动化测试应用的范围及应用的场景也越来越广。
在现有技术中,在进行自动化测试的过程中,每个项目团队均会采用自研或者引入开源、商用的自动化测试框架或者工具来开展所负责系统的自动化测试工作。其目的是通过自动化测试框架或者工具来批量调度执行自动化测试脚本,测试人员通过对自动化测试脚本的执行结果及执行日志进行分析判断,确认该自动化测试脚本对应系统功能的验证情况。但随着自动化测试脚本数量及应用范围的拓展,在测试效率提升的同时,自动化测试脚本的执行任务数量,执行频度、执行脚本所需执行机运行环境的多样性均成规模的增加,测试人员对自动化测试任务结果及日志的分析工作量也随之大幅提升。
具体的,被测环境的服务状态、自动化测试脚本执行机的设备状态、自动化测试脚本任务执行的状态等均会对自动化测试工作产生了较大的影响。尤其在进行UI界面做端到端自动化测试的环节中,因为测试流程长,测试执行步骤多,涉及到的影响因素也多,这种影响显得尤为明显。
发明内容
本发明属于人工智能技术领域,针对现有技术中的问题,本发明提供的基于自动化测试的脚本执行方法及装置,通过对被测系统服务状态及执行机运行环境的智能检测,解决了因测试环境存在问题但执行调度模块仍然提交自动化测试脚本执行,从而导致任务执行失败及无效执行的问题,极大节约了执行环境资源及测试数据资源。
为解决上述技术问题,本发明提供以下技术方案:
第一方面,本发明提供一种基于自动化测试的脚本执行方法,包括:
若判断获知执行机可用,则生成执行机可用结果;
若根据所述执行机可用结果判断所述执行机的执行环境正常,则在所述执行机上执行测试脚本。
一实施例中,所述若判断获知执行机可用,则生成执行机可用结果,包括:
检索所述执行机信息表,判断所述执行机是否可用;
所述执行机信息表内容包括:执行机id、执行机名、上次心跳时间、执行机版本号、测试工具、测试工具版本、无法访问的环境、异常原因、异常描述以及当前执行任务id。
一实施例中,所述若根据所述执行机可用结果判断所述执行机的执行环境正常,则在所述执行机上执行测试脚本,包括:
当所述执行机可用结果为所述执行机可用时,判断所述执行机的执行环境是否异常;
如果正常,在所述执行机上执行所述测试脚本。
一实施例中,所述判断所述执行机的执行环境是否异常,包括:
判断所述测试脚本与所述执行环境是否匹配;
当所述测试脚本与所述执行环境匹配时,利用心跳方法,判断所述执行机网络状态是否连通;
一实施例中,所述判断所述测试脚本与所述执行环境是否匹配包括:
根据所述测试脚本确定所述测试脚本的工具版本号;
将所述工具版本号与所述测试工具版本进行对比,如果不一致,升级所述工具版本至与所述测试工具版本号对应的版本。
一实施例中,基于自动化测试的脚本执行方法还包括:
生成所述测试脚本的执行日志;
将所述执行日志与预生成的异常日志字典表进行对比,以确定由所述测试脚本漏洞所造成的异常执行,并推送所述异常执行发送给测试人员。
第二方面,本发明提供一种基于自动化测试的脚本执行装置,包括:
执行机可用判断单元,用于若判断获知执行机可用,则生成执行机可用结果;
环境异常判断单元,用于若根据所述执行机可用结果判断所述执行机的执行环境正常,则在所述执行机上执行测试脚本。
一实施例中,所述执行机可用判断单元包括:
信息表检索模块,用于检索所述执行机信息表,判断所述执行机是否可用;
所述执行机信息表内容包括:执行机id、执行机名、上次心跳时间、执行机版本号、测试工具、测试工具版本、无法访问的环境、异常原因、异常描述以及当前执行任务id。
一实施例中,所述环境异常判断单元包括:
环境异常判断模块,用于当所述执行机可用结果为所述执行机可用时,判断所述执行机的执行环境是否异常;
测试脚本执行模块,用于在所述执行机上执行所述测试脚本。
一实施例中,所述环境异常判断模块包括:
环境版本匹配判断模块,用于判断所述测试脚本与所述执行环境是否匹配;
网络状态判断模块,用于当所述测试脚本与所述执行环境匹配时,利用心跳方法,判断所述执行机网络状态是否连通。
一实施例中,于自动化测试的脚本执行装置还包括:
信息写入单元,用于将所述执行机网络状态是否连通、是否处于可工作的状态以及自动化工具版本信息写入所述执行机信息表。
一实施例中,所述环境版本匹配判断模块包括:
工具版本号确定模块,用于根据所述测试脚本确定所述测试脚本的工具版本号;
版本对比模块,用于将所述工具版本号与所述测试工具版本进行对比,如果不一致,升级所述工具版本至与所述测试工具版本号对应的版本。
一实施例中,所述版本号确定模块包括:
任务属性获取模块,用于获取测试任务的任务属性;
对象特征确定模块,用于根据所述任务属性确定任务对象特征以及所述任务对象包含的信息类型;
脚本确定模块,用于根据所述任务对象特征以及所述信息类型确定测试脚本。
一实施例中,基于自动化测试的脚本执行装置还包括:
日志生成单元,用于生成所述测试脚本的执行日志;
异常执行确定单元,用于将所述执行日志与预生成的异常日志字典表进行对比,以确定由所述测试脚本漏洞所造成的异常执行,并推送所述异常执行发送给测试人员。
第三方面,本发明提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现基于自动化测试的脚本执行方法的步骤。
第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现基于自动化测试的脚本执行方法的步骤。
从上述描述可知,本发明实施例提供的基于自动化测试的脚本执行方法及装置,首先若判断获知执行机可用,则生成执行机可用结果;然后若根据所述执行机可用结果判断所述执行机的执行环境正常,则在所述执行机上执行测试脚本。一方面,本发明解决了现有自动化测试执行过程中,无法及时发现被测系统环境、脚本执行机运行环境所存在问题,该问题可导致自动化测试脚本执行成功率低,问题排查工作量大以及问题发现时效性低的难题,通过增加自动化测试脚本执行环境及状态进行诊断监测实现对被测系统环境、执行机运行环境、执行任务运行状态等进行监控和诊断,并进行相关的智能处理,极大降低被测环境服务不可用对自动化测试脚本执行所产生的影响。
另一方面,本发明在自动化脚本任务执行失败时能够自动探测被测系统的服务状态,对执行日志进行智能处理,并将相关信息反馈给执行调度模块。在自动化脚本执行的过程中,也通过对执行机环境及任务执行状态的监控,实现对执行机环境或者任务执行状态异常时的自动发现和自动恢复机制,提高执行机运维的自动化能力及自动化任务执行的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的实施例中基于自动化测试的脚本执行方法流程示意图一;
图2为本发明的实施例中步骤100的流程示意图;
图3为本发明的实施例中步骤200的流程示意图;
图4为本发明的实施例中步骤201的流程示意图;
图5为本发明的实施例中执行机环境自测方法流程示意图;
图6为本发明的实施例中步骤2011的流程示意图;
图7为本发明的实施例中基于自动化测试的脚本执行方法流程示意图二;
图8为本发明的具体应用实例中基于自动化测试的脚本执行装置的结构框图以及运行流程图;
图9为本发明的具体应用实例中被测环境检测模块的运行流程示意图;
图10为本发明的具体应用实例中执行结果模块的运行流程示意图;
图11为本发明的实施例中基于自动化测试的脚本执行装置的结构框图一;
图12为本发明的实施例中执行机可用判断单元结构示意图;
图13为本发明的实施例中环境异常判断单元结构示意图;
图14为本发明的实施例中环境异常判断模块结构示意图;
图15为本发明的实施例中环境版本匹配判断模块结构示意图;
图16为本发明的实施例中基于自动化测试的脚本执行装置的结构框图二;
图17为本发明的实施例中的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
本发明的实施例提供一种基于自动化测试的脚本执行方法的具体实施方式,参见图1,该方法具体包括如下内容:
步骤100:若判断获知执行机可用,则生成执行机可用结果;
执行机可用结果中的参数包括:执行机id、执行机版本号、测试工具、测试工具版本以及当前执行任务id;。现有技术中,自动化测试框架/工具均没有对于执行机状态进行监控的模块,故无法及时获取到有问题的执行机信息,只能在测试人员对自动化脚本执行失败原因进行分析时,通过对脚本执行日志及对应执行机状态排查才能发现,发现后再通过手工重启或者环境重置等的方式来恢复执行机的状态,执行机环境运维的及时性和维护效率都较低。步骤100在实施时,通过检索执行机信息表,来判断每台执行机是否可用。
步骤200:若根据所述执行机可用结果判断所述执行机的执行环境正常,则在所述执行机上执行测试脚本。
可以理解的是,自动化测试脚本在执行时对于被测系统环境的服务状态依赖性非常高,如果自动化测试脚本在执行时,被测环境服务不可用,那么自动化测试脚本的执行结果将无法完成对该脚本对应的测试案例测试点的验证意图。步骤200在实施时,具体地,当执行机可用结果为对应的执行机可用时,则进一步依据可用结果中的相关参数(执行机信息表)判断执行机的执行环境正常,如果执行环境正常,则在执行机上执行测试脚本。
进一步地,被测环境不可用通常会由于两种原因导致,第一种为环境处于维护期,第二种为环境出现异常。但现阶段自动化测试工具在脚本执行前没有对被测环境服务状态进行诊断检查的模块,如果要实现对测试环境服务状态检查只能通过脚本编写人员在每个脚本中编写对应的环境检查语句代码来进行异常的分支处理。因编写该类自动化测试脚本对于脚本编写人员有一定的工作技能及工作量要求,故推广难度大,所以只有比例非常少量的自动化测试脚本中有这类的异常处理分支代码,当自动化测试脚本执行时出现被测环境不可用的情况将会使大量的自动化脚本执行任务受到影响,这些任务执行将变为无效执行,浪费宝贵的执行机资源以及准备好的测试数据,当遇到多个不同系统中进行串接测试的情况时,其中某个系统被测环境不可用后执行中断,因为整个业务场景没有能够完成闭环,也可能会给其他系统产生脏数据。
步骤200在实施时,可以为当步骤100的判断结果为执行机为可用时,在判断执行机的执行环境是否正常,以免将任务分配到不可用的执行机上。
从上述描述可知,本发明实施例提供的基于自动化测试的脚本执行方法,首先首先若判断获知执行机可用,则生成执行机可用结果;然后若根据执行机可用结果判断执行机的执行环境正常,则在执行机上执行测试脚本。一方面,本发明实现了自动化测试脚本任务启动执行前对于被测系统服务状态及执行机运行环境的智能检测,另外,通过本发明测试人员可以通过筛选功能剔除掉由于测试环境问题导致的执行失败任务。不再需要对全部的任务执行日志进行分析排查,大大减少了测试人员对于自动化测试任务执行结果的分析排查工作量。通过本发明实现了对自动化测试执行机及自动化测试执行任务状态的自动化智能监控,主动发现问题,及时发现隐患,并依据预先设置好的诊断处理方案进行执行机的自动化运维,极大提高了自动化测试执行机的环境运维效率及自动化测试执行任务的实施效率。
另一方面,本发明在自动化脚本任务执行失败时能够自动探测被测系统的服务状态,对执行日志进行智能处理,并将相关信息反馈给执行调度模块。在自动化脚本执行的过程中,也通过对执行机环境及任务执行状态的监控,实现对执行机环境或者任务执行状态异常时的自动发现和自动恢复机制,提高执行机运维的自动化能力及自动化任务执行的效率。
一实施例中,参见图2,步骤100进一步包括:
步骤101:检索所述执行机信息表,判断所述执行机是否可用;
执行机信息表内容包括:执行机id、执行机名、上次心跳时间、执行机版本号、测试工具、测试工具版本、无法访问的环境、异常原因、异常描述以及当前执行任务id。具体地,执行机信息表字段及字段说明如表1所示。在表1中,一台执行机对应一条记录,各个监测模块会将各自监控的结果写入到执行机状态表中,在检测过程中,遇到异常情况时,将此时的执行机状态和问题更新到执行机信息表中。步骤101在实施时,轮询遍历执行机信息表,以表中记录“异常原因”字段是否有值作为执行机是否异常的依据,即轮询执行机中对应表1中的参数,并判断该参数是否有值(例如1为异常,0为正常),并以此来判断执行机是否可用,并获知不可用的原因。把“异常原因”有值的记录对应的“执行机名”放到异常队列中,等待执行机状态恢复处理,当执行机状态恢复后,再将恢复正常状态的执行机信息发送给调度模块,避免调度模块将任务分配到不可用的执行机上。
表1执行机信息表
一实施例中,参见图3,步骤200进一步包括:
步骤201:当所述执行机可用结果为所述执行机可用时,判断所述执行机的执行环境是否异常;
步骤202:如果正常,在所述执行机上执行所述测试脚本。
在步骤201以及步骤202中,可以理解的是,随着自动化测试脚本执行任务的增多,测试人员对于自动化测试脚本执行结果及执行日志分析和排查的工作量也随之加大,在自动化测试脚本执行的过程中,当被测环境或者是自动化测试脚本执行机出现问题时,在此期间所执行的自动化测试脚本将全部受到影响,而且,在界面UI端到端自动化测试的过程中,脚本执行失败大部分也是由于被测环境不稳定的原因所导致的。现有的自动化测试框架/工具在脚本任务执行失败时,执行日志中只能够反馈出该脚本代码某个步骤运行失败,无法反馈出执行失败时当时执行机环境或者是被测系统的服务状态,导致测试人员需要对执行失败的自动化测试脚本执行日志进行失败原因分析的工作难度加大,测试人员对执行结果排查的工作量大,工作效率低。
一实施例中,参见图4,步骤201进一步包括:
步骤2011:判断所述测试脚本与所述执行环境是否匹配;
在本实施例中,执行环境异常包括测试脚本与执行环境不匹配以及执行机网络状态不连通。
具体地,判断该执行机上的被测系统是否需要升级。即检测测试脚本的版本是否与执行环境匹配,可以理解的是,特定的执行环境(例如不同版本的执行环境)需要匹配特定版本的测试脚本,当测试脚本版本与执行环境版本不匹配时,即测试脚本与所述执行环境不匹配时,需要对测试脚本进行升级。
步骤2012:当所述测试脚本与所述执行环境匹配时,利用心跳方法,判断所述执行机网络状态是否连通。
如图5所示,当测试脚本与执行环境匹配时,通过本机的心跳检测,每5秒获取当前执行机的状态,判断执行机的网络状态是否连通,是否处于可以工作的状态,以及自动化工具的版本信息,并将这些状态信息同步写入执行机信息表。
一实施例中,参见图6,步骤2011进一步包括:
步骤20111:根据所述测试脚本确定所述测试脚本的工具版本号;
步骤20112:将所述工具版本号与所述测试工具版本进行对比,如果不一致,升级所述工具版本至与所述测试工具版本号对应的版本。
在步骤20111以及步骤20112中,首先获取测试任务的任务属性,该任务属性中包括任务对象的特征和任务对象可以包含的信息类型,例如:测试工具版本号(测试脚本版本号),首先将任务属性中拆分出测试工具版本号和执行机信息表中测试工具版本相比较,若两值不相等,需要将测试工具调整到任务属性中对应的版本;如果两值相等,表明测试工具不用升级。至此,被测环境检测模块没有检测到异常,执行机可以执行相关任务。
一实施例中,步骤20111进一步包括以下步骤:
步骤201111:获取测试任务的任务属性;
步骤201112:根据所述任务属性确定任务对象特征以及所述任务对象包含的信息类型;
步骤201113:根据所述任务对象特征以及所述信息类型确定测试脚本。
一实施例中,参见图7,基于自动化测试的脚本执行方法还包括:
步骤300:生成所述测试脚本的执行日志;
步骤400:将所述执行日志与预生成的异常日志字典表进行对比,以确定由所述测试脚本漏洞所造成的异常执行,并推送所述异常执行发送给测试人员。
在步骤300以及步骤400中,自动化测试脚本需要由对应运行环境的自动化测试执行机来执行,随着自动化脚本执行任务的增加,对应的执行机环境套数也在不断地增长,当某台执行机环境出现异常时,将会影响到该台设备上运行的所有自动化测试脚本的执行结果。目前业界主流的自动化测试框架/工具没有对于执行机状态进行监控的模块,故无法及时获取到有问题的执行机信息,只能在测试人员对自动化脚本执行失败原因进行分析时,通过对脚本执行日志及对应执行机状态排查才能发现,发现后再通过手工重启或者环境重置等的方式来恢复执行机的状态,执行机环境运维的及时性和维护效率都较低。
另一方面,自动化测试脚本执行状态异常问题发现效率不高,在现有的自动化测试框架或者工具中,自动化测试脚本一般由执行调度模块来负责进行调度分配,发送到执行机进行执行,执行机执行结束后,执行调度模块再获取对应的执行结果及日志进行处理。在该流程中,执行调度模块发送任务到执行机后,直到执行调度模块从执行机获取任务执行结果及日志的中间环节均由执行机来承担。
在自动化脚本运行的过程中,当执行机环境状态自检信息反馈正常,但某个执行任务在执行过程中由于某种特殊因素异常卡住后,该任务会把所在的执行机堵塞且长时间不能反馈执行结果。目前该种情况只能通过人工对执行机巡检过程中才能发现,问题发现及处理的时效性低下。由于上述几个问题的存在,使得自动化测试执行的成功率不高,问题发现及排查的及时性低,而且,测试人员对于自动化测试脚本的执行日志和结果排查分析的工作量大且效率低。
具体地,在脚本执行过程中,对于执行失败的脚本,从诊断信息监控中心中获取对应执行任务ID对应执行机的异常信息,并且将相应的异常信息追加写入到本次任务的执行日志中。在脚本执行结束后调用,对执行的日志结果进行分析,通过对执行日志的结构性遍历或者关键字提取来判断任务是否成功执行,成功执行的任务直接将任务执行状态记为成功,对执行失败的任务进行更深入的失败原因进行分类标记:
(1)对执行失败的任务中没有异常信息的,将该次任务失败类型标记为业务务流程失败,这类任务由于测试流程中出现bug造成了执行失败,是测试人员真正需要关注的任务。
(2)对执行失败的任务中有异常信息,并且异常信息是异常日志字典表(参见表2)中已经定义过的,将该次任务失败类型标记为已知异常影响。业务人员不需要对该类任务的失败原因进行分析。
(3)对执行失败的任务中有异常信息,但异常信息是异常日志字典表中没有定义过的,将该次任务失败类型标记为存疑,业务人员需要关注本次执行失败原因。
(4)若执行时间不在被测系统的环境维护期内,把这类任务的失败类型标记成环境出错,需要维护环境的人员去排除失败的原因。
同时,对所有存疑类的执行任务日志中错误日志信息进行类同性比对,将错误信息一样的执行任务进行归类统计,从发生时间、被测系统、脚本编制人等维度形成存疑类执行任务分析报告,供测试人员下载使用。
表2异常日志字典表
为进一步地说明本方案,本发明还提供基于自动化测试的脚本执行方法的具体应用实例,具体包括如下内容。
本具体应用实例还提供一种基于自动化测试的脚本执行装置,该装置包括:诊断信息监控中心、异常处理模块、执行机环境自测模块、被测环境检查模块、任务运行状态检查模块及执行结果模块组成,装置总结构图参见图8,具体地:
诊断信息监控中心是该装置的决策信息汇总模块,通过检索执行机信息表,来判断每台执行机是否可用。执行机信息表字段及字段说明如下表所示。在执行机信息表中,一台执行机对应一条记录,各个监测模块会将各自监控的结果写入到执行机状态表中,各模块在检测过程中,遇到异常情况时,将此时的执行机状态和问题更新到执行机信息表中。诊断信息监控中心轮询遍历执行机信息表,以表中记录“异常原因”字段是否有值作为执行机是否异常的依据。监控中心把“异常原因”有值的记录对应的“执行机名”放到异常队列中,等待执行机状态恢复模块处理,当执行机状态恢复后,诊断信息监控中心再将恢复正常状态的执行机信息发送给调度模块,避免调度模块将任务分配到不可用的执行机上。
执行机环境自测模块:在执行自动化脚本的终端上,执行脚本前检查执行机本身的环境是否就绪,如有问题则记录问题到执行机信息表中,通过监控中心发送给执行机状态恢复模块进行处理。
被测环境检测模块:该模块在脚本运行前调用,提前对运行脚本的被测环境进行检测,确保当前执行机访问被测环境没有问题后,执行机再运行脚本,参见图9,具体流程如下:
(1)该模块先到执行机信息表中查询对应记录是否存在异常信息,如果存在,该模块不进行后续操作,等待异常处理。若不存在,该模块继续从当前要执行的任务属性中得到被测环境的信息(如被测环境的域名、被测系统的版本号等),依次进行后续判断。
(2)判断该执行机是否能成功访问被测环境,若无法访问,该模块将根据被测系统的信息去查询服务环境维护期表。服务环境维护期表如表3所述,它记录了各种应用各种环境的维护时间。若当前时间不在被测系统的环境维护期内,该模块将被测环境的信息写入到执行机信息表中该执行机记录对应的“无法访问的环境”字段,等待后续人工判断是执行机无法访问被测系统(比如防火墙不通),还是被测系统内部存在错误。如果当前时间在被测系统的环境维护期内,则挂起该任务,等待维护期过后,再重新执行。若执行机可以访问被测环境,则进行一下步判断。
表3服务环境维护期表
应用名称 | 环境 | 维护期 |
XXX应用 | 测试环境(一套) | xx年-xx月-xx日18:00-20:00 |
XXX应用 | 测试环境(二套) | xx年-xx月-xx日12:00-14:00 |
(3)判断该执行机上的被测系统是否需要升级。该模块将任务属性中拆分出测试工具版本号和执行机属性表中测试工具版本相比较,若两值不相等,需要将测试工具调整到任务属性中对应的版本;如果两值相等,表明测试工具不用升级。至此,被测环境检测模块没有检测到异常,执行机可以执行相关任务。
任务运行状态检测模块:该模块包含任务超时机制的判断,判断逻辑是从自动化脚本中根据相应的脚本类型获取所有的延时语句,得到脚本中的延时时间总和,与该脚本对应工具设置的默认超时时间相加,即为任务的超时时间阈值。当任务从开始执行时间算起,经过该超时时间阈值,仍没有执行结束,则认为该任务执行超时。
另外,该模块对任务运行时的执行机环境进行监控,包括CPU利用率、响应时间,内存占用等。当任务运行时执行机出现操作系统上的瓶颈,则将异常信息更新到执行机信息表中。例如,执行脚本时CPU使用率在95%以上持续三分钟,则记录异常原因为“执行机无响应”;如执行机脚本时IE浏览器出现未响应或停止工作的提示,则记录异常原因为“浏览器停止工作”。
执行机状态恢复模块:该模块用来接收诊断信息监控中心发送的待处理执行机队列信息,并且将执行机按照预设的处理动作进行状态恢复。具体可处理的异常类别包括网络异常,工具版本不符,任务执行超时,执行机无响应,浏览器停止工作等。
异常日志处理模块:该模块负责在脚本执行过程中,对于执行失败的脚本,从诊断信息监控中心中获取对应执行任务ID对应执行机的异常信息,并且将相应的异常信息追加写入到本次任务的执行日志中。
执行结果分析模块:该模块在脚本执行结束后调用,对执行的日志结果进行分析,该模块通过对执行日志的结构性遍历或者关键字提取来判断任务是否成功执行,成功执行的任务直接将任务执行状态记为成功,对执行失败的任务进行更深入的失败原因进行分类标记,参见图10,具体地:
(1)对执行失败的任务中没有异常信息的,将该次任务失败类型标记为业务务流程失败,这类任务由于测试流程中出现bug造成了执行失败,是测试人员真正需要关注的任务。
(2)对执行失败的任务中有异常信息,并且异常信息是异常日志字典表中已经定义过的,将该次任务失败类型标记为已知异常影响。业务人员不需要对该类任务的失败原因进行分析。
(3)对执行失败的任务中有异常信息,但异常信息是异常日志字典表中没有定义过的,将该次任务失败类型标记为存疑,业务人员需要关注本次执行失败原因。
(4)若执行时间不在被测系统的环境维护期内,该模块会把这类任务的失败类型标记成环境出错,需要维护环境的人员去排除失败的原因。
另一方面,该模块对所有存疑类的执行任务日志中错误日志信息进行类同性比对,将错误信息一样的执行任务进行归类统计,从发生时间、被测系统、脚本编制人等维度形成存疑类执行任务分析报告,供测试人员下载使用。
基于上述的基于自动化测试的脚本执行装置,本具体应用实例所提供的基于自动化测试的脚本执行方法具体包括:
S1:检索执行机信息表,判断执行机是否可用。
可以理解的是,步骤S1中的执行机信息表内容包括:执行机id、执行机名、上次心跳时间、执行机版本号、测试工具、测试工具版本、无法访问的环境、异常原因、异常描述以及当前执行任务id。
S2:当执行机可用结果为执行机可用时,判断执行机的执行环境是否异常;
具体地,参见表4,根据表4将检测出的异常原因对应地进行处理。
表4异常操作配置表
S3:当执行机的执行环境为正常时,在执行机上执行所述测试脚本。
从上述描述可知,本发明具体应用实例提供的基于自动化测试的脚本执行方法,具有以下有益效果:
1、实现了自动化测试脚本任务启动执行前对于被测系统服务状态及执行机运行环境的智能检测,具体地,当执行环境条件不满足自动化测试脚本执行需求时,则将任务执行条件未就绪的信息反馈给执行调度模块,该任务暂不提交执行。解决了因测试环境存在问题但执行调度模块仍然提交自动化测试脚本执行,从而导致任务执行失败及无效执行的问题,极大节约了执行环境资源及测试数据资源。
2、在测试执行过程中,测试人员需要重点关注非环境问题导致的自动化测试执行任务失败原因。但原先测试执行任务中对于失败原因没有分类依据,需要测试人员花费大量时间对所有的执行失败任务进行筛选和排查,才能剔除掉由于环境问题导致的任务执行失败记录。该装置实现了自动化测试脚本执行失败时,对于被测环境服务状态及执行机运行环境进行主动的检查功能,并自动将相关环境的检查结果写入到执行日志中。基于该日志,任务展示模块即可实现对自动化测试执行任务结果的智能分类。测试人员可以通过筛选功能剔除掉由于测试环境问题导致的执行失败任务。不再需要对全部的任务执行日志进行分析排查,大大减少了测试人员对于自动化测试任务执行结果的分析排查工作量。
3、现有技术中因缺少对自动化测试执行机和自动化测试执行任务的自动诊断监控模块,故测试人员只能在对测试任务执行结果日志排查问题过程中发现执行机存在的相关问题后,再对执行机进行相关维护操作,执行机环境维护的时效性低且严重依赖于人工排查环节。通过该装置,实现了对自动化测试执行机及自动化测试执行任务状态的自动化智能监控,通过监控模块主动发现问题,及时发现隐患,并依据预先设置好的诊断处理方案进行执行机的自动化运维,极大提高了自动化测试执行机的环境运维效率及自动化测试执行任务的实施效率。
基于同一发明构思,本申请实施例还提供了基于自动化测试的脚本执行装置,可以用于实现上述实施例所描述的方法,如下面的实施例。由于基于自动化测试的脚本执行装置解决问题的原理与基于自动化测试的脚本执行方法相似,因此基于自动化测试的脚本执行装置的实施可以参见基于自动化测试的脚本执行方法实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的系统较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本发明的实施例提供一种能够实现基于自动化测试的脚本执行方法的基于自动化测试的脚本执行装置的具体实施方式,参见图11,基于自动化测试的脚本执行装置具体包括如下内容:
执行机可用判断单元10,用于若判断获知执行机可用,则生成执行机可用结果;
环境异常判断单元20,用于若根据所述执行机可用结果判断所述执行机的执行环境正常,则在所述执行机上执行测试脚本。
一实施例中,参见图12,所述执行机可用判断单元10包括:
信息表检索模块101,用于检索所述执行机信息表,判断所述执行机是否可用;
所述执行机信息表内容包括:执行机id、执行机名、上次心跳时间、执行机版本号、测试工具、测试工具版本、无法访问的环境、异常原因、异常描述以及当前执行任务id。
一实施例中,参见图13,所述环境异常判断单元20包括:
环境异常判断模块201,用于当所述执行机可用结果为所述执行机可用时,判断所述执行机的执行环境是否异常;
测试脚本执行模块202,用于在所述执行机上执行所述测试脚本。
一实施例中,参见图14,所述环境异常判断模块201包括:
环境版本匹配判断模块2011,用于当所述测试脚本与所述执行环境匹配时,利用心跳方法,判断所述执行机网络状态是否连通;
网络状态判断模块2012,用于利用心跳方法,判断所述执行机网络状态是否连通。
一实施例中,参见图15,所述环境版本匹配判断模块2011包括:
工具版本号确定模块20111,用于根据所述测试脚本确定所述测试脚本的工具版本号;
版本对比模块20112,用于将所述工具版本号与所述测试工具版本进行对比,如果不一致,升级所述工具版本至与所述测试工具版本号对应的版本。
一实施例中,参见图16,基于自动化测试的脚本执行装置还包括:
日志生成单元30,用于生成所述测试脚本的执行日志;
异常执行确定单元40,用于将所述执行日志与预生成的异常日志字典表进行对比,以确定由所述测试脚本漏洞所造成的异常执行,并推送所述异常执行发送给测试人员。
从上述描述可知,本发明实施例提供的基于自动化测试的脚本执行装置,首先若判断获知执行机可用,则生成执行机可用结果;然后若根据执行机可用结果判断执行机的执行环境正常,则在执行机上执行测试脚本。一方面,本发明解决了现有自动化测试执行过程中,无法及时发现被测系统环境、脚本执行机运行环境所存在问题,该问题可导致自动化测试脚本执行成功率低,问题排查工作量大以及问题发现时效性低的难题,通过增加自动化测试脚本执行环境及状态进行诊断监测实现对被测系统环境、执行机运行环境、执行任务运行状态等进行监控和诊断,并进行相关的智能处理,极大降低被测环境服务不可用对自动化测试脚本执行所产生的影响。
另一方面,本发明在自动化脚本任务执行失败时能够自动探测被测系统的服务状态,对执行日志进行智能处理,并将相关信息反馈给执行调度模块。在自动化脚本执行的过程中,也通过对执行机环境及任务执行状态的监控,实现对执行机环境或者任务执行状态异常时的自动发现和自动恢复机制,提高执行机运维的自动化能力及自动化任务执行的效率。
上述实施例阐明的装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为电子设备,具体的,电子设备例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
在一个典型的实例中电子设备具体包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行该程序时实现上述基于自动化测试的脚本执行方法的步骤,该步骤包括:
步骤100:若判断获知执行机可用,则生成执行机可用结果;
步骤200:若根据所述执行机可用结果判断所述执行机的执行环境正常,则在所述执行机上执行测试脚本。
下面参考图17,其示出了适于用来实现本申请实施例的电子设备600的结构示意图。
如图17所示,电子设备600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM))603中的程序而执行各种适当的工作和处理。在RAM603中,还存储有系统600操作所需的各种程序和数据。CPU601、ROM602、以及RAM603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡,调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装如存储部分608。
特别地,根据本发明的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述基于自动化测试的脚本执行方法的步骤,该步骤包括:
步骤100:若判断获知执行机可用,则生成执行机可用结果;
步骤200:若根据所述执行机可用结果判断所述执行机的执行环境正常,则在所述执行机上执行测试脚本。
在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上该仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种基于自动化测试的脚本执行方法,其特征在于,包括:
若判断获知执行机可用,则生成执行机可用结果;
若根据所述执行机可用结果判断所述执行机的执行环境正常,则在所述执行机上执行测试脚本。
2.根据权利要求1所述的基于自动化测试的脚本执行方法,其特征在于,所述若判断获知执行机可用,则生成执行机可用结果,包括:
检索所述执行机信息表,判断所述执行机是否可用;
所述执行机信息表内容包括:执行机id、执行机名、上次心跳时间、执行机版本号、测试工具、测试工具版本、无法访问的环境、异常原因、异常描述以及当前执行任务id。
3.根据权利要求2所述的基于自动化测试的脚本执行方法,其特征在于,判断所述执行机的执行环境是否异常,包括:
判断所述测试脚本与所述执行环境是否匹配;
当所述测试脚本与所述执行环境匹配时,利用心跳方法,判断所述执行机网络状态是否连通。
4.根据权利要求3所述的基于自动化测试的脚本执行方法,其特征在于,在所述判断所述执行机网络状态是否连通之后,还包括:
将所述执行机网络状态是否连通、是否处于可工作的状态以及自动化工具版本信息写入所述执行机信息表。
5.根据权利要求3所述的基于自动化测试的脚本执行方法,其特征在于,所述判断所述测试脚本与所述执行环境是否匹配包括:
根据所述测试脚本确定所述测试脚本的工具版本号;
将所述工具版本号与所述测试工具版本进行对比,如果不一致,升级所述工具版本至与所述测试工具版本号对应的版本。
6.根据权利要求5所述的基于自动化测试的脚本执行方法,其特征在于,所述根据所述测试脚本确定所述测试脚本的工具版本号包括:
获取测试任务的任务属性;
根据所述任务属性确定任务对象特征以及所述任务对象包含的信息类型;
根据所述任务对象特征以及所述信息类型确定测试脚本。
7.根据权利要求1所述的基于自动化测试的脚本执行方法,其特征在于,还包括:
生成所述测试脚本的执行日志;
将所述执行日志与预生成的异常日志字典表进行对比,以确定由所述测试脚本漏洞所造成的异常执行,并推送所述异常执行发送给测试人员。
8.一种基于自动化测试的脚本执行装置,其特征在于,包括:
执行机可用判断单元,用于若判断获知执行机可用,则生成执行机可用结果;
环境异常判断单元,用于若根据所述执行机可用结果判断所述执行机的执行环境正常,则在所述执行机上执行测试脚本。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至7任一项所述基于自动化测试的脚本执行方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至7任一项所述基于自动化测试的脚本执行方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110228103.3A CN113010417A (zh) | 2021-03-02 | 2021-03-02 | 基于自动化测试的脚本执行方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110228103.3A CN113010417A (zh) | 2021-03-02 | 2021-03-02 | 基于自动化测试的脚本执行方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113010417A true CN113010417A (zh) | 2021-06-22 |
Family
ID=76402030
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110228103.3A Pending CN113010417A (zh) | 2021-03-02 | 2021-03-02 | 基于自动化测试的脚本执行方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113010417A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114706773A (zh) * | 2022-03-29 | 2022-07-05 | 网宿科技股份有限公司 | 自动化测试方法、设备及可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107766236A (zh) * | 2017-09-21 | 2018-03-06 | 平安科技(深圳)有限公司 | 测试任务自动化管理方法、装置、设备及存储介质 |
CN110162481A (zh) * | 2019-05-31 | 2019-08-23 | 北京星网锐捷网络技术有限公司 | 一种软件测试方法、装置、设备以及存储介质 |
CN111667250A (zh) * | 2020-06-16 | 2020-09-15 | 扬州航盛科技有限公司 | 一种基于云的自动化测试执行机的管理方法和系统 |
-
2021
- 2021-03-02 CN CN202110228103.3A patent/CN113010417A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107766236A (zh) * | 2017-09-21 | 2018-03-06 | 平安科技(深圳)有限公司 | 测试任务自动化管理方法、装置、设备及存储介质 |
CN110162481A (zh) * | 2019-05-31 | 2019-08-23 | 北京星网锐捷网络技术有限公司 | 一种软件测试方法、装置、设备以及存储介质 |
CN111667250A (zh) * | 2020-06-16 | 2020-09-15 | 扬州航盛科技有限公司 | 一种基于云的自动化测试执行机的管理方法和系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114706773A (zh) * | 2022-03-29 | 2022-07-05 | 网宿科技股份有限公司 | 自动化测试方法、设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109284269B (zh) | 异常日志分析方法、装置、存储介质及服务器 | |
US10922164B2 (en) | Fault analysis and prediction using empirical architecture analytics | |
US20110107307A1 (en) | Collecting Program Runtime Information | |
CN110750458A (zh) | 大数据平台测试方法、装置、可读存储介质及电子设备 | |
CN111427765B (zh) | 自动开启基于jmeter实现的接口性能测试方法和系统 | |
US10509719B2 (en) | Automatic regression identification | |
CN111309343B (zh) | 一种开发部署方法及装置 | |
CN112148610A (zh) | 测试用例执行方法、装置、计算机设备和存储介质 | |
US20210326197A1 (en) | System And Method For Automatically Identifying And Resolving Computing Errors | |
WO2023123943A1 (zh) | 接口自动化测试方法、装置、介质、设备及程序 | |
US20180143897A1 (en) | Determining idle testing periods | |
CN112650676A (zh) | 软件测试方法、装置、设备及存储介质 | |
CN112650688A (zh) | 自动化回归测试方法、关联设备以及计算机程序产品 | |
US11169910B2 (en) | Probabilistic software testing via dynamic graphs | |
WO2019114209A1 (zh) | 自动化测试分析方法、系统、应用服务器及计算机可读存储介质 | |
US11341030B2 (en) | Scriptless software test automation | |
CN113010417A (zh) | 基于自动化测试的脚本执行方法及装置 | |
CN112988503A (zh) | 分析方法、分析装置、电子装置和存储介质 | |
CN116069628A (zh) | 一种智能处置的软件自动化回归测试方法、系统及设备 | |
CN113238901B (zh) | 多设备的自动化测试方法及装置、存储介质、计算机设备 | |
Lavoie et al. | A case study of TTCN-3 test scripts clone analysis in an industrial telecommunication setting | |
CN114693116A (zh) | 代码评审有效性的检测方法及装置、电子设备 | |
CN113238940A (zh) | 一种接口测试结果的比对方法、装置、设备和存储介质 | |
CN113111009A (zh) | 一种软件测试装置及测试方法 | |
CN111881025A (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 |