掌桥专利:专业的专利平台
掌桥专利
首页

软件自动化测试方法及装置

文献发布时间:2023-06-19 10:57:17


软件自动化测试方法及装置

技术领域

本发明涉及人工智能技术领域,具体地,涉及一种软件自动化测试方法及装置。

背景技术

在项目软件研发过程中,为了更好的模拟最终版本投产上线后的实际业务应用场景,对于功能测试中需要使用的数据质量和完善度标准要求非常高。在最后一轮回归测试进行测试环境的数据准备时,一般会复制抽取部分生产环境的数据,并对抽取的数据脱敏处理后恢复到测试环境的方式来准备测试环境。测试环境准备完成后提供给测试人员进行接下来的版本验收测试。但因为测试环境的硬件资源等条件限制,所以在生产环境数据抽取和恢复时不能对生产环境的数据进行全量的抽取恢复,只能通过部分抽取的方式来准备测试数据进行验收测试。

在测试环境搭建时,因为同期会有多个版本进行测试,每个系统版本都会搭建一套相对独立测试环境,测试人员使用对应的测试环境对版本功能进行测试验证。

随着系统建设越来越复杂,一个完整的交易操作流程过程中所涉及到的系统及功能也越来越多,对于测试过程中测试人员使用到的测试柜员账号,只有当测试柜员账号交易操作过程中所涉及到的所有系统或服务对应的测试数据都完整,同时对应的国家、地区、网点信息都配套完整的情况下才能展开有效的测试,否则会出现因为部分数据的缺失导致无法正常交易操作等情况。

同时在大型的应用系统中,柜员数据信息的存储也经常会设计为多个信息域存储在多个不同的信息系统中,只有某个柜员的信息在多个系统中全部数据完整时且配套时,该柜员账号才能进行正常的系统登录展开交易操作,否则会由于柜员信息的缺失导致无法进行登录。

在测试人员进行系统验收测试的过程中,因为金融行业类应用系统对于登录本系统的测试柜员账号的使用及权限管理要求非常严格,许多系统都会有用户单点登录控制、用户登录时间超长控制、用户可使用功能控制等功能,通过这些功能来实现对用户登录及可访问信息、可操作功能的约束及管控,两个测试人员同时使用同一个测试柜员账号进行测试时,会由于系统的单点登录等功能的限制导致其中一个测试人员无法使用该测试柜员账号进行正常的测试工作。

因为测试柜员账号在大部分交易模式下是与权限、网点和岗位编号相关联的,当两个测试柜员账号满足同等的岗位编号、所属同一个网点并具有同等权限时是可以在相互更换后进行测试的,所以在解决上述问题时一般采用新开立测试柜员账号的方式,在测试环境中开立多个同等岗位编号和权限的测试柜员数据,每次准备测试环境时都进行初始化。

在当前这种模式下,主要存在以下问题:

1、一般情况下,测试环境中符合测试柜员账号对应的系统相对完整或服务配套数据相对完整的测试柜员账号数量较少。因此在实际的测试使用过程中,测试人员经常会出现测试工作中使用同一个测试柜员账号的情况,当两个测试人员同时使用同一个测试柜员账号进行测试时,由于被测系统单点登录等功能的限制,导致测试柜员账号登录操作产生冲突,当第一个测试人员在测试中时第二个测试人员无法进行测试;或者第二个测试人员使用测试柜员账号登录后第一个测试人员被签退,影响整体测试的效率。

2、在使用自动化测试模式时,因为自动化可以批量同时提交多个脚本进行执行,这种测试柜员账号使用冲突问题显得更为明显,往往在同一个时间段使用同一个测试柜员账号的脚本只能有一个执行成功,其他均会因为登录柜员账号冲突问题失败,大大影响自动化测试的测试效率。

3、在新开立测试柜员账号和测试人员规模达到几百人的测试组织中,伴随着多期版本迭代,虽然可用的测试专用柜员账号在增加,但由于测试人员变动、测试业务跨部室调整、不同测试环境中测试专用柜员账号的维护信息不同步等原因,在经过多期版本测试后,会出现使用频度很高的热门测试专用柜员账号,以及不怎么使用的冷门测试专用柜员账号,虽然通过手工调整测试柜员账号的模式对存量的测试柜员账号进行调整,但由于涉及到多个系统之间的数据准备及同步,需要用户进行业务手段变更和多系统联动,操作流程繁琐,耗时长,所以手工调整的效果不理想。

