移动端自动化框架Appium

 

一、移动端自动化基础

1. 大厂都在做什么

《孙子·谋攻》曰:“知己知彼,百战不殆”。大厂是业界的风向标,我们个人不知道行业的风向标时,大厂就是我们的灯塔。最近看了罗胖的2020《时间的朋友》的演讲中,一句话令我印象深刻 “人生不是在每个关头都明确地知道自己该做什么选择。那怎么办?跟上这个时代,跟上这群人。”

BAT作为中国互联网的 “灯塔” 公司,看看他们在自动化测试方面有哪些 “动作”:

  • 测试框架

      阿里 Macaca
      腾讯开源微信小程序自动化测试工具
      百度内部的 Cafe 框架
      Google:Espresso、UI Automator
      Ebay:Selendroid
      Walmart:Robotium
      Sauce Labs:Appium
      ThoughtWorks:Selenium
    复制代码
  • 测试平台

      阿里 MQC
      腾讯 WeTest
      百度 MTC
      Testin
    复制代码

2.自动化测试现状

手工测试非常有用,但仅手工测试是远远不够的,手工测试+自动化测试才是xiangmu快速迭代的根基,但是手工测试与自动化测试占比与公司业务类型、发展阶段和行业技术进步相关。总的来说:现阶段的 IT 行业的矛盾就是日益增长的快速迭代需求与落后的测试生产力之间的矛盾。

  • 2.1 UI 自动化测试的瓶颈

      技术成本高:
          人力成本高:优秀测试开发工程师难招
          技术门槛高:测试工程师自动化能力不足
      维护成本高:
          复用率不高:UI 和业务流程变更是最主要变更
          稳定性不足:容易被干扰,执行慢
      常见行业错误观点:
          UI 自动化测试无用论
          UI 自动化测试就是模拟人工点点点
    复制代码
  • 2.2 UI自动化应用场景

      冒烟测试自动化:提测之前自动断言提测质量,提供准入参考。
      功能测试自动化:辅助 QA 与 测试工程师的快速验证。
      验收测试自动化:兼容性测试等。
      移动端性能专项测试自动化:性能、卡顿、健壮性测试、竞品分析。
    复制代码
  • 2.3 如何合理使用 UI 自动化

      使用分层测试策略,控制 UI 自动化测试规模:
          少数核心用例交给自动化测试
          大部分的基础回归测试交给自动遍历
          新功能交给人工测试
      技术改进方案:
          良好的维护模型:PageObject、数据驱动
          更好的框架支持:增加 watch、智能等待、失败重试等机制
    复制代码
  • 2.4 如何高效落地自动化

      学习方向:
          了解待测产品和平台:Android、IOS、APP
          精通最好的测试框架:Appium、UI Automator、WebDriverAgent
          掌握自动化测试经验:PageObject、稳定性提升、数据驱动等
      达到结果:
          一天搞定一款 APP 的自动化测试脚手架
          一天完成单个功能的业务测试自动化用例集合
          N 周内搞定公司的 APP 自动化测试
    复制代码
  • 2.5 UI 自动化分类

      Web 自动化:Selenium
       APP 自动化:Appium
      GUI 自动化:Windows、Mac
      微信小程序自动化:APP + web 测试技术的外延形态
      更多平台:智能设备、机器人、工业APP
    复制代码

3. 自动化测试技术体系

  • 3.1 UI 自动化测试框架及引擎

      Appium
          跨语言:Java、Python、Node.js等
          跨平台:Android、IOS、Windows、Mac
          底层多引擎可切换
          生态丰富、社区强大
      IOS:
          KIF、WDA、XCTest
      Android:
          Robotium、UI Automator
      特色框架:
          calabash、Macaca、ATX
    复制代码

APP 多端架构与自动化

3.2 移动App迭代及分层测试模型 移动 App 快速迭代模型 

 

移动 APP 分层测试 

 

  • 3.3 自动遍历工具及价值

    什么是自动遍历呢?

      以自动化的方式对 App 进行充分的功能遍历以探索 bug
    复制代码

    自动化遍历的价值:

      降低自动化测试维护成本,可替代 80% 的自动化测试
      实现新功能的探索
      实现老功能的回归
      用途:多设备兼容测试、自动化专项测试
    复制代码

    大厂常见的遍历工具与技术

      Andorid 原生 Monkey
      百度 SmartMonkey
      腾讯 New Monkey
      阿里 Macaca 的 NoSomke
      Google 的 APP Crawler
      TesterHome 社区 seveniruby Appcrawler
    复制代码

4. Android 自动化前提依赖

Android SDK:Android Studio 可辅助安装
模拟器:
    Android Studio 自带的 Emulator
    Genymotion、网易MuMu、BlueStacks
小米、华为、ViVo、OPPO真机
复制代码

5. Adb shell常用命令

5.1 关于网易MuMu连接

# 1. 首先打开网易 MuMu 模拟器

# 2. 下载 [adb shell 工具](https://developer.android.com/studio/releases/platform-tools.html)

# 3. 安装 adb shell,解压后复制 adb shell 的目录,将该目录配置到环境变量的 Path 中
# 打开 cmd,输入以下命令看是否安装配置成功
adb shell

# 4. 连接网易 MuMu 模拟器,看到root@x86:/ #,恭喜你连接成功
adb connect 127.0.0.1:7555
adb shell

复制代码

5.2 获取 App 的信息

# app信息
# 获取当前界面元素
adb shell dumpsys activity top
# 获取任务列表
adb shell dumpsys activity activities

# App 入口
adb logcat | grep -i displayed
aapt dump badging moblike.apk | grep lanunchable-activity
apkanalyzer 最新版本的 sdk 中才有

# 启动应用
adb shell am start -W -n com.xueqiu.android/.view.WelocmeActivityAlias -S

复制代码

5.3 Android 常用命令

# 查看设备
adb devices

# 关闭 adb 的后台进程
adb kill-server

# 让 Android 设备脱离 USB 线的 TCP 连接方式
adb tcpip 127.0.0.1:7555

# 连接开启了 TCP 连接方式的 Android 设备
adb connect 127.0.0.1:7555

# 查看 Android 日志查看
adb logcat

# 收集日志数据,用于后续的分析,比如耗电量
adb bugreport
复制代码

6.adb shell 常用命令

adb shell 本身就是一个 Linux 的 shell,可以调用 Android 内置命令

学习安排上

作为一位过来人也是希望大家少走一些弯路,在这里我给大家分享一些软件自动化测试的学习资源,希望能给你前进的路上带来帮助。【保证100%免费】

视频文档获取方式:

这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码小怡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值