0.前言
本教程适用于:
- App开发工程师用于App自测,减少重复的体力工作
- 测试开发工程师App自动化测试,便于后期开展流水线全自动化测试平台的构建
- 项目管理者,了解Appium自动化测试
本教程要求开发者掌握的能力:
- 熟悉基础语言,如Java、Python且有快速上手的能力
- 基本了解移动应用的开发
- 对自动化测试一定的了解
- 了解Maven等项目构建工具的使用
- 对Eclipse或者IDEA等流行的开发工具比较熟悉
1.所需工具
- 系统平台:Windows(MacOS亦可,与Windows并无太大出入)
- Appium:Appium-Desktop.exe 1.20.2(如有新版请下载最新版,若为MacOS请下载.dmg文件)
请点击下载Github上的Release,若您在大陆可能无法访问GitHub或者下载Release极慢 - 脚本语言:Java,Python,JS,Ruby都可以,这里以Java作为示范代码——JDK 1.8及以上
- 项目构建工具:Maven、Android SDK
- 编译器:IDEA Ultimate
- 设备:一台Android手机,或者自行安装安卓模拟器
- 备选工具:Android Studio,若不会自行打开adb.exe可以直接打开Android Studio,Android Studio会自动启动adb.exe。
- 待测试软件APK:务必清楚了解该APK的包路径(如com.example.demoApp、com.example.demoApp.MainActivity)
2.安装Appium Desktop
- 下载完毕后打开,选择为所有用户安装
- 静待安装完毕
- 安装完毕后桌面会出现相应的图标
3. 启动Appium
- 双击打开Appium,输入主机号和端口
- 点击启动服务器
4.使用Appium录制脚本
- 启动会话检查器
- 等待几秒钟初始化会话检查器
- 填写能力
- 填入能力(注意这里的AppActivity用了相对路径,前面有个小点,注意填写)
{
"platformName": "Android",
"deviceName": "RedMi",
"appPackage": "com.xxxx.xxxx",
"appActivity": ".xxx.xxx"
}
-
点击保存
-
会自动保存到左边
这里讲一下能力的填写规则
{
"platformName": "Android",
"deviceName": "RedMi",
"appPackage": "com.xxxx.xxxx",
"appActivity": ".xxx.xxx"
}
-
测试平台名:我们这里以Android为例,填写Android即可
-
设备名:这个随意填写,能认出是当前的机子就行
-
appPackage:App的基础包名,不知道的话可以打开Android Studio看一下
-
appActivity:想要进入的第一个页面,这里用相对路径,所以前面加一个点号,后面跟着class的名称,如.activity.MainActivity,即activity包下面的MainActivity.class,如果没有上级包那就直接填写.MainActivity就可以(需要注意的一点,如果会话一直无法启动,请检查AndroidManifest.xml中App的首个指定的启动页面,有些App是登录,例如LoginActivity,有些App是封面Logo,有些App是直接进入首页,例如MainActivity,如果选择的不对,会话是无法启动的)
- 启动会话
- 自动安装Appium For Android
点击安装即可,然后会话就启动了,手机端会自动打开待测试的App,电脑端如图所示:
若Appium停留在在欢迎页面,请手动点击刷新
- 开始录制脚本——以登录为例
-
点击开始录制
-
点击输入框,点击发送密钥
-
输入字符
-
复制自动生成的代码
5. 编写自动化脚本
- 打开IDEA,创建一个Maven项目
- 在pom.xml中填写依赖
1.appium所需的依赖
<dependency>
<groupId>io.appium</groupId>
<artifactId>java-client</artifactId>
<version>7.5.0</version>
</dependency>
2.JUnit所需的依赖
<!-- https://mvnrepository.com/artifact/junit/junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
</dependency>
完整的pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>test</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<!-- https://mvnrepository.com/artifact/io.appium/java-client -->
<dependency>
<groupId>io.appium</groupId>
<artifactId>java-client</artifactId>
<version>7.5.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/junit/junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
</dependency>
</dependencies>
</project>
- 把样板代码复制到Java中
- 关闭Appium的会话检查器,只留下Appium的服务器,如图所示。
- 运行
- 手机会自动运行上述脚本
6.结语
如有帮助,请点赞收藏文章和关注我,如有问题请留言。