4、因为热门的测试柜员账号数据每期版本测试都会使用,所以在测试环境中配套的测试数据一般较为完整;而冷门测试柜员账号数据因为使用的人不多,当某期版本数据没有恢复完善或者出现问题时,就会导致该测试柜员账号对应的部分交易无法进行测试,遇到这种情况后,测试人员通常尝试更换到其他比较好用测试柜员账号来进行测试。经过一段时间的使用后,往往测试人员都会逐渐偏好于在测试过程中使用热门测试专用柜员账号,又会出现测试柜员账号被多人共用而出现使用冲突的情况。

5、在金融行业的自动化测试过程中,由于交易流程长、对数据质量要求高以及对硬件和数据等资源的限制,测试人员在进行手工测试和自动化测试时一般会在同一套环境中进行。自动化测试脚本中使用的测试柜员账号数据也常常是业务人员进行手工测试时所用的测试柜员账号,故提交自动化脚本执行时,这种测试柜员账号登录冲突的问题也会与当前正在进行的手工测试产生影响。

因为上述问题的存在,使得不同测试人员在同一个环境时,或手工测试与自动化测试之间存在共用测试柜员账号时会导致测试柜员账号冲突,进一步造成交易测试操作失败,极大的影响了软件版本功能测试验证的工作效率。

发明内容

本发明实施例的主要目的在于提供一种软件自动化测试方法及装置,以解决测试柜员账号冲突的问题,提高软件测试效率。

为了实现上述目的,本发明实施例提供一种软件自动化测试方法,包括:

获取软件自动化测试任务中的自动化测试脚本,从自动化测试脚本中提取初始测试柜员账号;

根据初始测试柜员账号的账号业务属性与空闲测试柜员账号的账号业务属性的匹配结果确定目标测试柜员账号;

将自动化测试脚本中的初始测试柜员账号替换为目标测试柜员账号,根据替换后的自动化测试脚本执行软件自动化测试任务。

本发明实施例还提供一种软件自动化测试装置,包括:

初始测试柜员账号提取模块,用于获取软件自动化测试任务中的自动化测试脚本,从自动化测试脚本中提取初始测试柜员账号;

目标测试柜员账号确定模块,用于根据初始测试柜员账号的账号业务属性与空闲测试柜员账号的账号业务属性的匹配结果确定目标测试柜员账号;

测试柜员账号替换模块,用于将自动化测试脚本中的初始测试柜员账号替换为目标测试柜员账号,根据替换后的自动化测试脚本执行软件自动化测试任务。

本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并在处理器上运行的计算机程序,处理器执行计算机程序时实现所述的软件自动化测试方法的步骤。

本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现所述的软件自动化测试方法的步骤。

本发明实施例的软件自动化测试方法及装置先从自动化测试脚本中提取初始测试柜员账号,然后根据初始测试柜员账号的账号业务属性与空闲测试柜员账号的账号业务属性的匹配结果确定目标测试柜员账号,最后将自动化测试脚本中的初始测试柜员账号替换为目标测试柜员账号,根据替换后的自动化测试脚本执行软件自动化测试任务,可以解决测试柜员账号冲突的问题,提高软件测试效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一实施例中软件自动化测试方法的流程图;

图2是账号业务属性的调整流程图;

图3是本发明实施例中软件自动化测试装置的结构框图;

图4是本发明另一实施例中软件自动化测试装置的结构框图;

图5是图4中模块的功能流程示意图;

图6是脚本数据分析提取模块和柜员账号数据存储模块的功能流程图;

图7是柜员账号属性调整模块的功能流程图;

图8是本发明实施例中计算机设备的结构框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。

鉴于现有技术在测试过程中经常出现由于测试柜员账号冲突导致被测交易测试操作失败的情况,极大的影响了软件版本功能测试验证的工作效率,本发明实施例提供一种软件自动化测试方法,可以解决测试柜员账号冲突的问题,提高软件测试效率。以下结合附图对本发明进行详细说明。

本发明对自动化测试过程中所运行脚本使用的测试柜员账号进行提取,并在后台的柜员账号数据存储模块中查找具备同等条件和状态的柜员账号,将自动化脚本中的初始测试柜员账号置换为自动化测试专用柜员账号(测试柜员账号),解决自动化测试柜员账号和手工测试柜员账号使用冲突的问题;同时,本发明通过柜员账号使用状态维护模块登记所有自动化测试专用柜员账号的当前使用状态,只选取空闲的自动化测试专用柜员账号,解决多个自动化测试脚本同时执行时使用同一个测试柜员账号导致的柜员账号使用冲突问题,提高测试执行的效率。

图1是本发明一实施例中软件自动化测试方法的流程图。如图1所示,软件自动化测试方法包括:

S101:获取软件自动化测试任务中的自动化测试脚本,从自动化测试脚本中提取初始测试柜员账号。

其中,当测试人员提交软件自动化测试任务时,先判断是否需要替换柜员数据(测试柜员账号),如不需要则直接执行任务;如需要则开始执行S101。

