专栏首页搜狗测试ATX自动化测试学习

ATX自动化测试学习

【一、前言】

之前小编分享了《PyUnit+uiautomator2实现应用自动化回归测试实践》,MTSC听了《ATX在淘宝客户端实践》(ATX作者,ID:codeskyblue)的议题分享,进行学习总结。

【二、ATX自动化测试】

1、ATX的用途与其Python库

openatx,被拆分了20多个库,方便维护、集成;比较有名的是下面几个库

  • uiautomator2:主要用来做Android自动化;
  • adbutils:用来和adb去交互,但并不是简单的对adb进行封装,而是通过协议程序去和adb交互; (Only support Python3.6+)
  • facebook-wda:主要用来做ios自动化(虽然小,但功能都有);
  • weditor:因为uiautomator是独占资源,所以当atx运行的时候uiautomatorviewer是不能用的,为了减少atx频繁的启停,(作者)开发了基于浏览器技术的weditor UI查看器。 uiautomator2

作者希望测试能够用Python编写,能够在电脑上运行的时候就控制手机。非常感谢 Xiaocong He,他将这个想法实现了出来(见xiaocong/uiautomator),原理是在手机上运行了一个http rpc服务,将uiautomator中的功能开放出来,然后再将这些http接口封装成Python库。因为xiaocong/uiautomator这个库,已久不见更新,所以作者fork了一个版本,为方便区分,加了个2, openatx/uiautomator2。

Uiautomator是Google提供的用来做安卓自动化测试的一个Java库。功能很强,可以对第三方App进行测试,获取屏幕上任意一个APP的任意一个控件属性,并对其进行任意操作,但有两个缺点:1. 测试脚本只能使用Java语言 2. 测试脚本必须每次被上传到设备上运行。

2、UI自动化面临的问题

问题:UI自动化,稳定性差、维护成本高,导致自动化项目在公司没法开展起来,为什么稳定性这么差呢?主要是安卓环境

Android25亿台设备,180+个厂商;(图截自谷歌大会)

蓝色柱状图:Android;黑色:ios;

Android开发一个应用,兼容5、6、7、8、9,很容易出现问题;

Android碎片化严重,和ios形成强烈对比;

3、ATX模块间的通信

左上角入口;(Python代码,例如按home键)

测试逻辑,现在全放到PC上,命令可以马上执行,修改后,可以生效;将测试成本降低(以前是放手机上)。

可以通过WiFi(设备和开发机在同一WiFi环境,基于atx-agent)和usb(生产环境推荐,可充电,避免WiFi不稳定的情况)两种连接方式;

Atx-agent:用go语言编写,屏蔽了手机Android5/6/7/8的差异,用公共函数通过http的方式提供出来。(例如获取ip地址,可通过手机版本号,调用不同的命令)

Uiautomator2,不是很稳定,会被杀掉,需要atx-agent为它去保活。

4、示例

安装进度、状态获取

可以获取到安装进度(百分比)、安装速度以及出现什么问题;(Python库直接和adb server去通信,获取到详细信息),一边下载,一边push;

对弹窗处理

添加了便捷的方法,如弹窗处理。(后台开了一个线程,每间隔4s检查一次)

5、weditor

weditor是智能手机测试框架openatx的子项目,便于使用web浏览器编辑atx脚本。

可以xpath点击方式、也可以利用控件属性;

weditor比较方便,获取Ui元素属性,可以简化ui用例的书写步骤;代码可以直接用到测试用例里,可以单独执行,方便调试。

不用录制回放(因为稳定性不是很高),而是生成代码的方式,进行第二次处理。对于不确定的,多点击几次,确保用例的稳定性;可以运行选中行,调试。

可以一边写UI自动化的case,一边进行调试,非常方便,代码直接可放到用例里面,省时省力。

6、脚本的组织

pytest

pytest是python的第三方测试框架,是基于unittest的扩展框架,比unittest更简洁,更高效。使用pytest编写用例,必须遵守以下规则:

1.测试文件名必须以“test_”开头(如:test_ab.py)

2.测试方法必须以“test_”开头

pytest插件丰富,比如flask插件,可用于用例出错重跑;还有xdist插件,可用于设备并行执行。

Allure

Allure是一个可以独立运行的测试报告生成框架。把Allure集成到Python的Pytest单元测试框架中,生成漂亮的图形测试报告。

http://allure.qatools.ru/

7、atxserver2移动设备管理平台

openatx实现了一个设备管理平台(也支持iOS) atxserver2

Allure和atxserver2实践部分,小编在自己项目正在实践,后续总结分享。

本文分享自微信公众号 - 搜狗测试(SogouQA),作者:baiyang

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-07-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Airtest跨平台的UI自动化测试框架(一)

    注释:软件部署成功之后,连接设备之后,设备端会生成两个插件,Yosemite和PocoService。

    用户5521279
  • 如何使用浏览器访问linux本地文件

    配置nginx.conf ,将/usr/local/nginx/conf/nginx.conf替换为以下内容:

    用户5521279
  • 基于XCTest的iOS自动化测试

    2. 创建Test Class 如果要在Test Target中创建新的Test Class,选中目标Test Target,使用File -> New ->...

    用户5521279
  • 2016年Python十大文章

    在过去一年, 我们对10000篇Python相关的文章进行了排名, 并选择出排名前十的文章. (0.1%的几率), 可以帮助您在2017年推进你的技术生涯.

    用户1416054
  • Python学习基础篇(一)

    python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解...

    py3study
  • 想问问身价 300 亿的潘石屹,你到底为什么要学 Python?

    Python 可能是当下最火的编程语言了,就连房地产大佬都说自己要学 Python 。

    用户1564362
  • 【Python丨主题周】Python:脱颖而出的数据分析工具!

    一是以MATLAB、SPSS、Excel等为代表的具有界面化操作,且可编程辅助的软件式工具;一是以Python、R、Java等为代表的纯编程分析的程序语言式工具...

    博文视点Broadview
  • 手把手 | 教材太贵?一小段Python代码帮你自动翻页和扫描

    大数据文摘
  • 零基础的他是这样规划Python学习路线的!

     其实Python语言上手还比较容易、它功能强大、语法简单,相对于其他来说学习起来更加容易,也是比较简单的编程语言,被称为胶水语言,适合零基础以及初学者学习,P...

    python学习教程
  • Python目录

            整个IT产业只是在共同做好一件事--------信息(数据)的处理,对有用信息提取,存、增、删、改、查,然后更好的呈现在客户面前。 本文主要涵括...

    py3study

扫码关注云+社区

领取腾讯云代金券