测试基础 [深入浅出 Android 自动化测试] 第二篇 Appium 框架的部署及项目实践

大海 · 2017年04月29日 · 最后由 回复于 2017年12月27日 · 3976 次阅读

本篇概览

  • 认识 Appium 开源框架,并完成 Appium 框架的环境搭建与部署
  • 通过 Appium 框架来完成公司产品在业务流程上的的 UI 自动化框架的设计与实现
  • 本篇文章中所涉及的工具:Android SDK,PyCharm,Appium,享发金融 APK

本篇重点

  • 认识 Appium 开源框架,学会搭建与部署
  • 熟悉 Appium API,了解常用的查找元素方法
  • 学会在不同 Activity 之间进行切换,避免流程的中断

一. Appium 介绍与环境搭建

  • 首先安装 JDK 并设置环境变量
    1. 到 Java 官网下载相应的 JDK 并安装
    2. 设置环境变量
      • 添加 JAVA_HOME 对应的路径: C:\Program Files\Java\jdk1.7.0_79
      • 在 PATH 变量末尾追加: ;%JAVA_HOME%/bin;
      • 添加 CLASSPATH ,设置值为: %JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
  • 接着安装 Android SDK 并设置环境变量注意:安装 Android SDK 需要并更新你的 SDK repository*

1. 到 Android 官网下载并安装 SDK
2. 设置环境变量
* 添加 ANDROID_HOME 设置值为: 磁盘目录:\你的安装路径\Android\sdk
* 在 path 环境变量值末尾追加:;%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools;
* 设置完毕后在命令行输入 adb devices 。

  • 接着安装 Nodejs
    1. 到 Nodejs 官网下载最新版本的 NodeJs 并直接安装,在环境变量 path 添加";C:\Program Files\nodejs;
    2. 安装完毕后,打开命令行,输入 node -v 。
  • 最后安装 appium(Windows 方式)
    1. 安装appium for windows,path 环境变量为:C:\Program Files (x86)\Appium\node_modules.bin;"
    2. 验证 appium:在命令行输入appium-doctor,如果返回的结果类似如下,说明安装成功
    3. 需要注意的是,如果你是通过安装包安装的,使用 appium-doctor 命令时必须切换到 C:\Program Files (x86)\Appium\node_modules.bin目录。

二. 启动 Appium Server



三. 启动 Android Emulator


四. 基于公司业务的落地执行

业务流程






五. 后期工作计划

  • 完成基于项目组产品的全部流程的开发,最终实现全自动化的程序录单和推单(总计 80 多个字段,涉及到的类型包括 Form 类型,Select 类型,图片上传与读取等)
  • 完成以下几个技术点:自动截图保存,图像对比,自动输出日志自动读取 case 与写入 case 结果自动备份 case
  • 攻克以下几个核心技术难点:
    • 1. 实现覆盖多个不同项目产品的通用性,真正做到拿来就用;
    • 2. 实现对手机相册中的图片的随机读取,无需排序;
    • 3. 实现截图的图像对比,防止因页面元素变更导致的异常中断;(临时想到的方法是,利用 OpenCV 技术对截取的图片进行比对识别,找出元素位置差异)

六. 自动化测试框架概述

  • 该框架主要基于 Android 端开发完成,iOS 端不可用;
  • 该框架主要为公司内部的享发金融产品进行自动化录单和推单(共计八十多个字段,涉及到表单输入,列表选择,图片上传与解析等主要功能)服务;
  • 该框架目前还在进一步完善中,后期的计划是,将会进一步提高框架的扩展性,进一步优化内部代码逻辑;

七. 自动化框架的主要特点

  • 以数据驱动测试为核心;
  • 测试用例的自动读取与结果写入;
  • 测试用例的自动备份;
  • 操作过程中的日志输出;
  • 操作过程中的自动截图;
  • 分层结构,逻辑清晰;
  • 持续集成平台;
  • 等待继续完善。。。

八. 参考资料

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 6 条回复 时间 点赞

补充运行过程中主要遇到的几个坑,在以下帖子中都曾经出现过:

  1. 如何在 appium 测试代码中指定 activity 跳转
    https://testerhome.com/topics/1770
  2. appium 1.6.4 是不是很不稳定?
    https://testerhome.com/topics/8412
  3. 关于 uiautomatorviewer 无法定位元素问题,提示报错 https://testerhome.com/topics/8522
大海 关闭了讨论 04月30日 10:55
大海 重新开启了讨论 04月30日 10:55

😀 很有用的新手教学 。顶一下~

截图保存,输出日志,读取 case 与写入 case 结果,备份 case,已实现。

你好,请教一下实现对手机相册中的图片的随机读取,无需排序。这个思路是怎么样的?

刘刘刘 回复

如果相册中有 N 个图片,每个图片应该都要一个坐标或者 ID 值,把值用 list 形式显示,然后从 list 里面随机读取,这样应该是可以的

学会在不同 Activity 之间进行切换,避免流程的中断

这个在哪,怎么做到测试过程中切换 activity?

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册