Android 并行自动化测试系统 实现总结


一:    总体架构


        系统工程架构源码:https://github.com/UDLD/UIAUTOMATORTEST

整个系统基于: UiAutomator + 自编Python交互库 + Robot + Shell脚本 。  

       采用关键字驱动测试模式,以UiAutomator为主要测试接口,测试逻辑主要由Robot Framework控制,测试报告亦基于Robot Framework。

       UiAutomator脚本工程框架,写入了大量复用操作,以提高代码复用行、扩展性和易维护性;采用三层分离,适用于多系统多平台测试。


       系统架构图如下:

                   

      


二.   系统特点

1.  支持多机器并行跑测试用例,也支持跑多台机器间交互的测试用例。

        2.  自动化测试生成Html格式易读报告。

        3.  关键字驱动,代码复用,测试脚本易维护。

        4.  报告生成后自动邮件发送。

        5.  执行用例期间Log自动获取并保存。

        6.  关键字库功能基本覆盖黑盒测试需求。


 三.   关键字库设计实现总结


1.   对控制台输出进行处理的时候要严谨,尤其是对带有空格的输出文本的处理,因为屏幕大小和系统版本可能会影响处理结果。


         2.  因为有可能针对多用例串行测试,所以Python测试交互方法中全局变量的处理要严谨,如果函数多次调用全局变量,要明确上次调用对本次调用的影响。


         3.  因为要并行测试,所以在需要明确Device的方法,都要添加Device参数。


         4.  为了工程更具移植性和准确性,要注重工作路径的切换,尤其是测试用例对库的引用,测试报告、测试图片、测试APK等路径的设置和引用。


         5.  因为Robot只会打印关键字的输出到测试报告,故UiAutomator测试脚本中的输出和其他一些方法必要输出要返回并获取,然后在关键字方法中输出。


          6.  在和Robot的交互中,要理解Robot的输出控制,适时添加控制台输出和报告输出,已更加明确的显示测试进程。










原文地址:https://www.cnblogs.com/udld/p/5746376.html