JavaApp自动化测试系列[v1.0.0][Appium开发环境搭建]

Appium 是一个开源工具,用于自动化 iOS 手机、 Android 手机和 Windows 桌面平台上的原生、移动 Web 和混合应用。「原生应用」指那些用 iOS、 Android 或者 Windows SDKs 编写的应用。「移动 Web 应用」是用移动端浏览器访问的应用( Appium 支持 iOS 上的 Safari 、Chrome 和 Android 上的内置浏览器)。「混合应用」带有一个「webview」的包装器——用来和 Web 内容交互的原生控件

Appium 支持Selenium Webdriver支持的所有语言,例如Java、Ruby、Python、PHP、JavaScript 和 C#

Appium框架

  • 客户端和服务器:Appium客户端可以理解为发起命令的设备,通常来讲就是执行Appium测试代码的计算机,或者直接把Appium理解为测试代码(Java、Ruby、Python、PHP、JavaScript 和 C# ),只要它实现了WebDriver标准协议即可;Appium服务端 的核心一个是暴露 REST API 的 WEB 服务器,它主要是监听一个端口,接收由客户端发来的指令,并将这些指令翻译成移动端可以理解的形式并发送给移动端,然后移动端执行指令并将执行结果返回给Appium服务器,Appium服务器再把执行结果返回给客户端
  • 会话:自动化始终在一个会话的上下文中执行,这些客户端程序库以各自的方式发起与服务器的会话,但最终都会发给服务器一个 POST /session 请求,请求中包含一个被称作「预期能力(Desired Capabilities)」的 JSON 对象。这时服务器就会开启这个自动化会话,并返回一个用于发送后续命令的会话 ID
  • Desired Capabilities:是一些发送给 Appium 服务器的键值对集合(比如 map 或 hash),它告诉服务器我们想要启动什么类型的自动化会话。也有许多Capabilities可以修改服务器在自动化过程中行为
  • Bootstrap.jar:运行在Android手机上的一个应用程序,在手机上扮演TCP服务器的角色,当Appium服务器运行指令时,实际上是与Bootstrap.jar建立TCP通信,并把指令发给Bootstrap.jar,然后Bootstrap.jar执行测试

Appium环境搭建

安装JDK

下载JDK安装文件

官方下载地址下载JDK安装文件

配置环境变量

  • 配置系统变量:新建JAVA_HOME变量,变量值填写jdk的安装目录C:\Program Files\Java\jdk1.8.0_152
  • 配置系统变量:Path变量→编辑,在变量值最后输入%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
  • 配置系统变量:新建 CLASSPATH变量,变量值填写 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar

环境校验

CMD运行java -version、javac,如图所示,则表明上述安装配置成功

在这里插入图片描述

安装Node

用浏览器访问Node官方下载地址,选择合适的版本,这里不建议使用太新的版本,最好使用稳定版本然后双击下载的MSI文件进行安装,所有步骤都采用默认选项即可,然后启动CMD,输入node -vnpm验证Node安装,如下窗口所示表示安装成功
在这里插入图片描述
出现如上图信息,表示 node.js 安装成功。npm 是一个 node 包管理和分发工具,有了 npm,后面就可以输入指令在线安装 appium

安装安卓SDK

Android SDK是Google提供的Android开发工具,在做Android测试的时候需要使用SDK中的相关API,可以从官方下载地址,也可以从Android或者Android下载SDK的安装文件,下载完安装文件后,双击进行安装

Android SDK Tools Setup

安装Android SDK的前提是系统中已经安装好JDK,安装Android SDK的过程中会自动校验JDK
Android SDK Tools Setup

安装路径尽量不要使用默认路径,尽量自定义
Android SDK Tools Setup

安装Android API及工具类

Android SDK Manager

SDK配置环境变量

  • 系统变量新建:ANDROID_HOME对应变量值为C:\Android\android-sdk,这里要根据实际值进行配置
    ANDROID_HOME
  • path 添加两个变量,将以下箭头所指的两个文件路径添加到 path 里C:\Android\android-sdk\platform-toolsC:\Android\android-sdk\tools,当然也可以使用相对路径
    path

SDK环境校验

加粗样式

链接设备

  • 手机用数据线连电脑,可能需要先下载手机驱动安装,这个可以借助第三方软件,各种手机助手之类的安装,确认手机能连上
  • 打开 cmd 输入:adb devices,当屏幕上出现一串字符,后面显示 devices说明连接成功
    在这里插入图片描述
    如果只显示到List of devices attached,而没有显示设备的唯一标识及状态,大概率上是移动端USB调试没有成功开启

参数解释

  • 6EJ4C18A18000811:是个序列号,它是adb创建的字符串,通过它唯一的识别一个模拟器或者设备实例
  • device:表示状态,如果是offline则表示没有与adb相连接或者无法响应;如果是no device表示没有模拟器或设备运行;如果是device表示有模拟器或设备运行

安装Appium

通过安装包安装

Appium官方下载

Bitbucket Home

安装过程很简单,不需要做特殊的设置,有些机器可能缺少.Net Framework4.5,官方下载地址,搜一下然后下载安装​​,然后再安装Appium即可

环境变量配置

  • 添加系统变量变量名为APPIUM_HOME变量值为C:\Program Files (x86)\Appium
    APPIUM_HOME
  • 在Path中添加%APPIUM_HOME%\node_modules\.bin;
    Path

Appium环境验证

如果是从官网下载的Appium,新版本的Appium已经没有%APPIUM_HOME%\node_modules\.bin这个路径了,也就是上边配置环境变量的第二步是失败的,因此在验证环境的时候输入appium-doctor会提示不是XXX命令,如此就需要手动安装appium-doctor,我们已经安装好了node,它带了npm工具,使用这个工具就可以轻松安装appium-doctor了

使用命令npm install appium-doctor -g,这里带上参数-g便可以直接配上环境变量,无需后续手动配置了
在这里插入图片描述

然后在命令行输入appium-doctor如下类似窗口呈现且无报错信息则表示环境配置成功
在这里插入图片描述

如果是从Bitbucket Home下载的Appium,那么它是带%APPIUM_HOME%\node_modules\.bin的,也就是说系统环境变量的配置中第二步是成功的,则可以直接运行命令验证
在这里插入图片描述

通过命令行方式安装

  • 安装好了Node之后就可以使用npm命令,使用官方地址安装则执行命令:npm intall appium -g
  • 官方地址非常慢,可以使用npm的镜像地址,首先安装源地址:npm config set registry https://registry.npm.taobao.org,然后再使用npm intall appium -g

除了安装appium外,npm还可以有很多作用,例如

  • 安装chromedriver:npm install appium -g --chromedriver_cdnurl=http://cdn.npm.taobao.org/dist/chromedriver
  • 指定版本安装则执行命令:npm intall -g [email protected]
  • 安装成功后仍旧使用appium-doctor来验证安装

除了npm外,还可以使用cnpm,这个方式要快很多

使用cnpm,用taobao的镜像,首先安装cnpmnpm install -g cnpm --registry=https://registry.npm.taobao.org
使用cnpm安装appiumcnpm install -g appium --no-cache
使用cnpm安装appium-doctorcnpm install appium-doctor -g
安装成功后,通过appium -v 查看当前appium版本,直接输入appium则启动appium server端

安装appium
C:\Users\Administrator>cnpm install appium -g
Downloading appium to C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium_tmp
Copying C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium_tmp\[email protected]@appium to C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium
Installing appium's dependencies to C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium/node_modules
[1/30] @babel/runtime@^7.6.0 installed at node_modules\_@[email protected]@@babel\runtime
[2/30] appium-uiautomator2-driver@^1.37.1 existed at node_modules\[email protected]@appium-uiautomator2-driver
[3/30] [email protected] installed at node_modules\[email protected]@appium-windows-driver
[4/30] appium-xcuitest-driver@^3.22.0 existed at node_modules\[email protected]@appium-xcuitest-driver
[5/30] appium-fake-driver@^1.x installed at node_modules\[email protected]@appium-fake-driver
[6/30] appium-android-driver@^4.20.0 installed at node_modules\[email protected]@appium-android-driver
[7/30] async-lock@^1.0.0 existed at node_modules\[email protected]@async-lock
[8/30] [email protected] existed at node_modules\[email protected]@asyncbox
[9/30] axios@^0.19.2 existed at node_modules\[email protected]@axios
[10/30] [email protected] existed at node_modules\[email protected]@bluebird
[11/30] argparse@^1.0.10 installed at node_modules\[email protected]@argparse
[12/30] [email protected] installed at node_modules\[email protected]@appium-mac-driver
[13/30] dateformat@^3.0.3 installed at node_modules\[email protected]@dateformat
[14/30] lodash@^4.17.11 existed at node_modules\[email protected]@lodash
[15/30] find-root@^1.1.0 installed at node_modules\[email protected]@find-root
[16/30] [email protected] existed at node_modules\[email protected]@npmlog
[17/30] semver@^7.0.0 existed at node_modules\[email protected]@semver
[18/30] [email protected] existed at node_modules\[email protected]@source-map-support
[19/30] [email protected] existed at node_modules\[email protected]@teen_process
[20/30] longjohn@^0.2.12 installed at node_modules\[email protected]@longjohn
[21/30] [email protected] installed at node_modules\[email protected]@continuation-local-storage
[22/30] [email protected] installed at node_modules\[email protected]@appium-ios-driver
[23/30] word-wrap@^1.2.3 installed at node_modules\[email protected]@word-wrap
[24/30] appium-base-driver@^6.0.1 installed at node_modules\[email protected]@appium-base-driver
[25/30] [email protected] installed at node_modules\[email protected]@winston
[26/30] appium-youiengine-driver@^1.2.0 installed at node_modules\[email protected]@appium-youiengine-driver
[27/30] appium-tizen-driver@^1.1.1-beta.4 installed at node_modules\[email protected]@appium-tizen-driver
[28/30] appium-espresso-driver@^1.0.0 installed at node_modules\[email protected]@appium-espresso-driver
[29/30] appium-flutter-driver@^0 installed at node_modules\[email protected]@appium-flutter-driver
[30/30] [email protected] installed at node_modules\[email protected]@appium-support
execute post install 4 scripts...
[1/4] scripts.install [email protected] run "node install-npm.js", root: "C:\\Users\\Administrator\\AppData\\Roaming\\npm\\node_modules\\appium\\node_modules\\[email protected]@appium-windows-driver"
info WinAppDriver WinAppDriver doesn't exist, setting up
info WinAppDriver Downloading https://github.com/Microsoft/WinAppDriver/releases/download/v1.2-RC/WindowsApplicationDriver.msi to 'C:\Users\ADMINI~1\AppData\Local\Temp\1c7aa524-6ded-486c-9b62-4019258e0d3f.msi'
dbug Support https://github.com/Microsoft/WinAppDriver/releases/download/v1.2-RC/WindowsApplicationDriver.msi (3.74 MB) has been downloaded to 'C:\Users\ADMINI~1\AppData\Local\Temp\1c7aa524-6ded-486c-9b62-4019258e0d3f.msi' in 15.887s
dbug Support Approximate download speed: 241.20 KB/s
info WinAppDriver Running MSI installer...
[1/4] scripts.install [email protected] finished in 19s
[2/4] scripts.postinstall [email protected][email protected] › appium-chromedriver@^4.23.1 run "node install-npm.js", root: "C:\\Users\\Administrator\\AppData\\Roaming\\npm\\node_modules\\appium\\node_modules\\[email protected]@appium-chromedriver"
[16:28:51] [Chromedriver Install] Installing Chromedriver version '84.0.4147.30' for platform 'win' and architecture '32'
[16:28:51] [Chromedriver Install] Opening temp file to write 'chromedriver_win32' to...
[16:28:51] [Chromedriver Install] Opened temp file 'C:\Users\ADMINI~1\AppData\Local\Temp\2020724-167296-1eh8os7.j0vri\chromedriver_win32.zip'
[16:28:51] [Chromedriver Install] Downloading https://cdn.npm.taobao.org/dist/chromedriver/84.0.4147.30/chromedriver_win32.zip to 'C:\Users\ADMINI~1\AppData\Local\Temp\2020724-167296-1eh8os7.j0vri\chromedriver_win32.zip'
dbug Support https://cdn.npm.taobao.org/dist/chromedriver/84.0.4147.30/chromedriver_win32.zip (4.63 MB) has been downloaded to 'C:\Users\ADMINI~1\AppData\Local\Temp\2020724-167296-1eh8os7.j0vri\chromedriver_win32.zip' in 7.536s
dbug Support Approximate download speed: 628.60 KB/s
[16:28:59] [Chromedriver Install] Extracting C:\Users\ADMINI~1\AppData\Local\Temp\2020724-167296-1eh8os7.j0vri\chromedriver_win32.zip to C:\Users\ADMINI~1\AppData\Local\Temp\2020724-167296-1eh8os7.j0vri\chromedriver_win32
[16:28:59] [Chromedriver Install] Creating C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\[email protected]@appium-chromedriver\chromedriver\win...
[16:28:59] [Chromedriver Install] Copying unzipped binary, reading from C:\Users\ADMINI~1\AppData\Local\Temp\2020724-167296-1eh8os7.j0vri\chromedriver_win32\chromedriver.exe...
[16:28:59] [Chromedriver Install] Writing to C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\[email protected]@appium-chromedriver\chromedriver\win\chromedriver.exe...
[16:28:59] [Chromedriver Install] C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\[email protected]@appium-chromedriver\chromedriver\win\chromedriver.exe successfully put in place
[2/4] scripts.postinstall [email protected][email protected] › appium-chromedriver@^4.23.1 finished in 9s
[3/4] scripts.postinstall [email protected][email protected] › core-js@^2.5.7 run "node -e \"try{require('./postinstall')}catch(e){}\"", root: "C:\\Users\\Administrator\\AppData\\Roaming\\npm\\node_modules\\appium\\node_modules\\[email protected]@core-js"
Thank you for using core-js ( https://github.com/zloirock/core-js ) for polyfilling JavaScript standard library!

The project needs your help! Please consider supporting of core-js on Open Collective or Patreon:
> https://opencollective.com/core-js
> https://www.patreon.com/zloirock

Also, the author of core-js ( https://github.com/zloirock ) is looking for a good job -)

[3/4] scripts.postinstall [email protected][email protected] › core-js@^2.5.7 finished in 96ms
[4/4] scripts.postinstall [email protected][email protected] › core-js@^3.4.1 run "node -e \"try{require('./postinstall')}catch(e){}\"", root: "C:\\Users\\Administrator\\AppData\\Roaming\\npm\\node_modules\\appium\\node_modules\\[email protected]@core-js"
[4/4] scripts.postinstall [email protected][email protected] › core-js@^3.4.1 finished in 95ms
peerDependencies link @jimp/[email protected] in C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\_@[email protected]@@jimp\types unmet with C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\@jimp\custom(0.10.3)
peerDependencies link @jimp/[email protected] in C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\_@[email protected]@@jimp\gif unmet with C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\@jimp\custom(0.10.3)
peerDependencies link @jimp/[email protected] in C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\_@[email protected]@@jimp\jpeg unmet with C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\@jimp\custom(0.10.3)
peerDependencies link @jimp/[email protected] in C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\_@[email protected]@@jimp\plugin-displace unmet with C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\@jimp\custom(0.10.3)
peerDependencies link @jimp/[email protected] in C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\_@[email protected]@@jimp\plugin-blur unmet with C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\@jimp\custom(0.10.3)
peerDependencies link @jimp/[email protected] in C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\_@[email protected]@@jimp\plugin-cover unmet with C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\@jimp\plugin-crop(0.10.3)
peerDependencies link @jimp/[email protected] in C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\_@[email protected]@@jimp\plugin-crop unmet with C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\@jimp\custom(0.10.3)
peerDependencies link @jimp/[email protected] in C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\_@[email protected]@@jimp\plugin-gaussian unmet with C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\@jimp\custom(0.10.3)
peerDependencies link @jimp/[email protected] in C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\_@[email protected]@@jimp\plugin-dither unmet with C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\@jimp\custom(0.10.3)
peerDependencies link @jimp/[email protected] in C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\_@[email protected]@@jimp\plugin-cover unmet with C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\@jimp\custom(0.10.3)
peerDependencies link @jimp/[email protected] in C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\_@[email protected]@@jimp\bmp unmet with C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\@jimp\custom(0.10.3)
peerDependencies link @jimp/[email protected] in C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\_@[email protected]@@jimp\plugin-contain unmet with C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\@jimp\custom(0.10.3)
peerDependencies link @jimp/[email protected] in C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\_@[email protected]@@jimp\png unmet with C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\@jimp\custom(0.10.3)
peerDependencies link @jimp/[email protected] in C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\_@[email protected]@@jimp\plugin-color unmet with C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\@jimp\custom(0.10.3)
peerDependencies link @jimp/[email protected] in C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\_@[email protected]@@jimp\plugin-flip unmet with C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\@jimp\custom(0.10.3)
peerDependencies link @jimp/[email protected] in C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\_@[email protected]@@jimp\plugin-contain unmet with C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\@jimp\plugin-blit(0.10.3)
peerDependencies link @jimp/[email protected] in C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\_@[email protected]@@jimp\plugin-contain unmet with C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\@jimp\plugin-resize(0.10.3)
peerDependencies link @jimp/[email protected] in C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\_@[email protected]@@jimp\plugin-cover unmet with C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\@jimp\plugin-resize(0.10.3)
peerDependencies link @jimp/[email protected] in C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\_@[email protected]@@jimp\plugin-contain unmet with C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\@jimp\plugin-scale(0.10.3)
peerDependencies link @jimp/[email protected] in C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\_@[email protected]@@jimp\plugin-blit unmet with C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\@jimp\custom(0.10.3)
peerDependencies link @jimp/[email protected] in C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\_@[email protected]@@jimp\plugin-cover unmet with C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\@jimp\plugin-scale(0.10.3)
peerDependencies link @jimp/[email protected] in C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\_@[email protected]@@jimp\plugin-scale unmet with C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\@jimp\plugin-resize(0.10.3)
peerDependencies link @jimp/[email protected] in C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\_@[email protected]@@jimp\plugin-resize unmet with C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\@jimp\custom(0.10.3)
peerDependencies link @jimp/[email protected] in C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\_@[email protected]@@jimp\plugin-rotate unmet with C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\@jimp\plugin-crop(0.10.3)
peerDependencies link @jimp/[email protected] in C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\_@[email protected]@@jimp\plugin-rotate unmet with C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\@jimp\plugin-blit(0.10.3)
peerDependencies link @jimp/[email protected] in C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\_@[email protected]@@jimp\plugin-flip unmet with C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\@jimp\plugin-rotate(0.10.3)
peerDependencies link @jimp/[email protected] in C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\_@[email protected]@@jimp\plugin-scale unmet with C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\@jimp\custom(0.10.3)
peerDependencies link @jimp/[email protected] in C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\_@[email protected]@@jimp\plugins unmet with C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\@jimp\custom(0.10.3)
peerDependencies link @jimp/[email protected] in C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\_@[email protected]@@jimp\plugin-rotate unmet with C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\@jimp\custom(0.10.3)
peerDependencies link @jimp/[email protected] in C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\_@[email protected]@@jimp\tiff unmet with C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\@jimp\custom(0.10.3)
peerDependencies link @jimp/[email protected] in C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\_@[email protected]@@jimp\plugin-normalize unmet with C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\@jimp\custom(0.10.3)
peerDependencies link @jimp/[email protected] in C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\_@[email protected]@@jimp\plugin-mask unmet with C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\@jimp\custom(0.10.3)
peerDependencies link @jimp/[email protected] in C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\_@[email protected]@@jimp\plugin-invert unmet with C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\@jimp\custom(0.10.3)
peerDependencies link @jimp/[email protected] in C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\_@[email protected]@@jimp\plugin-rotate unmet with C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\@jimp\plugin-resize(0.10.3)
peerDependencies link @jimp/[email protected] in C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\_@[email protected]@@jimp\plugin-print unmet with C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\@jimp\plugin-blit(0.10.3)
peerDependencies link @jimp/[email protected] in C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\_@[email protected]@@jimp\plugin-print unmet with C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\@jimp\custom(0.10.3)
peerDependencies WARNING [email protected] › ws@^7.0.0 requires a peer of bufferutil@^4.0.1 but none was installed
peerDependencies WARNING [email protected] › ws@^7.0.0 requires a peer of utf-8-validate@^5.0.2 but none was installed
deprecate [email protected][email protected] › request-promise@^4.2.5 request-promise has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142
deprecate [email protected][email protected][email protected] › har-validator@~5.1.3 this library is no longer supported
deprecate [email protected][email protected] › circular-json@^0.5.9 CircularJSON is in maintenance only, flatted is its successor.
deprecate [email protected][email protected] › core-js@^2.5.7 core-js@<3 is no longer maintained and not recommended for usage due to the number of issues. Please, upgrade your dependencies to the actual version of core-js@3.
deprecate [email protected][email protected] › @jimp/[email protected] › @jimp/[email protected][email protected] Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)
Recently updated (since 2020-08-17): 10 packages (detail see file C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\.recently_updates.txt)
  Today:
    → [email protected] › webdriverio@^6.0.2(6.4.1) (16:16:42)[email protected][email protected][email protected](6.4.1) (16:16:37)[email protected][email protected][email protected](6.4.1) (16:16:37)
  2020-08-22
    → [email protected][email protected][email protected] › aggregate-error@^3.0.0(3.1.0) (06:29:47)[email protected][email protected][email protected][email protected] › @sindresorhus/is@^3.0.0(3.1.2) (06:25:07)
  2020-08-21
    → [email protected] › appium-ios-simulator@^3.21.0(3.23.0) (14:24:17)
  2020-08-20
    → [email protected] › appium-base-driver@^7.0.0(7.2.0) (12:17:52)[email protected][email protected] › node-simctl@^6.3.0(6.3.0) (16:52:07)
  2020-08-18
    → [email protected][email protected] › appium-chromedriver@^4.23.1(4.25.1) (13:31:00)
  2020-08-17
    → [email protected][email protected] › @types/[email protected] › @types/node@*(14.6.0) (22:34:03)
All packages installed (642 packages installed from npm registry, used 2m(network 2m), speed 404.2kB/s, json 512(1.47MB), tarball 44.6MB)
[[email protected]] link C:\Users\Administrator\AppData\Roaming\npm\appium@ -> C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\build\lib\main.js
[[email protected]] link C:\Users\Administrator\AppData\Roaming\npm\authorize-ios@ -> C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium\node_modules\.bin\authorize-ios
安装appium-doctor
C:\Users\Administrator>cnpm install appium-doctor -g
Downloading appium-doctor to C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium-doctor_tmp
Copying C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium-doctor_tmp\[email protected]@appium-doctor to 
C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium-doctor
Installing appium-doctor's dependencies to C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium-doctor/node_modules
[1/11] colors@^1.1.2 installed at node_modules\[email protected]@colors
[2/11] bluebird@^3.5.1 installed at node_modules\[email protected]@bluebird
[3/11] @babel/runtime@^7.0.0 installed at node_modules\_@[email protected]@@babel\runtime
[4/11] lodash@^4.17.10 installed at node_modules\[email protected]@lodash
[5/11] teen_process@^1.3.1 installed at node_modules\[email protected]@teen_process
[6/11] source-map-support@^0.5.6 installed at node_modules\[email protected]@source-map-support
[7/11] yargs@^15.0.1 installed at node_modules\[email protected]@yargs
[8/11] authorize-ios@^1.0.3 installed at node_modules\[email protected]@authorize-ios
[9/11] appium-adb@^8.4.0 installed at node_modules\[email protected]@appium-adb
[10/11] inquirer@^7.0.0 installed at node_modules\[email protected]@inquirer
[11/11] appium-support@^2.5.0 installed at node_modules\[email protected]@appium-support
execute post install 1 scripts...
[1/1] scripts.postinstall [email protected][email protected] › core-js@^3.4.1 run "node -e \"try{require('./postinstall')}catch(e){}\"", root: "C:\\Users\\Administrator\\AppData\\Roaming\\npm\\node_modules\\appium-doctor\\node_modules\\[email protected]@core-js"
[1/1] scripts.postinstall [email protected][email protected] › core-js@^3.4.1 finished in 84ms
deprecate authorize-ios@^1.0.3 Moved into appium
All packages installed (258 packages installed from npm registry, used 30s(network 29s), speed 460.64kB/s, json 235(736.4kB), tarball 12.54MB)
[[email protected]] link C:\Users\Administrator\AppData\Roaming\npm\appium-doctor@ -> C:\Users\Administrator\AppData\Roaming\npm\node_modules\appium-doctor\appium-doctor.js
检查Appium环境
C:\Users\Administrator>appium-doctor
info AppiumDoctor Appium Doctor v.1.15.3
info AppiumDoctor ### Diagnostic for necessary dependencies starting ###
info AppiumDoctor  ✔ The Node.js binary was found at: C:\Program Files\nodejs\node.EXE
info AppiumDoctor  ✔ Node version is 10.22.0
info AppiumDoctor  ✔ ANDROID_HOME is set to: C:\Android\android-sdk
info AppiumDoctor  ✔ JAVA_HOME is set to: C:\Program Files\Java\jdk1.8.0_261
info AppiumDoctor    Checking adb, android, emulator
info AppiumDoctor      'adb' is in C:\Android\android-sdk\platform-tools\adb.exe
info AppiumDoctor      'android' is in C:\Android\android-sdk\tools\android.bat
info AppiumDoctor      'emulator' is in C:\Android\android-sdk\tools\emulator.exe
info AppiumDoctor  ✔ adb, android, emulator exist: C:\Android\android-sdk
info AppiumDoctor  ✔ Bin directory of %JAVA_HOME% is set
info AppiumDoctor ### Diagnostic for necessary dependencies completed, no fix needed. ###
info AppiumDoctor
info AppiumDoctor ### Diagnostic for optional dependencies starting ###
WARN AppiumDoctor  ✖ opencv4nodejs cannot be found.
WARN AppiumDoctor  ✖ ffmpeg cannot be found
info AppiumDoctor  ✔ mjpeg-consumer is installed at: C:\Users\Administrator\AppData\Roaming\npm. Installed version is: 2.0.0
WARN AppiumDoctor  ✖ bundletool.jar cannot be found
WARN AppiumDoctor  ✖ gst-launch-1.0.exe and/or gst-inspect-1.0.exe cannot be found
info AppiumDoctor ### Diagnostic for optional dependencies completed, 4 fixes possible. ###
info AppiumDoctor
info AppiumDoctor ### Optional Manual Fixes ###
info AppiumDoctor The configuration can install optionally. Please do the following manually:
WARN AppiumDoctor  ➜ Why opencv4nodejs is needed and how to install it: https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/image-comparison.md
WARN AppiumDoctor  ➜ ffmpeg is needed to record screen features. Please read https://www.ffmpeg.org/ to install it
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
info AppiumDoctor
info AppiumDoctor ###
info AppiumDoctor
info AppiumDoctor Bye! Run appium-doctor again when all manual fixes have been applied!
info AppiumDoctor
启动Appium
C:\Users\Administrator>appium
[Appium] Welcome to Appium v1.18.1
[Appium] Appium REST http interface listener started on 0.0.0.0:4723

成功版本配置

因为各个工具版本繁多,多个工具间就存在兼容性问题,否则环境安装配置不成功的例子也非常多,比较成功的环境搭配

  • 在BitbucketHome下载的AppiumForWindows_1_4_16_1版本和Node8
  • 在Appium官网下载的appium-desktop-Setup-1.2.3.exe版本和Node6

猜你喜欢

转载自blog.csdn.net/dawei_yang000000/article/details/108149120
今日推荐