一实施例中,从自动化测试脚本中提取初始测试柜员账号包括:

根据预设关键字和自动化测试脚本对应的脚本规则从自动化测试脚本中提取柜员账号登录交易,确定柜员账号登录交易对应的初始测试柜员账号。

具体实施时,不同类型的自动化工具在编制自动化测试脚本时会将脚本运行步骤和脚本运行参数分离存储,分别形成脚本运行步骤和脚本运行参数两个文件。文件存储方式一般包括txt,bin等文本格式文件、key-value格式xml配置文件和excel等表格文件。本发明根据不同的脚本类型选取对应的脚本规则,对脚本运行步骤文件进行解析,根据柜员账号登录交易对应的关键字提取脚本中包含的柜员账号登录交易。找到所有的柜员账号登录交易后,再根据柜员账号登录交易在脚本运行参数文件中找到对应的初始测试柜员账号(登陆交易柜员账号),在柜员账号数据存储模块中记录初始测试柜员账号以及该初始测试柜员账号在脚本运行参数文件中的存储位置。其中,当自动化测试脚本未被参数化时只存在脚本运行步骤文件,此时从脚本运行步骤文件查找柜员账号登录交易对应的初始测试柜员账号。

例如,某类型的自动化测试脚本的脚本运行参数文件是以表格文件存储的。经过对脚本运行步骤文件的解析,发现有两行指令含有关键字“柜员账号”,表明该脚本中存在两个柜员账号登录交易,对应柜员账号在脚本运行参数文件中的位置,分别是柜员账号90001在第a行第b列,柜员账号90002在第k行第g列。

S102:根据初始测试柜员账号的账号业务属性与空闲测试柜员账号的账号业务属性的匹配结果确定目标测试柜员账号。

其中,空闲测试柜员账号存储在柜员账号数据存储模块中。

表1

表1是同一环境中的测试柜员账号表。如表1所示,账号业务属性包括国家号、地区号、网点号、岗位编号、更新日期、使用状态、使用次数和测试环境。通过柜员账号数据存储模块中的测试柜员账号表,本发明中的柜员账号使用状态维护模块可以实现对柜员账号使用情况和数据异常情况的维护和登记,到达柜员账号复用的目的,保证同一测试环境中的多个柜员账号同时登录时不发生柜员账号登录冲突问题。用户可以按照自动化任务并发程度和业务需求,在测试环境中配置对应数量的专用测试柜员账号。

当测试柜员账号没有登录时,使用状态记为空闲可用,此时可被软件自动化测试任务获取使用。当软件自动化测试任务获取某测试柜员账号并开始执行脚本时,将对应的测试柜员账号的使用状态改为使用中,并记录状态更新日期,此时该测试柜员账号被独占,其他任务不能获取该测试柜员账号,防止测试柜员账号在不同终端上登录导致冲突报错;当任务执行完成,该测试柜员账号退出登录后,再将该测试柜员账号的使用状态修改成空闲可用,并记录状态更新日期,此时该测试柜员账号又可以被其他软件自动化测试任务获取使用。

本发明通过柜员账号使用状态维护模块周期性扫描柜员账号数据存储模块中的测试柜员账号,对使用状态异常的测试柜员账号进行恢复处理。

一实施例中,还包括:确定当前时间与工作测试柜员账号的更新日期的差值;根据差值与预设时间阈值的比较结果将工作测试柜员账号改为空闲测试柜员账号。

例如,对于长时间处于“在用”使用状态中的测试柜员账号(工作测试柜员账号),由于软件自动化测试任务在执行中可能出现宕机或系统崩溃等不可预知的错误,造成测试柜员账号一直处于“在用”使用状态的情况,故柜员账号使用状态维护模块的周期性守护任务会发现并处理使用超时的测试柜员账号数据。该柜员账号使用状态维护模块定时扫描柜员账号数据存储模块中的测试柜员账号,更新日期长时间没有变化且处于“在用”使用状态的测试柜员账号数据,判断测试柜员账号数据的登录状态,如处于登录中进行强制签退,并重置使用状态,修改该测试柜员账号的使用状态改为空闲可用,同时记录更新日期。

一实施例中,还包括:初始化异常测试柜员账号的账号业务属性并将异常测试柜员账号改为空闲测试柜员账号。

例如,对于长时间处于“异常”使用状态中的测试柜员账号(异常测试柜员账号),由于柜员账号属性调整模块在柜员账号属性相关业务系统中修改测试柜员账号的账号业务属性可能出现修改报错导致账号业务属性不一致的异常情况,故柜员账号使用状态维护模块的周期性守护任务还会发现并处理使用状态异常的专用柜员数据。该模块定时扫描数据存储模块中的自动化专用柜员,找到使用状态是异常的测试柜员账号,再通过柜员账号属性调整模块将柜员账号的各账号业务属性都修改为初始值,保证各个柜员账号属性业务系统中的号业务属性数据统一。全部调整成功后,再修改柜员账号数据存储模块中记录的测试柜员账号的账号业务属性,修改使用状态为空闲可用,同时记录更新日期。

