CN115168236A - 自动化测试方法及电子设备、存储介质 - Google Patents
自动化测试方法及电子设备、存储介质 Download PDFInfo
- Publication number
- CN115168236A CN115168236A CN202210927821.4A CN202210927821A CN115168236A CN 115168236 A CN115168236 A CN 115168236A CN 202210927821 A CN202210927821 A CN 202210927821A CN 115168236 A CN115168236 A CN 115168236A
- Authority
- CN
- China
- Prior art keywords
- environment
- test script
- script
- current test
- state value
- 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/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/3664—Environments for testing or debugging software
-
- 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
Abstract
本申请提供一种自动化测试方法及电子设备、存储介质,方法包括:依序从任务列表中读取一个待执行的测试脚本,作为当前测试脚本;判断所述当前测试脚本的环境属性值,与测试平台的环境状态值是否匹配;其中,所述环境属性值表征所述当前测试脚本所适用的高可用性模式环境,所述测试平台的环境状态值表征所述测试平台当前的高可用性模式环境;若匹配,执行所述当前测试脚本,并在执行完毕后,返回所述依序从任务列表中读取一个待执行的测试脚本,作为当前测试脚本的步骤;当无法从所述任务列表中读取待执行的测试脚本时,确定所述任务列表指示的测试任务结束。本申请方案,提高自动化测试的执行效率。
Description
技术领域
本申请涉及测试技术领域,特别涉及一种自动化测试方法及电子设备、计算机可读存储介质。
背景技术
HA(High Availability,高可用性集群)是通信设备、网络安全设备的一项重要功能,可以提高通信网络的可用性。防火墙等网络安全设备上有丰富的业务处理模块,为保证HA环境下业务处理模块能够正常运行,需在HA环境下对业务处理模块进行全面、合理的测试。
相关方案中,一个安全业务模块功能特性的HA高可靠性测试脚本包含HA环境的建立、业务模块待测功能特征高可靠性测试主体、HA环境的拆除等内容。在多个测试脚本所构成的一次测试任务中,会经历HA环境的频繁建立、拆除,导致整体运行效率低下。而对于一些测试主体较为简单的测试脚本,测试主体部分甚至不如HA环境的建立和拆除更消耗计算资源,这也是导致测试过程中整体运行效率低下的一个原因。
发明内容
本申请实施例的目的在于提供一种自动化测试方法及电子设备、计算机可读存储介质,用于提高自动化测试的执行效率。
一方面,本申请提供了一种自动化测试方法,包括:
依序从任务列表中读取一个待执行的测试脚本,作为当前测试脚本;
判断所述当前测试脚本的环境属性值,与测试平台的环境状态值是否匹配;其中,所述环境属性值表征所述当前测试脚本所适用的高可用性模式环境,所述测试平台的环境状态值表征所述测试平台当前的高可用性模式环境;
若匹配,执行所述当前测试脚本,并在执行完毕后,返回所述依序从任务列表中读取一个待执行的测试脚本,作为当前测试脚本的步骤;
当无法从所述任务列表中读取待执行的测试脚本时,确定所述任务列表指示的测试任务结束。
通过上述措施,由于测试脚本仅包含业务模块待测功能特征高可靠性测试主体,在执行各个测试脚本时无需反复建立和拆除HA环境,而是通过比对当前测试脚本的环境属性值和测试平台的环境状态值,以判断当前HA环境是否适用于当前测试脚本,从而在HA环境适用的情况下直接执行当前测试脚本。因此,在执行测试任务时,降低了大量建立和拆除HA环境的多余操作,从而提高了自动化测试的整体运行效率。
在一实施例中,在所述依序从任务列表中读取一个待执行的测试脚本,作为当前测试脚本之前,所述方法还包括:
响应于测试指令,获取所述任务列表;其中,所述任务列表包括至少一个待执行的测试脚本。
通过该措施,服务端可以获得用于测试任务的测试脚本。
在一实施例中,在所述依序从任务列表中读取一个待执行的测试脚本,作为当前测试脚本之前,所述方法还包括:
调用公共脚本库中的基础环境配置脚本,构建默认初始环境;其中,所述默认初始环境为未启用高可用性模式的环境;
为所述测试平台设置与默认初始环境对应的环境状态值。
通过上述措施,本申请方案可以兼容适用未启用高可用性模式环境的测试脚本。
在一实施例中,在所述依序从任务列表中读取一个待执行的测试脚本,作为当前测试脚本之后,所述方法还包括:
判断所述当前测试脚本的环境属性值,是否与异常状态值集合中任一环境状态值匹配;其中,所述异常状态值集合包含无法构建的高可用性模式环境对应的环境状态值;
若与所述异常状态值集合中任一环境状态值匹配,返回所述依序从任务列表中读取一个待执行的测试脚本的步骤;
若不与所述异常状态值集合中任一环境状态值匹配,继续执行所述判断所述当前测试脚本的环境属性值,与测试平台的环境状态值是否匹配的步骤。
通过上述措施,可以筛选出无法正常构建的高可用性模式环境下的测试脚本,作为无法执行的测试脚本直接跳过,从而减少对无法执行的测试脚本的处理过程,提高了测试任务的整体执行效率。
在一实施例中,所述方法还包括:
若不匹配,为所述当前测试脚本构建其所适用的高可用性模式环境;
在构建所述当前测试脚本所适用的高可用性模式环境后,执行所述当前测试脚本,并在执行完毕后,返回所述依序从任务列表中读取一个待执行的测试脚本,作为当前测试脚本的步骤。
通过上述措施,可以为当前测试脚本构建适用的高可用性模式环境,从而在构建出高可用性模式环境后,正常执行当前测试脚本。
在一实施例中,所述为所述当前测试脚本构建其所适用的高可用性模式环境,包括:
判断所述测试平台的环境状态值,是否指示默认初始环境;
如果是,依据所述当前测试脚本的环境属性值,从公共脚本库中调用所述环境属性值对应的目标环境配置脚本,以构建所述当前测试脚本所适用的高可用性模式环境。
通过上述措施,服务端可以为当前测试脚本构建出其所适用的高可用性模式环境。
在一实施例中,所述方法还包括:
如果否,从所述公共脚本库中调用恢复环境配置脚本,以将所述测试平台恢复至所述默认初始环境;
依据所述当前测试脚本的环境属性值,从公共脚本库中调用所述环境属性值对应的目标环境配置脚本,以构建所述当前测试脚本所适用的高可用性模式环境。
通过上述措施,服务端可以为当前测试脚本构建出其所适用的高可用性模式环境。
在一实施例中,所述方法还包括:
调用所述环境属性值对应的目标环境配置脚本之后,判断所述当前测试脚本所使用的高可用性模式环境是否构建成功;
若未构建成功,将无法构建的高可用性模式环境对应的环境状态值,加入异常状态值集合。
通过上述措施,可以在执行测试任务过程中动态更新异常状态值集合,以便根据最新的异常状态值集合滤除无法执行的测试脚本。
另一方面,本申请提供了一种自动化测试装置,包括:
读取模块,用于依序从任务列表中读取一个待执行的测试脚本,作为当前测试脚本;
判断模块,用于判断所述当前测试脚本的环境属性值,与测试平台的环境状态值是否匹配;其中,所述环境属性值表征所述当前测试脚本所适用的高可用性模式环境,所述测试平台的环境状态值表征所述测试平台当前的高可用性模式环境;
执行模块,用于若匹配,执行所述当前测试脚本,并在执行完毕后,返回所述依序从任务列表中读取一个待执行的测试脚本,作为当前测试脚本的步骤;
确定模块,用于当无法从所述任务列表中读取待执行的测试脚本时,确定所述任务列表指示的测试任务结束。
进一步的,本申请提供了一种电子设备,所述电子设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行上述自动化测试方法。
此外,本申请还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序可由处理器执行以完成上述自动化测试方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍。
图1为本申请一实施例提供的自动化测试方法的应用场景示意图;
图2为本申请一实施例提供的电子设备的结构示意图;
图3为本申请一实施例提供的自动化测试方法的流程示意图;
图4为本申请另一实施例提供的自动化测试方法的流程示意图;
图5为本申请一实施例提供的自动化测试装置的框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
图1为本申请实施例提供的自动化测试方法的应用场景示意图。如图1所示,该应用场景包括客户端20和服务端30;客户端20可以是主机、手机、平板电脑等用户终端,用于向服务端30发送启用自动化测试的测试指令;服务端30可以是作为测试平台的服务器、服务器集群或云计算中心,可以响应于测试指令,执行自动化测试任务。
如图2所示,本实施例提供一种电子设备1,包括:至少一个处理器11和存储器12,图2中以一个处理器11为例。处理器11和存储器12通过总线10连接,存储器12存储有可被处理器11执行的指令,指令被处理器11执行,以使电子设备1可执行下述的实施例中方法的全部或部分流程。在一实施例中,电子设备1可以是上述服务端30,用于执行自动化测试方法。
存储器12可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read Only Memory,简称EPROM),可编程只读存储器(Programmable Red-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。
本申请还提供了一种计算机可读存储介质,存储介质存储有计算机程序,计算机程序可由处理器11执行以完成本申请提供的自动化测试方法。
参见图3,为本申请一实施例提供的自动化测试方法的流程示意图,如图3所示,该方法可以包括以下步骤310-步骤340。
步骤310:依序从任务列表中读取一个待执行的测试脚本,作为当前测试脚本。
任务列表可以包括测试任务中需要执行的至少一个待执行的测试脚本,测试脚本用于测试被测设备上业务模块的性能。测试脚本为业务模块待测功能特征的测试主体。
作为测试平台的服务端可以对接被测设备和辅助设备,执行测试任务。在执行测试任务时,服务端可以依据任务列表中测试脚本的排列顺序,读取最靠前的一个待执行的测试脚本,作为当前测试脚本。
步骤320:判断当前测试脚本的环境属性值,与测试平台的环境状态值是否匹配;其中,环境属性值表征当前测试脚本所适用的高可用性模式环境,环境状态值表征测试平台当前的高可用性模式环境。
高可用性模式可以包括HA AS(High Availability Active Standby)模式、HA AA(High Availability Active Active)模式、HA SP(High Availability SessionProtect)模式,高可用性模式环境即为启用某种高可用性模式的运行环境。
环境属性值可以记录于测试脚本之内,表征测试脚本所适用的高可用性模式环境,换而言之,测试脚本在环境属性值指示的高可用性模式环境下才能够正常运行。示例性的,环境属性值记为topo_type,HA AS模式对应的topo_type为1,HA AA模式对应的topo_type为2,HA SP模式对应的topo_type为3。
测试平台的环境状态值可以记录于测试平台内,表征测试平台当前启用的高可用性模式环境。示例性的,环境状态值记为topo_env,HA AS模式对应的topo_env为1,HA AA模式对应的topo_env为2,HA SP模式对应的topo_env为3。
服务端可以从当前测试脚本中解析出环境属性值,并检查环境属性值与环境状态值是否一致,若一致,则两者匹配。如果不一致,则环境属性值与环境状态值不匹配。
步骤330:若匹配,执行当前测试脚本,并在执行完毕后,返回依序从任务列表中读取一个待执行的测试脚本,作为当前测试脚本的步骤。
步骤340:当无法从任务列表中读取待执行的测试脚本时,确定任务列表指示的测试任务结束。
在环境属性值与环境状态值匹配的情况下,可以认为当前高可用性模式环境下,能够正常执行当前测试脚本。服务端可以执行当前测试脚本,并在测试完毕后返回步骤310,读取任务列表中的下一个待执行的测试脚本,作为当前测试脚本,从而继续执行步骤320和步骤330。
这个过程可以重复多次,当无法从任务列表中读取待执行的测试脚本时,可以确定任务列表中待执行的测试脚本全部执行完毕,此时,任务列表所对应的测试任务结束。
通过上述措施,由于测试脚本仅包含业务模块待测功能特征高可靠性测试主体,在执行各个测试脚本时无需反复建立和拆除HA环境,而是通过比对当前测试脚本的环境属性值和测试平台的环境状态值,以判断当前HA环境是否适用于当前测试脚本,从而在HA环境适用的情况下直接执行当前测试脚本。因此,在执行测试任务时,降低了大量建立和拆除HA环境的多余操作,从而提高了自动化测试的整体运行效率。
在一实施例中,作为测试平台的服务端在执行测试任务之前,可以接收运维人员通过客户端下发的测试指令。测试指令用于指示服务端执行测试任务。服务端可以响应于测试指令,获取本次测试任务对应的任务列表,任务列表包括至少一个待执行的测试脚本。示例性的,服务端可以从测试指令中解析得到任务列表。示例性的,服务端可以响应于测试指令,从测试指令指示的存储地址获取任务列表。
这里,任务列表如果包含多个测试脚本,则不同测试脚本所适用的高可用性模式环境可以相同,也可以不同。
通过该措施,服务端可以获得用于测试任务的测试脚本。
在一实施例中,作为测试平台的服务端在执行测试任务之前,可以调用公共脚本库中的基础环境配置脚本,构建默认初始环境。其中,默认初始环境为未启用高可用性模式的环境。这里,公共脚本库中可以包括多个用于构建测试平台环境的脚本。基础环境配置脚本用于构建默认初始环境。
示例性的,基础环境配置脚本可以记为baseline_cfg,服务端借助基础环境配置脚本,可以对被测设备和辅助设备进行有效管理。
在构建默认初始环境后,服务端可以为测试平台设置与默认初始环境对应的环境状态值。默认初始环境可以记为Default_env,且对应的环境状态值为0。
通过上述措施,本申请方案可以兼容适用未启用高可用性模式环境的测试脚本。
在一实施例中,服务端在从任务列表中读取出一个待执行的测试脚本,作为当前测试脚本之后,可以判断当前测试脚本的环境属性值,是否与异常状态值集合中任一环境状态值匹配。其中,异常状态值集合包括无法构建的高可用性模式环境对应的环境状态值。
在测试过程中,由于执行过程出现异常、HA配置失败、HA启动失败、HA选举失败等错误时,可以说明高可用性模式环境构建失败。在HA AS模式、HA AA模式、HA SP模式任一模式对应的高可用性模式环境构建失败时,可以确定适应该高可用性模式环境的测试脚本无法正常执行。
因此,若当前测试脚本的环境属性值,与异常状态值集合中任一环境状态值匹配,则无需继续执行该当前测试脚本,可以返回步骤310,继续读取下一个待执行的测试脚本。
若当前测试脚本的环境属性值,不与异常状态值集合中任一环境状态值匹配,可以继续执行步骤320。
通过上述措施,可以筛选出无法正常构建的高可用性模式环境下的测试脚本,作为无法执行的测试脚本直接跳过,从而减少对无法执行的测试脚本的处理过程,提高了测试任务的整体执行效率。
在一实施例中,服务端在判断当前测试脚本的环境属性值,与测试平台的环境状态值是否匹配时,如果环境属性值与环境状态值不匹配,服务端可以为当前测试脚本构建其所适用的高可用性模式环境。
示例性的,当前测试脚本的环境属性值topo_type为2,服务端可以为当前测试脚本构建HA AA模式的高可用性模式环境。示例性的,当前测试脚本的环境属性值topo_type为3,服务端可以为当前测试脚本构建HA SP模式的高可用性模式环境。
在构建当前测试脚本所适用的高可用性模式环境后,服务端可以执行当前测试脚本。在执行完毕之后,服务端可以返回步骤310,从而从任务列表读取下一个待执行的测试脚本。
另外,如果当前测试脚本的环境属性值指示默认初始环境,而当前测试平台为HAAA模式、HA AS模式、HA SP模式中任意一种高可用性模式环境,服务端可以为当前测试脚本构建默认初始环境,该默认初始环境可以认为是一种特殊的高可用性模式环境。在构建默认初始环境后,可以执行当前测试脚本。
通过上述措施,可以为当前测试脚本构建适用的高可用性模式环境,从而在构建出高可用性模式环境后,正常执行当前测试脚本。
在一实施例中,在为当前测试脚本构建其所适用的高可用性模式环境时,服务端可以判断测试平台的环境状态值,是否指示默认初始环境。示例性的,若默认初始环境的topo_env为0,可以检查当前测试平台的topo_env是否为0。
一方面,如果是,服务端可以依据当前测试脚本的环境属性值,从公共脚本库中调用环境属性值对应的目标环境配置脚本,以构建当前测试脚本所适用的高可用性模式环境。其中,目标环境配置脚本为与环境属性值对应的环境配置脚本。
示例性的,公共脚本库可以包括用于构建HA AS模式的高可用性模式环境的脚本ha_as_cfg、用于构建HA AA模式的高可用性模式环境的脚本ha_aa_cfg、用于构建HA SP模式的高可用性模式环境的脚本ha_sp_cfg。构建HA AA模式、HA AS模式、HA SP模式等高可用性模式环境的环境配置脚本适用于默认初始环境,因此,在默认初始环境下可以直接调用,从而构建相应的高可用性模式环境。此外,公共脚本库还可以包括恢复环境配置脚本clean_cfg,该恢复环境配置脚本可以将已构建的HA AA模式、HA AS模式、HA SP模式等高可用性模式环境恢复至默认初始环境。恢复环境配置脚本适用于任意一种高可用性模式环境,可以将任意一种高可用性模式环境恢复至默认初始环境。
另一方面,如果否,服务端可以从公共脚本库中调用恢复环境配置脚本,以将测试平台恢复至默认初始环境。在执行恢复环境配置脚本后,服务端可以将测试平台的环境状态值进行设置,比如,设置为0,使得经过设置的环境状态值指示默认初始环境。
在恢复至默认初始环境之后,服务端可以依据当前测试脚本的环境属性值,从公共脚本库中调用环境属性值对应的目标环境配置脚本,以构建当前测试脚本所适用的高可用性模式环境。
通过上述措施,服务端可以为当前测试脚本构建出其所适用的高可用性模式环境。
在一实施例中,服务端调用环境属性值对应的目标环境配置脚本之后,可以判断当前测试脚本所适用的高可用性模式环境是否构建成功。
一方面,目标环境配置脚本执行成功,此时,成功构建了当前测试脚本所适用的高可用性模式环境。这种情况下,可以执行当前测试脚本。
另一方面,目标环境配置脚本执行失败,未能构建当前测试脚本所适用的高可用性模式环境。这种情况下,服务端可以将无法构建的高可用性模式环境对应的环境状态值,加入异常状态值集合。示例性的,HA AA模式的高可用性模式环境构建失败,则将HA AA模式的环境状态值2加入异常状态值集合。
通过上述措施,可以在执行测试任务过程中动态更新异常状态值集合,以便根据最新的异常状态值集合滤除无法执行的测试脚本。
在一实施例中,服务端在从任务列表读取当前测试脚本后,可以为任务列表中的当前测试脚本添加指定标记,该指定标记指示测试脚本已被读取。通过设置该指定标记,可以指示任务列表中测试脚本的读取进度,从而在后续依据指定标记便捷地读取下一个测试脚本。
在测试任务执行完毕后,服务端可以输出提示信息,指示异常状态值集合内各个环境状态值对应的高可用性模式环境无法正常构建。在输出提示信息后,服务端可以清空异常状态值集合。
参见图4,为本申请另一实施例提供的自动化测试方法的流程示意图,如图4所示,测试任务开始后,服务端可以调用公共脚本库中的基础环境配置脚本baseline_cfg,构建默认初始环境。在构建默认初始环境后,服务端可以从任务列表中依序读取一个待执行的测试脚本,作为当前测试脚本。
服务端可以检查读取结果是否为空,一方面,如果读取结果为空,说明任务列表中的测试脚本执行完毕,服务端可以确定测试任务结束。另一方面,如果读取结果不为空,服务端可以判断当前测试脚本的环境属性值topo_type是否与异常状态值集合error_topo_env中任一环境状态值topo_env匹配。
一种情况下,环境属性值topo_type与异常状态值集合error_topo_env中的一个环境状态值匹配,说明当前测试脚本无法执行,可以跳过当前测试脚本,返回从任务列表中读取一个待执行的测试脚本的步骤。
另一种情况下,环境属性值topo_type不与异常状态值集合error_topo_env中的任意一个环境状态值匹配,说明当前测试脚本所适用的HA环境并未确定无法构建。这种情况下,服务端可以检查当前测试脚本的环境属性值topo_type,是否等同于测试平台的环境状态值topo_env。
一方面,两者等同,说明当前测试脚本适用于当前HA环境,服务端可以直接执行当前测试脚本。在执行完毕后,重新返回从任务列表读取待执行的测试脚本的步骤。
另一方面,两者不等同,说明当前测试脚本不适用与当前HA环境。此时,服务端可以检查环境状态值topo_env是否为0。如果是,说明测试平台当前为默认初始环境,各种环境配置脚本均可执行,因此,服务端可以根据环境属性值topo_type调用相应的目标环境配置脚本,以构建当前测试脚本所适用的高可用性模式环境。如果否,说明测试平台当前不为默认初始环境,各种环境配置脚本不可执行,因此,服务端可以调用恢复环境配置脚本clean_cfg,将测试平台恢复至默认初始环境。此时,各种环境配置脚本均可执行,因此,服务端可以根据环境属性值topo_type调用相应的目标环境配置脚本,以构建当前测试脚本所适用的高可用性模式环境。
在构建出当前测试脚本所适用的高可用性模式环境之后,服务端可以判断目标环境配置脚本是否执行成功,也就是判断当前测试脚本所适用的高可用性模式环境是否构建成功。
一种情况下,如果成功,服务端可以执行当前测试脚本。在执行完毕后,重新返回从任务列表读取待执行的测试脚本的步骤。
另一种情况下,如果不成功,说明目标环境配置脚本对应的高可用性模式环境无法构建,此时,可以将目标环境配置脚本对应的环境状态值topo_env加入至异常状态值集合error_topo_env中。
进一步的,服务端可以跳过当前测试脚本,重新返回从任务列表读取待执行的测试脚本的步骤。本申请方案,通过公共脚本库中的脚本,可以在执行测试任务过程中为测试脚本构建适用的高可用性模式环境,使得测试脚本可以正常执行;而测试脚本的环境属性值和测试平台的环境状态值,可以便捷地判断出测试脚本是否适用于当前测试平台的环境。
在通过公共脚本库中的脚本构建环境后,针对业务模块的测试脚本无需关注高可用性模式环境的构建过程,测试脚本仅包含针对业务模块的测试主体,仅需关注测试脚本所测试的业务模块在当前高可用性模式环境下的配置、配置同步、功能特性表现、业务模块在流量下的主备切换以及由此带来的流量切换等内容。因此,测试脚本相比相关方案可以更快速高效地执行。通过异常状态值集合记录无法构建成功的高可用性模式环境的环境状态值,可以在当前测试脚本的环境属性值与异常状态值集合中任一环境状态值匹配时,直接跳过当前测试脚本,从而提高测试任务的执行效率。
此外,由于各个测试脚本各自独立,分别聚焦其测试的业务模块,根据测试结果可以更容易定位出问题缺陷。测试脚本的内容相比相关方案更少,对于脚本开发人员而言,也大大降低了测试脚本的开发工作量。
示例性的,一次自动化测试任务包括如下测试脚本:
<ITEM>
case=nat44_as_ha_0001
case=nat64_as_ha_0001
case=nat66_as_ha_0001
case=nat66_aa_ha_0001
case=nat66_aa_ha_0002
</ITEM>
前三个测试脚本适用于HA AS模式的高可用性模式环境,环境属性值topo_type为1;后两个测试脚本适用于HA AA模式的高可用性模式环境,环境属性值topo_type为2。
任务开始后,作为测试平台的服务端可以调用基础环境配置脚本baseline_cfg,构建默认环境状态,并将环境状态值topo_env设置为0。
获取第一个测试脚本case=nat44_as_ha_0001,此时异常状态值集合error_topo_env为空,可以确定环境属性值topo_type不与异常状态值集合中任一环境状态值匹配。进一步的,检查确定topo_type与topo_env不同,根据topo_type调用ha_as_cfg。然而,目标环境配置脚本ha_as_cfg无法正常执行,将对应的topo_env加入异常状态值集合。
服务端可以跳过第一个测试脚本,获取第二个测试脚本case=nat64_as_ha_0001。服务端检查确定第二个测试脚本的topo_type与异常状态值集合中的环境状态值topo_env匹配,可以跳过第二个测试脚本,获取第三个测试脚本case=nat66_as_ha_0001。服务端检查确定第三个测试脚本的topo_type与异常状态值集合中的环境状态值topo_env匹配,可以跳过第三个测试脚本,获取第四个测试脚本case=nat66_aa_ha_0001。
服务端可以确定第四个测试脚本的topo_type与异常状态值集合中的环境状态值topo_env不匹配,进一步的,可以确定第四个测试脚本的topo_type与测试平台当前的环境状态值topo_env不同。服务端可以根据topo_type调用目标环境配置脚本ha_aa_cfg,在目标环境配置脚本执行成功后,将测试平台的topo_env设置为2。此时,topo_type与topo_env相同,服务端可以执行第四个测试脚本。
服务端在获取第五个测试脚本后,第五个测试脚本的topo_type与异常状态值集合中的环境状态值topo_env不匹配,且topo_type等同于测试平台的topo_env,可以直接执行测试脚本。
当任务列表无法读取待执行的测试脚本后,说明测试任务结束,服务端可以调用恢复环境配置脚本clean_cfg,以将测试平台恢复至默认环境状态,并将topo_env设置为0。
图5是本发明一实施例的一种自动化测试装置的框图,如图5所示,该装置可以包括:
读取模块510,用于依序从任务列表中读取一个待执行的测试脚本,作为当前测试脚本;
判断模块520,用于判断所述当前测试脚本的环境属性值,与测试平台的环境状态值是否匹配;其中,所述环境属性值表征所述当前测试脚本所适用的高可用性模式环境,所述测试平台的环境状态值表征所述测试平台当前的高可用性模式环境;
执行模块530,用于若匹配,执行所述当前测试脚本,并在执行完毕后,返回所述依序从任务列表中读取一个待执行的测试脚本,作为当前测试脚本的步骤;
确定模块540,用于当无法从所述任务列表中读取待执行的测试脚本时,确定所述任务列表指示的测试任务结束。
在一实施例中,所述装置还包括:
获取模块550(图中未示出),用于响应于测试指令,获取所述任务列表;其中,所述任务列表包括至少一个待执行的测试脚本。
在一实施例中,所述装置还包括:
构建模块560(图中未示出),用于调用公共脚本库中的基础环境配置脚本,构建默认初始环境;其中,所述默认初始环境为未启用高可用性模式的环境;为所述测试平台设置与默认初始环境对应的环境状态值。
在一实施例中,所述装置还包括:
判断模块520,还用于判断所述当前测试脚本的环境属性值,是否与异常状态值集合中任一环境状态值匹配;其中,所述异常状态值集合包含无法构建的高可用性模式环境对应的环境状态值;
读取模块510,还用于若与所述异常状态值集合中任一环境状态值匹配,返回所述依序从任务列表中读取一个待执行的测试脚本的步骤;
判断模块520,还用于若不与所述异常状态值集合中任一环境状态值匹配,继续执行所述判断所述当前测试脚本的环境属性值,与测试平台的环境状态值是否匹配的步骤。
在一实施例中,所述装置还包括:
构建模块560(图中未示出),用于若不匹配,为所述当前测试脚本构建其所适用的高可用性模式环境;
执行模块530,还用于在构建所述当前测试脚本所适用的高可用性模式环境后,执行所述当前测试脚本,并在执行完毕后,返回所述依序从任务列表中读取一个待执行的测试脚本,作为当前测试脚本的步骤。
在一实施例中,所述构建模块560(图中未示出),还用于:
判断所述测试平台的环境状态值,是否指示默认初始环境;
如果是,依据所述当前测试脚本的环境属性值,从公共脚本库中调用所述环境属性值对应的目标环境配置脚本,以构建所述当前测试脚本所适用的高可用性模式环境。
在一实施例中,所述构建模块560(图中未示出),还用于:
如果否,从所述公共脚本库中调用恢复环境配置脚本,以将所述测试平台恢复至所述默认初始环境;
依据所述当前测试脚本的环境属性值,从公共脚本库中调用所述环境属性值对应的目标环境配置脚本,以构建所述当前测试脚本所适用的高可用性模式环境。
在一实施例中,所述构建模块560(图中未示出),还用于:
调用所述环境属性值对应的目标环境配置脚本之后,判断所述当前测试脚本所使用的高可用性模式环境是否构建成功;
若未构建成功,将无法构建的高可用性模式环境对应的环境状态值,加入异常状态值集合。
上述装置中各个模块的功能和作用的实现过程具体详见上述自动化测试方法中对应步骤的实现过程,在此不再赘述。
在本申请所提供的几个实施例中,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (10)
1.一种自动化测试方法,其特征在于,包括:
依序从任务列表中读取一个待执行的测试脚本,作为当前测试脚本;
判断所述当前测试脚本的环境属性值,与测试平台的环境状态值是否匹配;其中,所述环境属性值表征所述当前测试脚本所适用的高可用性模式环境,所述测试平台的环境状态值表征所述测试平台当前的高可用性模式环境;
若匹配,执行所述当前测试脚本,并在执行完毕后,返回所述依序从任务列表中读取一个待执行的测试脚本,作为当前测试脚本的步骤;
当无法从所述任务列表中读取待执行的测试脚本时,确定所述任务列表指示的测试任务结束。
2.根据权利要求1所述的方法,其特征在于,在所述依序从任务列表中读取一个待执行的测试脚本,作为当前测试脚本之前,所述方法还包括:
响应于测试指令,获取所述任务列表;其中,所述任务列表包括至少一个待执行的测试脚本。
3.根据权利要求1所述的方法,其特征在于,在所述依序从任务列表中读取一个待执行的测试脚本,作为当前测试脚本之前,所述方法还包括:
调用公共脚本库中的基础环境配置脚本,构建默认初始环境;其中,所述默认初始环境为未启用高可用性模式的环境;
为所述测试平台设置与默认初始环境对应的环境状态值。
4.根据权利要求1所述的方法,其特征在于,在所述依序从任务列表中读取一个待执行的测试脚本,作为当前测试脚本之后,所述方法还包括:
判断所述当前测试脚本的环境属性值,是否与异常状态值集合中任一环境状态值匹配;其中,所述异常状态值集合包含无法构建的高可用性模式环境对应的环境状态值;
若与所述异常状态值集合中任一环境状态值匹配,返回所述依序从任务列表中读取一个待执行的测试脚本的步骤;
若不与所述异常状态值集合中任一环境状态值匹配,继续执行所述判断所述当前测试脚本的环境属性值,与测试平台的环境状态值是否匹配的步骤。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若不匹配,为所述当前测试脚本构建其所适用的高可用性模式环境;
在构建所述当前测试脚本所适用的高可用性模式环境后,执行所述当前测试脚本,并在执行完毕后,返回所述依序从任务列表中读取一个待执行的测试脚本,作为当前测试脚本的步骤。
6.根据权利要求5所述的方法,其特征在于,所述为所述当前测试脚本构建其所适用的高可用性模式环境,包括:
判断所述测试平台的环境状态值,是否指示默认初始环境;
如果是,依据所述当前测试脚本的环境属性值,从公共脚本库中调用所述环境属性值对应的目标环境配置脚本,以构建所述当前测试脚本所适用的高可用性模式环境。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
如果否,从所述公共脚本库中调用恢复环境配置脚本,以将所述测试平台恢复至所述默认初始环境;
依据所述当前测试脚本的环境属性值,从公共脚本库中调用所述环境属性值对应的目标环境配置脚本,以构建所述当前测试脚本所适用的高可用性模式环境。
8.根据权利要求6或7所述的方法,其特征在于,所述方法还包括:
调用所述环境属性值对应的目标环境配置脚本之后,判断所述当前测试脚本所使用的高可用性模式环境是否构建成功;
若未构建成功,将无法构建的高可用性模式环境对应的环境状态值,加入异常状态值集合。
9.一种电子设备,其特征在于,所述电子设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行权利要求1-8任意一项所述的自动化测试方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序可由处理器执行以完成权利要求1-8任意一项所述的自动化测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210927821.4A CN115168236A (zh) | 2022-08-03 | 2022-08-03 | 自动化测试方法及电子设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210927821.4A CN115168236A (zh) | 2022-08-03 | 2022-08-03 | 自动化测试方法及电子设备、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115168236A true CN115168236A (zh) | 2022-10-11 |
Family
ID=83477592
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210927821.4A Pending CN115168236A (zh) | 2022-08-03 | 2022-08-03 | 自动化测试方法及电子设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115168236A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115640236A (zh) * | 2022-12-05 | 2023-01-24 | 荣耀终端有限公司 | 一种脚本质量的检测方法及计算设备 |
-
2022
- 2022-08-03 CN CN202210927821.4A patent/CN115168236A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115640236A (zh) * | 2022-12-05 | 2023-01-24 | 荣耀终端有限公司 | 一种脚本质量的检测方法及计算设备 |
CN115640236B (zh) * | 2022-12-05 | 2023-05-30 | 荣耀终端有限公司 | 一种脚本质量的检测方法及计算设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109698771B (zh) | 游戏服务器压力测试方法及装置 | |
CN108399132B (zh) | 一种调度测试方法、装置及存储介质 | |
CN109308227B (zh) | 故障检测控制方法及相关设备 | |
CN107241315B (zh) | 银行网关接口的接入方法、装置及计算机可读存储介质 | |
CN109189342B (zh) | 一种磁盘挂载方法、装置、设备及存储介质 | |
CN111813495A (zh) | 节点测试方法和装置、存储介质和电子装置 | |
CN115168236A (zh) | 自动化测试方法及电子设备、存储介质 | |
CN110198222B (zh) | 一种配电自动化终端即插即用测试方法及测试主站 | |
CN111124724B (zh) | 一种分布式块存储系统的节点故障测试方法及装置 | |
CN110413437B (zh) | 网络命名空间异常处理方法、装置、设备及可读存储介质 | |
CN110990289B (zh) | 一种自动提交bug的方法、装置、电子设备及存储介质 | |
CN110134558B (zh) | 一种服务器的检测方法和装置 | |
CN111427777A (zh) | 一种sol测试的方法、系统、设备以及介质 | |
CN114064343B (zh) | 一种区块链的异常处置方法及装置 | |
CN116230067A (zh) | 一种固态硬盘自动化测试方法、系统、设备及介质 | |
CN115733741A (zh) | 一种针对待测系统的异常场景测试方法和装置 | |
CN107959595B (zh) | 一种异常检测的方法、装置及系统 | |
CN112596750B (zh) | 应用测试方法、装置、电子设备及计算机可读存储介质 | |
CN113900952A (zh) | 测试用例执行方法、装置、终端设备和可读存储介质 | |
CN111209197B (zh) | 应用程序持续集成测试方法、系统、设备和存储介质 | |
CN110855526B (zh) | 检测数据源连接的方法、装置、存储介质及电子设备 | |
CN114650211A (zh) | 故障修复方法、装置、电子设备和计算机可读存储介质 | |
CN108845932B (zh) | 一种网络库的单元测试方法、装置、存储介质及终端 | |
CN110289977B (zh) | 物流仓库系统的故障检测方法及系统、设备和存储介质 | |
CN111400094A (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 |