前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ATX自动化测试学习

ATX自动化测试学习

作者头像
用户5521279
发布2019-07-24 14:37:48
3.5K0
发布2019-07-24 14:37:48
举报
文章被收录于专栏:搜狗测试搜狗测试

【一、前言】

之前小编分享了《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实践部分,小编在自己项目正在实践,后续总结分享。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 搜狗测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 3、ATX模块间的通信
  • 5、weditor
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档