一实施例中,S102包括:当初始测试柜员账号的账号业务属性与空闲测试柜员账号的账号业务属性匹配时,根据各匹配的空闲测试柜员账号的账号业务属性从各匹配的空闲测试柜员账号中选择目标测试柜员账号。

具体实施时,如果账号业务属性匹配的空闲测试柜员账号有多个时,为了让测试柜员账号的使用频度平均,避免出现某些测试柜员账号重复使用,另一部分测试柜员账号长时间没有使用的情况,根据测试柜员账号的更新日期和使用次数,选择使用次数最少且更新日期最早的空闲测试柜员账号。

一实施例中,S102还包括:当初始测试柜员账号的账号业务属性未与任一空闲测试柜员账号的账号业务属性匹配时,根据初始测试柜员账号的账号业务属性与各空闲测试柜员账号的账号业务属性计算各空闲测试柜员账号的优先级参数,确定优先级参数的最大值对应的空闲测试柜员账号为待调整测试柜员账号;将待调整测试柜员账号的账号业务属性调整为初始测试柜员账号的账号业务属性,确定调整后的待调整测试柜员账号为目标测试柜员账号。

一实施例中,根据初始测试柜员账号的账号业务属性与各空闲测试柜员账号的账号业务属性计算各空闲测试柜员账号的优先级参数包括:

根据初始测试柜员账号的账号业务属性与各空闲测试柜员账号的账号业务属性确定各空闲测试柜员账号的账号业务属性参数;根据各空闲测试柜员账号的账号业务属性参数与对应的账号业务属性权重计算各空闲测试柜员账号的优先级参数。

具体实施时,可以通过如下公式确定各空闲测试柜员账号的优先级参数:

其中,G

具体来说,由于岗位编号代表测试柜员账号的权限且不能修改,所以岗位编号可以作为适配度因子体现。待调整测试柜员账号的权限不能比初始测试柜员账号的权限小,如果待调整测试柜员账号的岗位编号小于初始测试柜员账号的岗位编号,则该因子得分为0;岗位编号越大,权限差距越大,对应的适配度因子越小,待调整测试柜员账号的岗位编号每与初始测试柜员账号的岗位编号相差1,其适配度因子降低0.2。

更新日期和使用次数用来控制测试柜员账号的使用分布,故对应的权重也相对大一些,账号业务属性参数则根据当前该字段去重值排序的队列分布计算。更新日期越早或使用次数越少,则账号业务属性参数越大。将各空闲测试柜员账号的更新日期去重后按从新到旧排序,将各空闲测试柜员账号的使用次数去重后按从大到小排序,则空闲测试柜员账号的更新日期参数为空闲测试柜员账号的更新日期所在排序位置与去重后的更新日期数量的比值,空闲测试柜员账号的使用次数参数为空闲测试柜员账号的使用次数所在排序位置与去重后的使用次数数量的比值。

国家号、地区号和网点号属于测试柜员账号可更新的账号业务属性,根据范围大小设对应的权重,账号业务属性匹配则参数为1,不匹配则参数为0。

例如,国家号权重为20,地区号权重为10,网点号权重为5,更新日期权重为40,使用次数权重为40。初始测试柜员账号的账号业务属性分别为国家号11、地区号300,网点号3和岗位编号6。

表2

表2是空闲测试柜员账号表。如表2所示:

对于空闲测试柜员账号80001,由于初始测试柜员账号的岗位编号是6,该空闲测试柜员账号的岗位编号是5,小于6,所以适配度因子为0,对应的优先级参数G

对于空闲测试柜员账号80002,国家号参数为1(80002的国家号11与初始测试柜员账号的国家号11匹配),地区号参数为0(80002的地区号200与初始测试柜员账号的地区号300不匹配),网点号参数为1(80002的网点号3与初始测试柜员账号的网点号3匹配),更新日期参数为0.75(去重后的更新日期数量为4,将更新日期从新到旧排序,空闲测试柜员账号80002的更新日期排在第3位,故为3/4=0.75),使用次数参数为0.33(去重后的使用次数数量为3,将使用次数从大到小排序,空闲测试柜员账号80002的使用次数4排在第一位,故为1/3=0.33),适配度因子为1(80002的岗位编号与初始测试柜员账号的岗位编号匹配),因此空闲测试柜员账号80002的优先级参数为:

