前置条件:
安装JDK
jdk 9使用appium还有点问题,最好使用jdk 8。我使用的是jdk 8u161
。
JDK下载地址
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
下载后双击安装,安装完成后需要手工设置环境变量:
增加JAVA_HOME
变量为C:\Program Files\Java\jdk1.8.0_161
编辑PATH
变量,增加以下几个地址
%JAVA_HOME%\lib
%JAVA_HOME%\bin
注意:修改环境变量后,需要重启电脑以使配置生效。
安装Android SDK
怕麻烦的直接下载Android Studio,然后用图形界面安装SDK吧。我又不做Android开发,下个Android Studio真是浪费,所以只用一个100MB的命令行工具下载SDK。
https://developer.android.com/studio/index.html
在任意位置创建文件夹android-sdk
,比如C:\_portable_
然后将压缩包中的tools文件夹解压到android-sdk下
同样为了能够全局执行tools中的工具,需要设置环境变量:
增加%ANDROID_HOME%
,值为C:\_portable_\android-sdk
,然后在PATH中增加
%ANDROID_HOME%\tools
%ANDROID_HOME%\tools\bin
打开Git Bash,用sdkmanager
安装SDK。
区别于Windows中的命令提示符中直接执行sdkmanager
,在Git Bash中执行.bat
文件需要明确写出后缀:
touch ~/.android/repositories.cfg
sdkmanager.bat "platform-tools" "platforms;android-27" --verbose
sdkmanager.bat --update --verbose
提示done
之后,SDK就会被安装在android-sdk
文件夹下了。其中platform-tools
文件夹中就含有我们需要的adb.exe
等工具
sdkmanager的更多用法可参考:
https://developer.android.com/studio/command-line/sdkmanager.html
增加PATH
的值:
%ANDROID_HOME%\platform-tools
安装Appium
$ npm i -g appium appium-doctor
# 然后使用appium-doctor看看还有哪些条件没有满足
$ appium-doctor
info AppiumDoctor Appium Doctor v.1.4.3
info AppiumDoctor ### Diagnostic starting ###
info AppiumDoctor ✔ The Node.js binary was found at: C:\Program Files\nodejs\node.exe
info AppiumDoctor ✔ Node version is 8.9.4
info AppiumDoctor ✔ ANDROID_HOME is set to: C:\_portable_\android-sdk
info AppiumDoctor ✔ JAVA_HOME is set to: C:\Program Files\Java\jdk1.8.0_161
info AppiumDoctor ✔ adb exists at: C:\_portable_\android-sdk\platform-tools\adb.exe
info AppiumDoctor ✔ android exists at: C:\_portable_\android-sdk\tools\android.bat
info AppiumDoctor ✔ emulator exists at: C:\_portable_\android-sdk\tools\emulator.exe
info AppiumDoctor ✔ Bin directory of %JAVA_HOME% is set
info AppiumDoctor ### Diagnostic completed, no fix needed. ###
info AppiumDoctor
info AppiumDoctor Everything looks good, bye!
info AppiumDoctor
如果还有没有满足的条件,一一修复即可,现在剩下的一般是环境变量的地址没有填对。
连接手机,开始自动化测试
接下来就可以连接手机,开启USB调试,进行自动化测试了。
appium.io提供的使用范例
http://appium.io/docs/en/about-appium/getting-started/index.html
测试用的apk
https://github.com/appium/sample-code/blob/master/sample-code/apps/ApiDemos/bin/ApiDemos-debug.apk
# 启动appium
$ appium
[Appium] Welcome to Appium v1.7.2
[Appium] Appium REST http interface listener started on 0.0.0.0:4723
保持以上appium在后台运行,新开一个Git Bash:
$ mkdir test_appium
$ cd test_appium
$ touch test.js
$ npm i webdriverio
然后在test.js
文件中输入以下内容:
// javascript
const wdio = require('webdriverio');
const opts = {
port: 4723,
desiredCapabilities: {
platformName: "Android",
platformVersion: "7.0",
deviceName: "Android Emulator",
app: "C:\\Users\\gbcdef\\Documents\\dev\\test_app\\ApiDemos-debug.apk",
}
};
const client = wdio.remote(opts);
client
.init()
.click("~App")
.click("~Alert Dialogs")
.back()
.back()
.end();
使用node
执行以上自动化测试脚本:
node test.js
手机上就会自动安装测试apk,自动执行脚本了。