本篇概览
- 认识 Appium 开源框架,并完成 Appium 框架的环境搭建与部署
- 通过 Appium 框架来完成公司产品在业务流程上的的 UI 自动化框架的设计与实现
- 本篇文章中所涉及的工具:Android SDK,PyCharm,Appium,享发金融 APK
本篇重点
- 认识 Appium 开源框架,学会搭建与部署
- 熟悉 Appium API,了解常用的查找元素方法
- 学会在不同 Activity 之间进行切换,避免流程的中断
一. Appium 介绍与环境搭建
-
首先安装 JDK 并设置环境变量
- 到 Java 官网下载相应的 JDK 并安装
- 设置环境变量
- 添加 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
- 到 Nodejs 官网下载最新版本的 NodeJs 并直接安装,在环境变量 path 添加";C:\Program Files\nodejs;
- 安装完毕后,打开命令行,输入 node -v 。
-
最后安装 appium(Windows 方式)
- 安装appium for windows,path 环境变量为:C:\Program Files (x86)\Appium\node_modules.bin;"
- 验证 appium:在命令行输入appium-doctor,如果返回的结果类似如下,说明安装成功
- 需要注意的是,如果你是通过安装包安装的,使用 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 端不可用;
- 该框架主要为公司内部的享发金融产品进行自动化录单和推单(共计八十多个字段,涉及到表单输入,列表选择,图片上传与解析等主要功能)服务;
- 该框架目前还在进一步完善中,后期的计划是,将会进一步提高框架的扩展性,进一步优化内部代码逻辑;
七. 自动化框架的主要特点
- 以数据驱动测试为核心;
- 测试用例的自动读取与结果写入;
- 测试用例的自动备份;
- 操作过程中的日志输出;
- 操作过程中的自动截图;
- 分层结构,逻辑清晰;
- 持续集成平台;
- 等待继续完善。。。
八. 参考资料
↙↙↙阅读原文可查看相关链接,并与作者交流