对于空闲测试柜员账号80003,国家号参数为1(80003的国家号11与初始测试柜员账号的国家号11匹配),地区号参数为1(80003的地区号300与初始测试柜员账号的地区号300匹配),网点号参数为0(80003的网点号28与初始测试柜员账号的网点号3不匹配),更新日期参数为0.5(去重后的更新日期数量为4,将更新日期从新到旧排序,空闲测试柜员账号80003的更新日期排在第2位,故为2/4=0.5),使用次数参数为0.67(去重后的使用次数数量为3,将使用次数从大到小排序,空闲测试柜员账号80003的使用次数3排在第二位,故为2/3=0.67),适配度因子为1(80003的岗位编号与初始测试柜员账号的岗位编号匹配),因此空闲测试柜员账号80003的优先级参数为:

对于空闲测试柜员账号80004,国家号参数为1(80004的国家号11与初始测试柜员账号的国家号11匹配),地区号参数为1(80004的地区号300与初始测试柜员账号的地区号300匹配),网点号参数为0(80004的网点号30与初始测试柜员账号的网点号3不匹配),更新日期参数为0.25(去重后的更新日期数量为4,将更新日期从新到旧排序,空闲测试柜员账号80004的更新日期排在第1位,故为1/4=0.25),使用次数参数为1(去重后的使用次数数量为3,将使用次数从大到小排序,空闲测试柜员账号80004的使用次数2排在第三位,故为3/3=1),适配度因子为0.8(80004的岗位编号为7,与初始测试柜员账号的岗位编号为6,故适配度因子为1-(7-6)×0.2=0.8),因此空闲测试柜员账号80004的优先级参数为:

选择上述优先级参数的最大值对应的空闲测试柜员账号80003为待调整测试柜员账号,通过柜员账号属性调整模块将80003的账号业务属性调整为初始测试柜员账号的账号业务属性。

如当前没有足够的空闲测试柜员账号,即测试环境和使用状态等均不满足条件,优先级参数均为0时,暂停执行软件自动化测试任务,等待10分钟后再进行尝试,直到柜员账号数据存储模块中存在执行软件自动化测试任务所需的空闲测试柜员账号。

图2是账号业务属性的调整流程图。如图2所示,账号业务属性存储在A,B,C和D四个业务系统中,柜员账号属性调整模块按照顺序对这些业务系统中的账号业务属性进行调整。当各业务系统中的账号业务属性全部更新完毕时,同步修改柜员账号数据存储模块中对应的账号业务属性字段。

柜员账号属性调整模块在每个业务系统中调整后,会自动验证该业务系统中的账号业务属性是否更新成功。如某系统调用接口发生异常没有更新成功时,将重新执行该更新过程;如尝试3次仍没有成功,则暂停执行当前软件自动化测试任务,等待10分钟后再进行尝试,并产生警告信息提示更新不成功,检查该业务系统是否存在问题。此时可能存在该测试柜员账号的账号业务属性可能在多个业务系统中不一致的情况,属于脏数据无法使用,故柜员账号属性调整模块将柜员账号数据存储模块中该测试柜员账号的使用状态置为异常,不能被软件自动化测试任务所用。状态异常的测试柜员账号通过柜员账号使用状态维护模块定期的柜员账号扫描任务进行异常处理。

S103:将自动化测试脚本中的初始测试柜员账号替换为目标测试柜员账号,根据替换后的自动化测试脚本执行软件自动化测试任务。

具体实施时,可以通过脚本数据维护模块,根据柜员账号数据存储模块中记录的初始测试柜员账号在脚本运行参数文件中的存储位置,维护修改脚本运行步骤文件或和脚本运行参数文件,将初始测试柜员账号替换为目标测试柜员账号。

例如,将初始测试柜员账号90001替换为目标测试柜员账号80001写到第a行第b列,将初始测试柜员账号90002替换为目标测试柜员账号80002写到第k行第g列,以此实现多个测试柜员账号的数据替换。

图1所示的软件自动化测试的执行主体可以为计算机。由图1所示的流程可知,本发明实施例的软件自动化测试方法先从自动化测试脚本中提取初始测试柜员账号,然后根据初始测试柜员账号的账号业务属性与空闲测试柜员账号的账号业务属性的匹配结果确定目标测试柜员账号,最后将自动化测试脚本中的初始测试柜员账号替换为目标测试柜员账号,根据替换后的自动化测试脚本执行软件自动化测试任务,可以解决测试柜员账号冲突的问题,提高软件测试效率。

本发明实施例的具体流程如下:

1、获取软件自动化测试任务中的自动化测试脚本。

2、根据预设关键字和自动化测试脚本对应的脚本规则从自动化测试脚本中提取柜员账号登录交易,确定柜员账号登录交易对应的初始测试柜员账号。

