专利名称:一种多平台多并发自动化穿行测试系统
专利类型:发明专利
专利申请号:CN202311456052.5
专利申请(专利权)人:天讯瑞达通信技术有限公司
权利人地址:广东省广州市天河区华利路19号三楼
专利发明(设计)人:洪春生,梁景智,梁菲,张劲,庞卡迪
专利摘要:本发明公开了一种多平台多并发自动化穿行测试系统,涉及自动化测试技术领域。系统包括脚本管理模块、用例管理模块、任务管理模块、执行机调度模块和穿行数据库;任务管理模块包括任务配置模块和任务扫描模块;穿行数据库用于将测试数据处理为穿行测试参数;执行机调度模块包括用例执行模块和关键字提取模块;用例执行模块根据测试计划和穿行测试参数控制若干执行机执行测试用例,并生成测试数据文件;关键字提取模块用于识别测试数据文件中的关键字,并提取关键字对应的测试数据传输至穿行数据库。本申请通过执行机调度模块和穿行数据库实现穿行测试数据在各测试动作脚本之间共享,从而实现多并发的自动化穿行测试,提高了测试效率和测试质量。
主权利要求:
1.一种多平台多并发自动化穿行测试系统,其特征在于:包括依次通信连接的脚本管理模块、用例管理模块、任务管理模块、执行机调度模块和穿行数据库;
所述脚本管理模块用于存储测试动作脚本和脚本参数,以及管理脚本参数与测试动作脚本的映射关系;
所述用例管理模块用于配置测试用例,测试用例用于管理若干测试动作脚本和脚本优先级;
所述任务管理模块包括任务配置模块和任务扫描模块;所述任务配置模块用于设定测试任务的测试用例编号、用例优先级、运行环境、执行机指定信息和执行方式;所述任务扫描模块用于定期扫描测试任务并根据测试任务生成测试计划;
所述穿行数据库用于将测试数据处理为穿行测试参数;
所述执行机调度模块包括用例执行模块和关键字提取模块;所述用例执行模块根据测试计划控制若干执行机执行测试用例;所述执行测试用例包括执行测试用例中的若干测试动作脚本并根据穿行测试参数生成测试数据文件;所述关键字提取模块用于识别测试数据文件中的关键字,并提取所述关键字对应的测试数据传输至穿行数据库;
所述执行机调度模块还包括关键字管理模块;所述关键字管理模块用于设定关键字数据集,以及构建关键字数据集与所述测试任务的映射关系;所述关键字提取模块与所述关键字管理模块通信连接,所述关键字提取模块根据测试任务获取映射的关键字数据集,所述关键字提取模块根据关键字数据集识别测试数据文件中的关键字;
所述执行机调度模块用于执行穿行测试策略;所述穿行测试策略,包括步骤:S11、获取测试用例中脚本优先级最高的测试动作脚本,根据穿行测试参数生成测试数据文件;
S12、使用关键字提取模块,获取关键字管理模块存储的关键字数据集,根据关键字数据集识别测试数据文件中的关键字,并提取所述关键字对应的测试数据并传输至穿行数据库;
S13、穿行数据库将测试数据处理为穿行测试数据;所述穿行测试数据包括每轮步骤S12中的关键字对应的测试数据;
S14、根据脚本优先级选定下一个测试动作脚本,重复执行步骤S11至S13,直至测试用例对应的测试动作脚本全部执行完成;
所述执行机调度模块还包括测试报告模块;所述测试报告模块与所述用例执行模块通信连接,用于根据测试数据生成测试报告;所述测试报告用于可视化展示关键字以及关键字对应的测试数据;
所述定期扫描测试任务并根据测试任务生成测试计划,具体为:扫描测试任务的执行方式,所述执行方式包括手动执行和定时自动执行;若执行方式为定时自动执行,在达到自动执行条件时,根据测试任务生成测试计划;
所述根据测试任务生成测试计划,具体包括:
设定所有执行机的并发配置参数;
根据执行机指定信息测试任务是否已指定特定执行机;
若已指定特定执行机,则将测试任务分配至所述特定执行机;
若未指定特定执行机,则根据所述并发配置参数和空闲情况选择执行机,通过选择的执行机和测试任务生成测试计划;
所述执行机调度模块包括环境适配模块;所述环境适配模块用于匹配测试任务和执行机的运行环境;所述执行机的运行环境和测试任务的运行环境均包括Windows环境、Mac环境和安卓环境。
2.根据权利要求1所述的多平台多并发自动化穿行测试系统,其特征在于:所述Windows环境、Mac环境和安卓环境均包括RobotFramework。
3.根据权利要求1所述的多平台多并发自动化穿行测试系统,其特征在于:所述安卓环境还包括AppiumServerGUI、AppiumInspector和Appiumserver服务端;所述Mac环境还包括XCode和WebDriverAgentRunner。
4.根据权利要求1所述的多平台多并发自动化穿行测试系统,其特征在于:所述用例管理模块还用于拆分测试用例。 说明书 : 一种多平台多并发自动化穿行测试系统技术领域[0001] 本发明涉及自动化测试技术领域,具体是一种多平台多并发自动化穿行测试系统。背景技术[0002] 随着移动互联网技术发展,越来越多的系统需要迁移至移动端。然而,传统的自动化测试管理系统往往只针对PC端应用进行测试,无法满足对移动端APP进行自动化测试管理的需求。这就导致了移动端应用在测试过程中无法享受自动化测试带来的效益,增加了测试团队的工作负担。[0003] 同时,实际测试的时候会经常遇到一些功能需要跨系统来实现,涉及不同的系统之间的集成。例如,某系统包含有四个子系统,测试系统需要测试四个子系统才能完成完整的测试。然而,在传统的自动化测试系统中,无法实现跨系统的自动化测试,测试团队只能通过手动操作调度来完成这一过程。[0004] 因此,现有技术在移动端自动化测试管理和跨系统自动化测试方面存在缺陷。传统的自动化测试管理系统无法有效支持移动端应用的自动化测试需求,而且无法实现跨系统的自动化测试。这限制了移动端应用的迭代速度和质量,并且增加了测试团队的工作量和风险。发明内容[0005] 为解决现有技术特殊问题,本发明采用以下技术方案:[0006] 一种多平台多并发自动化穿行测试系统,包括依次通信连接的脚本管理模块、用例管理模块、任务管理模块、执行机调度模块和穿行数据库;[0007] 所述脚本管理模块用于存储测试动作脚本和脚本参数,以及管理脚本参数与测试动作脚本的映射关系;[0008] 所述用例管理模块用于配置测试用例,管理测试动作脚本与测试用例的映射关系;[0009] 所述任务管理模块包括任务配置模块和任务扫描模块;所述任务配置模块用于设定测试任务的测试用例编号、用例优先级、运行环境、执行机指定信息和执行方式;所述任务扫描模块用于定期扫描测试任务并根据测试任务生成测试计划;[0010] 所述穿行数据库用于将测试数据处理为穿行测试参数;[0011] 所述执行机调度模块包括用例执行模块和关键字提取模块;所述用例执行模块根据测试计划和穿行测试参数控制若干执行机执行测试用例,并生成测试数据文件;所述关键字提取模块用于识别测试数据文件中的关键字,并提取所述关键字对应的测试数据传输至穿行数据库。[0012] 作为本申请优选方案,所述执行机调度模块还包括关键字管理模块;所述关键字管理模块用于设定关键字数据集,以及构建关键字数据集与所述测试任务的映射关系;所述关键字提取模块与所述关键字管理模块通信连接,所述关键字提取模块根据测试任务获取映射的关键字数据集,所述关键字提取模块根据关键字数据集识别测试数据文件中的关键字。[0013] 作为本申请优选方案,所述执行机调度模块用于执行穿行测试策略;所述穿行测试策略,包括:[0014] S1、使用用例执行模块,根据测试计划获取测试任务,并获取测试任务中用例优先级最高的测试用例编号;[0015] S2、使用用例执行模块,根据穿行测试参数执行测试用例编号对应的测试用例,并根据测试用例的对应的测试动作脚本生成测试数据文件;[0016] S3、通过关键字提取模块,获取关键字管理模块存储的关键字数据集,根据关键字数据集识别测试数据文件中的关键字,并提取所述关键字对应的测试数据并传输至穿行数据库;[0017] S4、通过穿行数据库将测试数据处理为穿行测试数据;所述穿行测试数据包括每轮步骤S3产生的测试数据;[0018] S5、根据用例优先级选定下一个测试用例编号,重复执行步骤S2至S4,直至测试任务对应的测试用例全部执行完成。[0019] 作为本申请优选方案,所述执行机调度模块还包括测试报告模块;所述测试报告模块与所述用例执行模块通信连接,用于根据测试数据生成测试报告;所述测试报告用于可视化展示关键字以及关键字对应的测试数据。[0020] 作为本申请优选方案,所述定期扫描测试任务并根据测试任务生成测试计划,具体为:扫描测试任务的执行方式,所述执行方式包括手动执行和定时自动执行;若执行方式为定时自动执行,在达到自动执行条件时,根据测试任务生成测试计划。[0021] 作为本申请优选方案,所述根据测试任务生成测试计划,具体包括:[0022] 设定所有执行机的并发配置参数;[0023] 根据执行机指定信息测试任务是否已指定特定执行机;[0024] 若已指定特定执行机,则将测试任务分配至所述特定执行机;[0025] 若未指定特定执行机,则根据所述并发配置参数和空闲情况选择执行机,通过选择的执行机和测试任务生成测试计划。[0026] 作为本申请优选方案,所述执行机调度模块包括环境适配模块;所述环境适配模块用于匹配测试任务和执行机的运行环境;所述执行机的运行环境和测试任务的运行环境均包括Windows环境、Mac环境和安卓环境。[0027] 作为本申请优选方案,所述Windows环境、Mac环境和安卓环境均包括RobotFramework。[0028] 作为本申请优选方案,所述安卓环境还包括AppiumServerGUI、AppiumInspector和Appiumserver服务端;所述Mac环境还包括XCode和WebDriverAgentRunner。[0029] 作为本申请优选方案,所述用例管理模块还用于拆分测试用例。[0030] 与现有技术相比,本发明具有如下有益效果:[0031] 本申请通过脚本管理模块、用例管理模块和任务管理模块分别实现对脚本、用例和任务的管理配置;执行机调度模块包括用例执行模块和关键字提取模块,通过关键字提取模块识别测试数据文件中的关键字,并提取所述关键字对应的测试数据传输至穿行数据库,使得穿行测试数据在各测试动作脚本之间共享,从而用例执行模块可根据穿行测试参数在多平台环境下执行完整的测试计划,实现了多平台多并发的自动化穿行测试,提高了测试效率和测试质量。[0032] 本申请同时支持并发与非并发的任务执行方式。通过并发配置参数和根据执行机指定信息,根据不同测试场景的分配执行机,灵活地控制测试任务的并发性,并有效地分配和管理测试资源,提高测试效率。[0033] 本申请通过环境适配模块匹配测试任务和执行机的运行环境,确保测试任务支持在多种系统环境中运行,以满足多样化的测试需求。附图说明[0034] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。[0035] 图1为本发明一实施例提供的多平台多并发自动化穿行测试系统的结构示意图。具体实施方式[0036] 下面将结合实施例对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。[0037] 请参阅图1,本发明提供了一种多平台多并发自动化穿行测试系统,包括依次通信连接的脚本管理模块、用例管理模块、任务管理模块、执行机调度模块和穿行数据库。[0038] 所述脚本管理模块用于存储测试动作脚本和脚本参数,以及管理脚本参数与测试动作脚本的映射关系。[0039] 所述用例管理模块用于配置测试用例,测试用例用于管理若干测试动作脚本和脚本优先级。[0040] 所述任务管理模块包括任务配置模块和任务扫描模块。所述任务配置模块用于设定测试任务的测试用例编号、用例优先级、运行环境、执行机指定信息和执行方式。所述任务扫描模块用于定期扫描测试任务并根据测试任务生成测试计划。[0041] 所述穿行数据库用于将测试数据处理为穿行测试参数。[0042] 所述执行机调度模块包括用例执行模块和关键字提取模块。所述用例执行模块根据测试计划控制若干执行机执行测试用例;所述执行测试用例包括执行测试用例中的若干测试动作脚本并根据穿行测试参数生成测试数据文件;所述关键字提取模块用于识别测试数据文件中的关键字,并提取所述关键字对应的测试数据传输至穿行数据库。[0043] 其中,所述根据测试计划控制若干执行机执行测试用例,具体为:根据测试计划获取测试任务,根据测试任务中的用例优先级依次执行测试用例。[0044] 本申请通过脚本管理模块、用例管理模块和任务管理模块分别实现对脚本、用例和任务的管理配置;执行机调度模块包括用例执行模块和关键字提取模块,通过关键字提取模块识别测试数据文件中的关键字,并提取所述关键字对应的测试数据传输至穿行数据库,使得关键字对应的测试数据在各测试动作脚本之间共享,从而用例执行模块可根据穿行测试参数在多平台环境下执行完整的测试计划,实现了多平台多并发的自动化穿行测试,提高了测试效率和测试质量。[0045] 作为优选实施例,所述执行机调度模块还包括关键字管理模块。所述关键字管理模块用于设定关键字数据集,以及构建关键字数据集与所述测试任务映射关系。所述关键字提取模块与所述关键字管理模块通信连接,所述关键字提取模块根据测试任务获取映射的关键字数据集,所述识别测试数据文件中的关键字具体为根据关键字数据集识别测试数据文件中的关键字。[0046] 本申请实施例通过关键字管理模块构建关键字数据集与所述测试任务映射关系,从而保证关键字提取模块能够准确提取测试数据中的关键字,提高穿行测试的效率和准确性。[0047] 进一步地,所述执行机调度模块用于执行穿行测试策略;所述穿行测试策略,包括步骤:[0048] S11、获取测试用例中脚本优先级最高的测试动作脚本,根据穿行测试参数生成测试数据文件。需要说明,在第一次执行步骤S11时,所述穿行测试参数可以为空。[0049] S12、使用关键字提取模块,获取关键字管理模块存储的关键字数据集,根据关键字数据集识别测试数据文件中的关键字,并提取所述关键字对应的测试数据并传输至穿行数据库。[0050] S13、穿行数据库将测试数据处理为穿行测试数据;所述穿行测试数据包括每轮步骤S12中关键字对应的测试数据。[0051] S14、根据脚本优先级选定下一个测试动作脚本,重复执行步骤S11至S13,直至测试用例对应的测试动作脚本全部执行完成。[0052] 在一实施例中,所述自动化穿行测试系统应用于MBOSS测试。其中,MBOSS测试是指针对中国电信企业提供的MBOSS平台进行测试。以MBOSS测试中的普通电话订购业务场景为例,MBOSS平台包括CRM系统和云编排系统两个子系统,执行测试用例的工作过程如下:[0053] 通过用例执行模块执行CRM系统的普通电话订购动作脚本,生成一个CRM订单。所述CRM订单包括订单单号和订单状态。关键字提取模块识别CRM订单中的订单单号关键字,通过订单单号关键字获取测试数据文件中的CRM订单的订单单号并保存至穿行数据库。[0054] 用例执行模块根据订单单号执行云编排系统的开通业务动作脚本。[0055] 用例执行模块执行CRM系统的查询订单状态动作脚本,判断所述订单状态是否变更为竣工状态。[0056] 基于前述内容,执行机调度模块执行了三个步骤,分别是在CRM系统中执行普通电话订购动作脚本,执行完成后再到云编排系统中执行开通业务动作脚本,然后回到CRM系统中执行查询订单状态动作脚本,跨了两个系统执行。在执行过程中,执行机调度模块发送pybot命令和对应的数据文件到执行机实现对执行机的控制。[0057] 作为优选实施例,所述执行机调度模块还包括测试报告模块。所述测试报告模块与所述用例执行模块通信连接,用于根据测试数据生成测试报告。所述测试报告用于可视化展示关键字以及关键字对应的测试数据。在一实施例中,所述测试报告包括HTML格式和XML格式。[0058] 本实施例在前述实施例的基础上提供测试报告模块,对测试结果进行可视化展示,包括关键字及其对应的测试数据,支持HTML格式和XML格式报告,提高了测试结果的可读性和易理解性,方便用户发现和解决问题,从而提高系统的稳定性和可靠。[0059] 作为优选实施例,所述定期扫描测试任务并根据测试任务生成测试计划,具体为:扫描测试任务的执行方式,所述执行方式包括手动执行和定时自动执行。若执行方式为定时自动执行,在达到自动执行条件时,根据测试任务生成测试计划。[0060] 进一步地,所述根据测试任务生成测试计划,具体包括:[0061] 设定所有执行机的并发配置参数。所述并发配置参数为布尔值,若并发配置参数为YES,则执行机参与并发任务;若并发配置参数为NO,则执行机不参与并发任务。[0062] 根据执行机指定信息测试任务是否已指定特定执行机;[0063] 若已指定特定执行机,则将测试任务分配至所述特定执行机,所述特定执行机执行测试任务对应的所有测试用例。[0064] 若未指定特定执行机,则根据所述并发配置参数和空闲情况选择执行机,具体为选择并发配置参数为YES且处于空闲状态的执行机,然后通过选择的执行机和测试任务生成测试计划。所述测试计划用于指定每个测试用例分配的执行机。[0065] 本实施例同时支持并发与非并发的任务执行方式。通过并发配置参数和根据执行机指定信息,根据不同测试场景的分配执行机,灵活地控制测试任务的并发性,并有效地分配和管理测试资源,提高测试效率。[0066] 作为优选实施例,所述执行机调度模块包括环境适配模块。所述环境适配模块用于匹配测试任务和执行机的运行环境。所述执行机的运行环境和测试任务的运行环境均包括Windows环境、Mac环境和安卓环境。[0067] 进一步地,所述执行机的运行环境通过vmware搭建。所述Windows环境、Mac环境和安卓环境包括执行自动化测试所需的JRE、python和/或RobotFramework等运行环境。其中,所述Windows环境、Mac环境和安卓环境均包括RobotFramework。RobotFramework是一款基于Python的开源测试自动化框架。RobotFramework为测试自动化提供了一种可读性高,易扩展和可重用的测试动作脚本语法,可以支持前端、接口、移动端等各种的应用自动化测试。[0068] 所述安卓环境还包括AppiumServerGUI、AppiumInspector和Appiumserver服务端。其中,AppiumInspector是一个可视化工具,用于帮助测试人员在自动化测试过中定位和识别移动应用界面上的元素。AppiumServer是一种开源测试自动化服务器,可以测试所有类型的移动应用程序,包括原生,混合和移动Web应用程序。AppiumServerGUI是一种图像化界面的配置工具,用于配置和管理AppiumServer。通过AppiumServerGUI,可以方便地启动和停止AppiumServer,以及监控服务的状态,并可以查看日志输出。[0069] 所述Mac环境还包括XCode和WebDriverAgentRunner。WebDriverAgentRunner是一种基于XCTest框架的iOS应用程序,用于支持XCUITest自动化测试,并通过Appium框架实现Webdriver协议的接口。WebDriverAgent是一个开源项目,由Facebook的开源组织开发和维护,目前已经成为了XCUITest自动化测试的标准解决方案。在MAC环境下,使用WebDriverAgentRunner可以快速开发和运行XCUITest自动化测试用例,并可以适配在不同版本的iOS应用程序,从而实现与苹果手机和ipad设备建立通信连接。[0070] 本实施例通过环境适配模块匹配测试任务和执行机的运行环境,确保测试任务支持在多种系统环境中运行,以满足多样化的测试需求。[0071] 进一步地,所述测试用例包括穿行测试用例和非穿行测试用例。所述穿行测试用例包括多个测试动作脚本,所述非穿行测试用例包括一个测试动作脚本。在本申请中,穿行测试用例虽然会同时测试多个系统但在自动化测试系统里面只是一个测试用例,只是测试用例里面会有多个动作,所以在测试计划中还是作为一个用例分配给一台执行机执行,所有的动作都执行完成后整个穿行测试用例执行结束。由于穿行测试是由同一个测试用例来实现,每个测试用例又是由单台执行机完成自动化测试,测试计划中测试用例是最小单位,所以穿行测试用例只能在同一执行机下执行,不能在多个不同的执行机下执行。[0072] 基于前述内容,用例管理模块还用于拆分测试用例。在多个平台环境下执行穿行测试时,可以通过用例管理模块将原有的穿行测试用例拆分为多个测试用例,并设置优先级以在不同平台运行环境下执行。因此,从单平台环境迁移至多平台环境时,本实施例无需重新生成新的穿行测试用例,从而提高测试效率。[0073] 在本申请所提供的几个实施例中,应该理解到,所揭露的单元,可以通过其它的方式实现。例如,以上所描述的单元实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个单元,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,模块的间接耦合或通信连接,可以是电性,机械或其它的形式。[0074] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。[0075] 另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。[0076] 所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,read‑onlymemory)、随机存取存储器(RAM,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
专利地区:广东
专利申请日期:2023-11-03
专利公开日期:2024-09-03
专利公告号:CN117421234B