一种大规模真机APP自动化测试方法与流程

未命名 07-23 阅读:80 评论:0

一种大规模真机app自动化测试方法
技术领域
1.本发明涉及的是测试管理领域,具体涉及一种大规模真机app自动化测试方法。


背景技术:

2.app自动化通常用appium框架控制真机操作,通过自动化用例框架(如python语言的robotframework)封装自动化用例行为,然后在python环境中执行自动化用例,以达成自动化测试执行的目的。
3.在规模较小的时候,这样做是有效的。但当自动化测试规模扩大,执行手机超过百台后,会出现各种不稳定情况,如指令下发无效,控制真机的进程假死,甚至执行进程无法结束掉等情况,导致自动化测试经常无法顺利完成。
4.另外,虽然appium基于webdriver协议对真机设备自动化做了封装,但是由于android和ios的系统差异,ios启动webdriver依赖mac系统的xcode,这导致需要维护不同的架构方案,复杂性高,成本大。
5.综上所述,本发明提出了一种大规模真机app自动化测试方法。


技术实现要素:

6.针对现有技术上存在的不足,本发明目的是在于提供一种大规模真机app自动化测试方法,三层控制架构,解决了规模扩展的差异;解除了ios手机自动化测试对于mac系统的依赖,引入appium适配模块,解决了不同手机系统的操作的差异;支持android、ios手机连接同一台controller;采用容器隔离环境,保证测试用例执行环境的灵活性和调度效率;真机全部采用本地连接,保证了通信可靠,也解决了持续供电问题。
7.为了实现上述目的,本发明是通过如下的技术方案来实现:一种大规模真机app自动化测试方法,包括用例调度、设备调度、用例执行三个步骤。
8.所述的用例调度:将以robot结尾的用例文件,按照***test cases***关键字以下,行首无空格的规则进行抽取;抽取出的用例名放入用例池中,用例执行时主服务会从用例池中获取用例,发送执行给设备调度服务。
9.所述的设备调度具体包括以下步骤:
10.2.1、真机通过usb数据线和pc电脑建立连接。
11.2.2、启动容器镜像服务,分配每台真机一个可执行的容器环境;结合步骤2.1、步骤2.2形成一个用例可执行的资源。
12.所述的用例执行包括以下步骤:
13.3.1、设备调度服务收到用例信息会检查并启动appium服务;
14.3.2、设备调度服务会分配一个空闲的可执行资源在可执行的容器环境执行用例;
15.3.3、用例执行完成后设备调度服务会发送用例执行完成的消息至主服务;
16.3.4主服务监控到所有用例执行完成,会清空用例池并生成完整的测试报告;结合步骤3.1、步骤3.2、步骤3.3、步骤3.4完成所有用例的分布式执行。
17.本发明具有以下有益效果:
18.1、通过对自动化执行环境容器化、真机控制统一化的改造,依托三层架构,形成了统一的app自动化测试方法,给大规模真机自动化测试提供给了强有力的框架方法支持。
19.2、真机的规模化将有力支撑app自动化提升测试质量和效率,并将有能力将app测试从自动化回归逐步扩展到版本兼容性,机型兼容性,并发性能等更多质量保障领域。
附图说明
20.下面结合附图和具体实施方式来详细说明本发明;
21.图1为本发明的以robot结尾的用例文件示意图;
22.图2为本发明的方法技术效果图;
23.图3为现有常见技术效果图。
具体实施方式
24.为使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体实施方式,进一步阐述本发明。
25.参照图1-3,本具体实施方式采用以下技术方案:一种大规模真机app自动化测试方法,包括以下步骤:
26.1、用例调度:将以robot结尾的用例文件(如图1),按照***test cases***关键字以下,行首无空格的规则进行抽取。抽取出的用例名放入用例池中(即图2testcase room runner),用例执行时主服务(即图2master server)会从用例池中获取用例,发送执行给设备调度服务(即图2controller)。
27.2、设备调度:
28.2.1、真机(android和ios)通过usb数据线和pc电脑建立连接(即图2虚线框)。
29.2.2、启动容器镜像服务(即图2docker env schedulle),分配每台真机一个可执行的容器环境(即图2docker env)。结合步骤2.1、步骤2.2形成一个用例可执行的资源(即图2虚线框)。
30.3、用例执行:
31.3.1、设备调度服务(即图2controller)收到用例信息(如步骤1)会检查并启动appium服务(一台pc电脑有且仅启动一个appium服务,一个appium服务控制多台设备如图2controller-appium箭头部分)。
32.3.2、设备调度服务(即图2controller)会分配一个空闲的可执行资源(即图2虚线框)在可执行的容器环境(即图2docker env)执行用例。
33.3.3、用例执行完成后设备调度服务(即图2controller)会发送用例执行完成的消息至主服务(即图2master server)。
34.3.4主服务(即图2master server)监控到所有用例执行完成,会清空用例池(即图2testcase room runner)并生成完整的测试报告。结合步骤3.1、步骤3.2、步骤3.3、步骤3.4完成所有用例的分布式执行。
35.本具体实施方式的系统整体搭建步骤如下:
36.步骤1:搭建zeromq支持大规模消息的通信解耦;
37.步骤2:部署adbkit实现对安卓真机的控制通信;
38.步骤3:部署tidevice实现对ios真机的控制通信;
39.步骤4:部署docker支持环境隔离,并开放api访问控制能力,用于dockerode对接;
40.步骤5:部署appium支持自动化用例执行;
41.步骤6:部署robotframework实现自动化用例管理、用例步骤控制;
42.步骤7:部署用例调度服务、设备调度服务、用例执行服务实现大规模真机app自动化。
43.本具体实施方式解决app自动化测试规模化执行中的不稳定性问题。
44.以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。