3、当初始测试柜员账号的账号业务属性与空闲测试柜员账号的账号业务属性匹配时,根据各匹配的空闲测试柜员账号的账号业务属性从各匹配的空闲测试柜员账号中选择目标测试柜员账号。

4、当初始测试柜员账号的账号业务属性未与任一空闲测试柜员账号的账号业务属性匹配时,根据初始测试柜员账号的账号业务属性与空闲测试柜员账号的账号业务属性计算各空闲测试柜员账号的优先级参数,确定优先级参数的最大值对应的空闲测试柜员账号为待调整测试柜员账号,将待调整测试柜员账号的账号业务属性调整为初始测试柜员账号的账号业务属性,确定调整后的待调整测试柜员账号为目标测试柜员账号。

5、将自动化测试脚本中的初始测试柜员账号替换为目标测试柜员账号,根据替换后的自动化测试脚本执行软件自动化测试任务。

综上,本发明实施例的软件自动化测试方法先从自动化测试脚本中提取初始测试柜员账号,然后根据初始测试柜员账号的账号业务属性与空闲测试柜员账号的账号业务属性的匹配结果确定目标测试柜员账号,最后将自动化测试脚本中的初始测试柜员账号替换为目标测试柜员账号,根据替换后的自动化测试脚本执行软件自动化测试任务,可以解决测试柜员账号冲突的问题,提高软件测试效率。

综上所述,本发明实施例提供的软件自动化测试方法具有以下有益效果:

1、自动化测试脚本执行时,测试人员可以选择使用原脚本中自带的初始测试柜员账号或替换后的目标测试柜员账号,对于测试人员原先的正常使用不产生影响。

2、测试柜员账号的使用、配置、占用、签退等将由本发明统一进行分配调度,不再使用原脚本中的初始测试柜员账号,从根本上解决自动化执行时高并发情景下产生的柜员账号使用冲突问题。

3、因本发明的测试柜员账号只在自动化测试执行过程中使用,所以与业务人员使用的手工测试柜员账号完全隔离,故不会与测试人员的手工测试过程也产生柜员账号使用冲突。

4、对于部分必须使用手工测试柜员账号的特殊任务,测试人员可以选择沿用脚本中配置的初始测试柜员账号(手工测试柜员账号)执行。

基于同一发明构思,本发明实施例还提供了一种软件自动化测试装置,由于该装置解决问题的原理与软件自动化测试方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。

图3是本发明实施例中软件自动化测试装置的结构框图。图4是本发明另一实施例中软件自动化测试装置的结构框图。图5是图4中模块的功能流程示意图。图6是脚本数据分析提取模块和柜员账号数据存储模块的功能流程图。图7是柜员账号属性调整模块和柜员账号使用状态维护模块的功能流程图。如图3-图7所示,软件自动化测试装置包括:

初始测试柜员账号提取模块,用于获取软件自动化测试任务中的自动化测试脚本,从自动化测试脚本中提取初始测试柜员账号;

目标测试柜员账号确定模块,用于根据初始测试柜员账号的账号业务属性与空闲测试柜员账号的账号业务属性的匹配结果确定目标测试柜员账号;

测试柜员账号替换模块,用于将自动化测试脚本中的初始测试柜员账号替换为目标测试柜员账号,根据替换后的自动化测试脚本执行软件自动化测试任务。

在其中一种实施例中,目标测试柜员账号确定模块包括:

目标测试柜员账号确定单元,用于当初始测试柜员账号的账号业务属性与空闲测试柜员账号的账号业务属性匹配时,根据各匹配的空闲测试柜员账号的账号业务属性从各匹配的空闲测试柜员账号中选择目标测试柜员账号。

在其中一种实施例中,目标测试柜员账号确定模块还包括:

待调整测试柜员账号确定单元,用于当初始测试柜员账号的账号业务属性未与任一空闲测试柜员账号的账号业务属性匹配时,根据初始测试柜员账号的账号业务属性与空闲测试柜员账号的账号业务属性计算各空闲测试柜员账号的优先级参数,确定优先级参数的最大值对应的空闲测试柜员账号为待调整测试柜员账号;

账号业务属性调整单元,用于将待调整测试柜员账号的账号业务属性调整为初始测试柜员账号的账号业务属性,确定调整后的待调整测试柜员账号为目标测试柜员账号。

在其中一种实施例中,测试柜员账号替换模块具体用于:

根据预设关键字和自动化测试脚本对应的脚本规则从自动化测试脚本中提取柜员账号登录交易,确定柜员账号登录交易对应的初始测试柜员账号。

