Android UI
自动化测试工具有很多,这些工具基本是基于Android
控件层面,涉及Widgets
和WebView
两类;第一种是: 通过
Android
提供的各种服务来获取当前窗口的视图信息,如UI Automator
。第二种是: 基于
Instrumention
,把测试APK和被测APK运行在同一个进程中,通过Java反射机制来获取当前窗口的所有视图,如Robotium
UI Automator
、Appium
、Espresso
、Selendroid
、Robotium
等;Appium
。Appium
是开源的、跨平台的测试自动化测试框架;Appium
支持模拟器和真机上的原生应用、混合应用、Web
应用;Appium
使用WebDriver
的JSON wire
协议来驱动Apple
系统的UI Automator
库、Android
系统的UI Automator
框架;Appium
集成了Selendroid
框架,所以Appium支持比较老版本的Android
;Appium
支持Selenium WebDriver
支持的所有语言(Java
、Python
、JavaScript
、Objective-C
、PHP
、Ruby
、C#
、Clojure
、Perl
等)。client
,指咱们的测试脚本;Appium
在服务端启动一个Server
(4723端口),用来接口WebDriver client
标准的rest
请求,调用对应框架响应操作;Appium Server
把请求转发给中间件Bootstrap.jar
(手机上),Bootstrap.jar
监听4724端口并接收Appium
命令;Bootstrap
将执行结果返回给Appium Server
;Appium Server
再将结果返回给Appium Client
。client
,指咱们的测试脚本;Appium
在服务端启动一个Server
(4723端口),用来接口WebDriver client
标准的rest
请求,调用对应框架响应操作;Appium Server
调用instruments.js
,启动socket server
,分出子进程instruments.app
,将bootstrap.js
注入device
;bootstrap.js
将执行结果返回给Appium Server
;Appium Server
再将结果返回给Appium Client
。UI Automator
测试框架是Android SDK
自带的APP UI
自动化测试Java
库;UI Automator
对H5
支持有限;Appium
引入了chromedriver
等来实现基于H5的自动化;Bootstrap.jar
或bootstrap.js
,再由Bootstrap
驱动UI Automator
或UI Automation
。Windows
平台;Jre
,第二次是安装Jdk
,两次的安装目录,建议单独放在一个磁盘的根目录,如下,笔者的是:jdk-11.0.8
;
JAVA_HOME
:
Path
:Windows10 电脑,新建变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
Windows7 电脑,在变量值最后输入%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;注意用;号分隔
CLASSPATH
变量:变量名:CLASSPATH
变量值:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
java
环境:
SDK
下载: SDK官网和 下载较快的SDK网站;windows
平台的;SDK
的platform-tools
、根目录、tools
配置到系统环境变量path
中;D:\android-sdk-windows\platform-tools
D:\android-sdk-windows
D:\android-sdk-windows\tools
ANDROID_HOME
值为SDK
根目录:ANDROID_HOME
D:\android-sdk-windows
ANDROID_PATH
值为SDK
的platform-tools
目录:ANDROID_PATH
D:\android-sdk-windows\platform-tools
appium
以及验证后续安装的Appium
是否成功;node-v20.10.0-x64.msi
;npm
看到以下界面则表示node
安装成功了:
node.js
的一些环境变;node.js
的安装目录下新建两个文件夹如下node_global
和node_cache
:
NODE_PATH
变量:NODE_PATH
D:\nodejs\node_modules
path
新增:%NODE_PATH%
:
path
中的npm
路径为:D:\nodejs\node_global
:
install Appium
使用NPM
安装:npm i --location=global appium
appium
即可:C:\Windows\System32>appium
[Appium] Welcome to Appium v2.2.3
[Appium] Appium REST http interface listener started on http://0.0.0.0:4723
[Appium] You can provide the following URLs in your client code to connect to this server:
[Appium] http://172.16.1.33:4723/
[Appium] http://127.0.0.1:4723/ (only accessible from the same host)
[Appium] http://172.31.32.1:4723/
[Appium] No drivers have been installed in C:\Users\Administrator\.appium. Use the "appium driver" command to install the one(s) you want to use.
GUI
界面去安装appium-desktop;
appium-desktop
将不再支持
Appium 2.0+
版本,建议使用命令行方式,
appium-doctor
:npm install -g appium-doctor
appium-doctor
,检查环境是否ok:
appium
给出这几个错误的安装方法,但是有的地址无法访问了,所以以下对每个错误进行了排查:### Optional Manual Fixes ###
info AppiumDoctor The configuration can install optionally. Please do the following manually:
WARN AppiumDoctor ➜ mjpeg-consumer module is required to use MJPEG-over-HTTP features. Please install it with 'npm i -g mjpeg-consumer'.
WARN AppiumDoctor ➜ bundletool.jar is used to handle Android App Bundle. Please read http://appium.io/docs/en/writing-running-appium/android/android-appbundle/ to install it. Also consider adding the ".jar" extension into your PATHEXT environment variable in order to fix the problem for Windows
WARN AppiumDoctor ➜ gst-launch-1.0.exe and gst-inspect-1.0.exe are used to stream the screen of the device under test. Please read https://appium.io/docs/en/writing-running-appium/android/android-screen-streaming/ to install them and for more details
apkanalyzer.bat could NOT be found in D:\android-sdk-windows!
SDK
的目录下:
cmdline-tools\bin
目录下的apkanalyzer.bat
文件复制到platform-tools
下:
cmd
,输入appium-doctor
,查看问题解决了:
opencv4nodejs cannot be found.
opencv4nodejs
,CMake官网:
cmake-3.28.0-rc5-windows-x86_64.msi
,安装到默认路径,并勾选增加环境变量给所有用户:
C:\Program Files\CMake\bin\
cmake -version
查看:cmake version 3.28.0-rc5
opencv4nodejs
:npm -g install opencv4nodejs --ignore-scripts
opencv4nodejs
错误,发现是ok了:
ffmpeg cannot be found
ffmpeg
安装包:ffmpeg安装:
ffmpeg-release-essentials.zip
解压到某个目录下:D:\ffmpeg-6.1-essentials_build
D:\ffmpeg-6.1-essentials_build\bin
ffmpeg
也是ok的:
mjpeg-consumer cannot be found
npm i -g mjpeg-consumer
安装即可;bundletool.jar cannot be found
bundletool.jar
,bundletool.jar下载:
bundletool-all-1.15.6.jar
重新命名为bundletool.jar
,在android sdk
目录下,新建bundle-tools
目录,把bundletool.jar
包放入其中:
path
后都追加上述路径的环境:D:\android-sdk-windows\bundle-tools
PATHTEXT
添加:;.JAR
gst-launch-1.0.exe and/or gst-inspect-1.0.exe cannot be found
gst-launch-1.0.exe and gst-inspect-1.0.exe
:gst下载地址:
gstreamer-1.0-mingw-x86_64-1.22.7.msi
:
F:\gstreamer\1.0\mingw_x86_64\bin
C:\Windows\System32>appium-doctor
WARN AppiumDoctor [Deprecated] Please use appium-doctor installed with "npm install @appium/doctor --location=global"
info AppiumDoctor Appium Doctor v.1.16.2
info AppiumDoctor ### Diagnostic for necessary dependencies starting ###
info AppiumDoctor ✔ The Node.js binary was found at: D:\nodejs\node.EXE
info AppiumDoctor ✔ Node version is 20.10.0
info AppiumDoctor ✔ ANDROID_HOME is set to: D:\android-sdk-windows
info AppiumDoctor ✔ JAVA_HOME is set to: D:\jdk-11.0.8
info AppiumDoctor Checking adb, android, emulator, apkanalyzer.bat
info AppiumDoctor 'adb' is in D:\android-sdk-windows\platform-tools\adb.exe
info AppiumDoctor 'android' is in D:\android-sdk-windows\tools\android.bat
info AppiumDoctor 'emulator' is in D:\android-sdk-windows\tools\emulator.exe
info AppiumDoctor 'apkanalyzer.bat' is in D:\android-sdk-windows\platform-tools\apkanalyzer.bat
info AppiumDoctor ✔ adb, android, emulator, apkanalyzer.bat exist: D:\android-sdk-windows
info AppiumDoctor ✔ 'bin' subfolder exists under 'D:\jdk-11.0.8'
info AppiumDoctor ### Diagnostic for necessary dependencies completed, no fix needed. ###
info AppiumDoctor
info AppiumDoctor ### Diagnostic for optional dependencies starting ###
info AppiumDoctor ✔ opencv4nodejs is installed at: D:\nodejs\node_global. Installed version is: 5.6.0
info AppiumDoctor ✔ ffmpeg is installed at: D:\ffmpeg-6.1-essentials_build\bin\ffmpeg.EXE. ffmpeg version 6.1-essentials_build-www.gyan.dev Copyright (c) 2000-2023 the FFmpeg developers
info AppiumDoctor ✔ mjpeg-consumer is installed at: D:\nodejs\node_global. Installed version is: 2.0.0
info AppiumDoctor ✔ bundletool.jar is installed at: D:\android-sdk-windows\bundle-tools\bundletool.jar
info AppiumDoctor ✔ gst-launch-1.0.exe and gst-inspect-1.0.exe are installed at: F:\gstreamer\1.0\mingw_x86_64\bin\gst-launch-1.0.exe and F:\gstreamer\1.0\mingw_x86_64\bin\gst-inspect-1.0.exe
info AppiumDoctor ### Diagnostic for optional dependencies completed, no fix possible. ###
info AppiumDoctor
info AppiumDoctor Everything looks good, bye!
info AppiumDoctor
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。