移动端UI自动化实践

达芬奇密码2018-08-07 15:09
考拉移动端目前实践过2种框架的UI自动化,Appium和SmartAuto。前者基于Java实现自动化,后者基于中文文本实现。
基于Appium的UI自动化
Appium是一个开源、跨平台的,适用于原生或混合移动应用(hybrid mobile apps)的自动化测试平台。Appium使用WebDriver(JSON wire protocol)驱动安卓和iOS移动应用,它 的核心是一个遵守REST设计风格的web 服务器,它接受客户端(测试代码)的连接,接收客户端的命令,在手机设备上(Bootstrap.jar)执行命令,然后通过HTTP的响应收集命令执行的结果。
首先,需要搭建一套Appium的开发环境,包括:

  1. Java环境配置
  2. Android环境配置
  3. 安装Appium
  4. 安装IDE

考拉移动端UI自动化选择Appium+Maven+Testng+Jenkins框架实现。Maven方便管理依赖,可跨平台自动构建。Testng提供了丰富的断言方式及可视化测试报告的输出。而基于Jenkins的持续集成,方便QA在每次上线前主动触发或定时触发自动化程序运行。

考拉移动端UI自动化框架:


如何编写一个简单的UI自动化用例:

  1. 下载代码:https://g.hz.netease.com/KaolaQATest/QAUITest
  2. 上传被测包:在代码路径下,找到/apps目录,上传apk并重命名为kaola.apk
  3. 获取页面元素:考拉移动端UI自动化基于UIAutomator定位页面元素。如图所示,考拉首页顶部banner的id为kaola_image_layout_view,使用Appium API中的findElementById("kaola_image_layout_view")即可定位到该元素。
  4. 实现页面操作:Appium封装了丰富的页面操作,用于寻找页面元素,实现点击、滑动、长按和输入等功能。基于Appium本身的特性,考拉移动端UI自动化,又二次封装了滑动寻找控件、多次滑动等常用手势方法,以及登录登出、点击新手引导、点击搜索框并搜索等常用业务方法。基于上一步找到的banner元素id,使用Appium API中的findElementById("kaola_image_layout_view").click()即可实现该元素的点击操作。
  5. 添加用例到testng.xml:将实现的自动化用例添加到testng.xml,可以接入Jenkins平台实现持续集成,并生成testng report监测测试结果。
  6. 接入持续集成。job地址:http://ci.hz.netease.com/job/kaola-mobile-onlineUI/

基于SmartAuto的UI自动化

SmartAuto是网易杭州研究院研发的一款利用图像识别、人工智能等先进技术手段实现的使用中文语言完成的UI自动化工具,具备易上手,好操作的天然属性。方便即使是不会写代码的测试人员也能参与到UI自动化中来,丰富测试用例,完善测试场景,能在app发版前代替部分手工回归的工作,解放人力,提高测试效率。

下载地址:http://10.241.21.58/shares/smart-auto/v1.0.6

语法帮助:http://nos.netease.com/mobile-test-server/%E6%99%BA%E8%83%BD%E8%87%AA%E5%8A%A8%E5%8C%96%E9%A1%B9%E7%9B%AE%E5%B8%AE%E5%8A%A9%E6%96%87%E6%A1%A3.pdf

使用方法

  1. 连接手机到电脑,启动SmartAuto,选择餐单栏里“设备”                                               
  2. 同屏成功后,在SmartAuto右侧出现手机实时屏幕
  3. 根据语法帮助编写脚本
  4. 上传到git仓库,方便多人协同编写


网易云新用户大礼包:https://www.163yun.com/gift

本文来自网易实践者社区,经作者褚静怡授权发布。