如图4-图7所示,在实际应用中,软件自动化测试装置包括脚本数据分析提取模块、柜员账号数据匹配模块、柜员账号数据存储模块、柜员账号使用状态维护模块、柜员账号属性调整模块和脚本数据维护模块。

如图4-图5所示,先通过脚本数据分析提取模块逐一分析脚本语句,根据关键字提取自动化测试脚本中的柜员账号登录交易,再通过脚本参数的对应关系,得到初始测试柜员账号的账号业务属性。再通过柜员账号数据匹配模块,根据初始测试柜员账号的账号业务属性,在柜员账号数据存储模块中获取属性匹配且状态为空闲可用的测试柜员账号。如果没有属性匹配的测试柜员账号还需通过柜员账号属性调整模块更新空闲测试柜员账号的账号业务属性,使空闲测试柜员账号的账号业务属性满足需要。另外,还通过柜员账号使用状态维护模块记录测试柜员账号的状态,以此控制测试柜员账号的复用,处理异常状态。最后,通过脚本数据维护模块将目标测试柜员账号写到自动化脚本中,替换原有的初始测试柜员账号,自动化任务将以替换后的数据来执行。

如图6所示,脚本数据分析提取模块包括初始测试柜员账号提取模块,负责对要执行的自动化脚本依据脚本格式及规则进行分析,将脚本中使用的登录柜员账号数据全部提取出来。柜员账号数据存储模块中记录初始测试柜员账号以及该初始测试柜员账号在脚本运行参数文件中的存储位置。

柜员账号数据存储模块用于保存测试柜员账号的账号业务属性,比如国家号、地区号、网点号、岗位编号、更新日期、使用状态、使用次数和测试环境号等,通过这些账号业务属性,柜员账号数据匹配模块可以查询匹配对应的测试柜员账号,柜员账号使用状态维护模块通过使用状态字段实现对柜员账号使用情况和数据异常情况的维护和登记,到达柜员账号复用的目的。

如图7所示,柜员账号使用状态维护模块用于根据当前测试柜员账号的使用情况,对测试柜员账号的使用状态进行维护登记。

对于长时间处于“在用”使用状态中的测试柜员账号,由于软件自动化测试任务在执行中可能出现宕机或系统崩溃等不可预知的错误,造成测试柜员账号一直处于“在用”使用状态的情况,故柜员账号使用状态维护模块的周期性守护任务会发现并处理使用超时的测试柜员账号数据。该柜员账号使用状态维护模块定时扫描柜员账号数据存储模块中的测试柜员账号,更新日期长时间没有变化且处于“在用”使用状态的测试柜员账号数据,判断测试柜员账号数据的登录状态,如处于登录中进行强制签退,并重置使用状态,修改该测试柜员账号的使用状态改为空闲可用,同时记录更新日期。

对于长时间处于“异常”使用状态中的测试柜员账号,由于柜员账号属性调整模块在柜员账号属性相关业务系统中修改测试柜员账号的账号业务属性,可能出现修改报错导致账号业务属性不一致的异常情况,故柜员账号使用状态维护模块的周期性守护任务还会发现并处理使用状态异常的专用柜员数据。该模块定时扫描数据存储模块中的自动化专用柜员,找到使用状态是异常的测试柜员账号,再通过柜员账号属性调整模块将柜员账号的各账号业务属性都修改为初始值,保证各个柜员账号属性业务系统中的号业务属性数据统一。全部调整成功后,再修改柜员账号数据存储模块中记录的测试柜员账号的账号业务属性,修改使用状态为空闲可用,同时记录更新日期。

柜员账号数据匹配模块包括目标测试柜员账号确定单元和待调整测试柜员账号确定单元,用于根据脚本提取的初始测试柜员账号在当前任务所属测试环境中查询对应的国家号、地区号、网点号和岗位编号等账号业务属性,根据这些账号业务属性从柜员账号数据存储模块中获取属性匹配的测试柜员账号。

柜员账号属性调整模块包括账号业务属性调整单元,用于对相关业务系统中的各个账号业务属性进行修改维护。当各业务系统中的账号业务属性全部更新完毕时,同步修改柜员账号数据存储模块中对应的账号业务属性字段。

脚本数据维护模块包括测试柜员账号替换模块,用于根据柜员账号数据存储模块中记录的初始测试柜员账号在脚本运行参数文件中的存储位置,维护修改脚本运行步骤文件或和脚本运行参数文件,将初始测试柜员账号替换为目标测试柜员账号。

综上,本发明实施例的软件自动化测试装置先从自动化测试脚本中提取初始测试柜员账号,然后根据初始测试柜员账号的账号业务属性与空闲测试柜员账号的账号业务属性的匹配结果确定目标测试柜员账号,最后将自动化测试脚本中的初始测试柜员账号替换为目标测试柜员账号,根据替换后的自动化测试脚本执行软件自动化测试任务,可以解决测试柜员账号冲突的问题,提高软件测试效率。