技术特征:
1.一种大规模真机app自动化测试方法,其特征在于,包括用例调度、设备调度、用例执行三个步骤;所述的用例调度:将以robot结尾的用例文件,按照***test cases***关键字以下,行首无空格的规则进行抽取;抽取出的用例名放入用例池中,用例执行时主服务会从用例池中获取用例,发送执行给设备调度服务。2.根据权利要求1所述的一种大规模真机app自动化测试方法,其特征在于,所述的设备调度具体包括以下步骤:(2.1)、真机通过usb数据线和pc电脑建立连接;(2.2)、启动容器镜像服务,分配每台真机一个可执行的容器环境;结合步骤(2.1)、步骤(2.2)形成一个用例可执行的资源。3.根据权利要求1所述的一种大规模真机app自动化测试方法,其特征在于,所述的用例执行包括以下步骤:(3.1)、设备调度服务收到用例信息会检查并启动appium服务;(3.2)、设备调度服务会分配一个空闲的可执行资源在可执行的容器环境执行用例;(3.3)、用例执行完成后设备调度服务会发送用例执行完成的消息至主服务;(3.4)主服务监控到所有用例执行完成,会清空用例池并生成完整的测试报告;结合步骤(3.1)、步骤(3.2)、步骤(3.3)、步骤(3.4)完成所有用例的分布式执行。

技术总结
本发明公开了一种大规模真机APP自动化测试方法,它涉及测试管理领域。包括用例调度、设备调度、用例执行三个步骤;所述的用例调度:将以robot结尾的用例文件,按照***Test Cases***关键字以下,行首无空格的规则进行抽取;抽取出的用例名放入用例池中,用例执行时主服务会从用例池中获取用例,发送执行给设备调度服务。本发明真机的规模化将有力支撑APP自动化提升测试质量和效率,并将有能力将APP测试从自动化回归逐步扩展到版本兼容性,机型兼容性,并发性能等更多质量保障领域。并发性能等更多质量保障领域。并发性能等更多质量保障领域。


技术研发人员:陈亮 张磊
受保护的技术使用者:上海赛可出行科技服务有限公司
技术研发日:2023.03.20
技术公布日:2023/7/22
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