本发明实施例还提供能够实现上述实施例中的软件自动化测试方法中全部步骤的一种计算机设备的具体实施方式。图8是本发明实施例中计算机设备的结构框图,参见图8,所述计算机设备具体包括如下内容:

处理器(processor)801和存储器(memory)802。

所述处理器801用于调用所述存储器802中的计算机程序,所述处理器执行所述计算机程序时实现上述实施例中的软件自动化测试方法中的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:

获取软件自动化测试任务中的自动化测试脚本,从自动化测试脚本中提取初始测试柜员账号;

根据初始测试柜员账号的账号业务属性与空闲测试柜员账号的账号业务属性的匹配结果确定目标测试柜员账号;

将自动化测试脚本中的初始测试柜员账号替换为目标测试柜员账号,根据替换后的自动化测试脚本执行软件自动化测试任务。

综上,本发明实施例的计算机设备先从自动化测试脚本中提取初始测试柜员账号,然后根据初始测试柜员账号的账号业务属性与空闲测试柜员账号的账号业务属性的匹配结果确定目标测试柜员账号,最后将自动化测试脚本中的初始测试柜员账号替换为目标测试柜员账号,根据替换后的自动化测试脚本执行软件自动化测试任务,可以解决测试柜员账号冲突的问题,提高软件测试效率。

本发明实施例还提供能够实现上述实施例中的软件自动化测试方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的软件自动化测试方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:

获取软件自动化测试任务中的自动化测试脚本,从自动化测试脚本中提取初始测试柜员账号;

根据初始测试柜员账号的账号业务属性与空闲测试柜员账号的账号业务属性的匹配结果确定目标测试柜员账号;

将自动化测试脚本中的初始测试柜员账号替换为目标测试柜员账号,根据替换后的自动化测试脚本执行软件自动化测试任务。

综上,本发明实施例的计算机可读存储介质先从自动化测试脚本中提取初始测试柜员账号,然后根据初始测试柜员账号的账号业务属性与空闲测试柜员账号的账号业务属性的匹配结果确定目标测试柜员账号,最后将自动化测试脚本中的初始测试柜员账号替换为目标测试柜员账号,根据替换后的自动化测试脚本执行软件自动化测试任务,可以解决测试柜员账号冲突的问题,提高软件测试效率。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

本领域技术人员还可以了解到本发明实施例列出的各种说明性逻辑块(illustrative logical block),单元,和步骤可以通过电子硬件、电脑软件,或两者的结合进行实现。为清楚展示硬件和软件的可替换性(interchangeability),上述的各种说明性部件(illustrative components),单元和步骤已经通用地描述了它们的功能。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个系统的设计要求。本领域技术人员可以对于每种特定的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本发明实施例保护的范围。

本发明实施例中所描述的各种说明性的逻辑块,或单元,或装置都可以通过通用处理器,数字信号处理器,专用集成电路(ASIC),现场可编程门阵列或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。

本发明实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件模块、或者这两者的结合。软件模块可以存储于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于ASIC中,ASIC可以设置于用户终端中。可选地,处理器和存储媒介也可以设置于用户终端中的不同的部件中。

在一个或多个示例性的设计中,本发明实施例所描述的上述功能可以在硬件、软件、固件或这三者的任意组合来实现。如果在软件中实现,这些功能可以存储与电脑可读的媒介上,或以一个或多个指令或代码形式传输于电脑可读的媒介上。电脑可读媒介包括电脑存储媒介和便于使得让电脑程序从一个地方转移到其它地方的通信媒介。存储媒介可以是任何通用或特殊电脑可以接入访问的可用媒体。例如,这样的电脑可读媒体可以包括但不限于RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁性存储装置,或其它任何可以用于承载或存储以指令或数据结构和其它可被通用或特殊电脑、或通用或特殊处理器读取形式的程序代码的媒介。此外,任何连接都可以被适当地定义为电脑可读媒介,例如,如果软件是从一个网站站点、服务器或其它远程资源通过一个同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或以例如红外、无线和微波等无线方式传输的也被包含在所定义的电脑可读媒介中。所述的碟片(disk)和磁盘(disc)包括压缩磁盘、镭射盘、光盘、DVD、软盘和蓝光光盘,磁盘通常以磁性复制数据,而碟片通常以激光进行光学复制数据。上述的组合也可以包含在电脑可读媒介中。

相关技术
  • 软件自动化测试方法、装置、计算机设备和存储介质
  • 软件自动化测试方法、装置、设备和计算机可读存储介质
技术分类

06120112740806