欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

1-appium环境搭建

程序员文章站 2022-07-12 22:13:45
...

计划整理一份Appium学习笔记,欢迎关注。

第一期针对Android,效果好的话,会写第二期iOS。

尽量将步骤写的详细一些,方便大家学习,也方便自己回顾。好,废话不多说,开始进入正题。

一、基本概念介绍

(1)为什么选择Appium?

  • 应用广泛,目前被很多公司应用;(意味着可以帮你升职加薪)
  • 支持多种语言;(该系列笔记将使用Python语言)支持的语言越多,意味着受众可能越多,生态发展好,就大概率经久不衰;
  • 跨平台;支持Android、iOS;
  • 跨架构;NativeApp、Hybird App、Web App

(2)NativeApp

  • 指原生应用程序(Android、iOS),依托于操作系统,有很强的交互,可拓展性强;需要用户下载安装使用,是一个完整的APP。

  • 原生应用程序是某个移动平台(比如iOS或Android)所特有的,使用相应平台支持的开发工具和语言(比如Android支持的Android studio、kotlin;iOS的XCode、swift)。原生应用程序看起来(外观)和运行起来(性能)的速度是最佳的。

  • Native app优势:速度快,性能高,用户体验更好;可以调用手机终端硬件是设备(GPS、摄像头、麦克风、通讯录等等) ;可访问本地资源 ;下载到本地,可节省带宽成本

  • 劣势:开发成本高,需针对不同平台开发相应的版本;需要维护多个版本;盈利需要与第三方分成;获取新版本需重新下载应用更新(提示用户下载跟新,体验差);发布新版本需通过store或market确认,而且时间长(应用商店发布审核周期长。Android需要发不同的商店(华为、小米、OPPO、应用宝等,不同商店审核的时间不同),而iOS平台也需要的1-3天的工作日)

(3)Web App

  • Web APP基于web的系统和应用,运行于网络和浏览器之上,目前多采用h5标准开发,无需下载安装。

  • HTML5应用程序使用标准的Web技术,通常是HTML5、JavaScript和CSS。只编写一次、可到处运行的移动开发方法构建的跨平台移动应用程序可以在多个设备上运行

  • Web app优势:
    跨平台开发(基于浏览器)
    开发成本低(整体量级轻)
    无需安装,(节约内存空间)
    可随即上线(不需要等待审核)
    更新无需通知用户(自动更新)
    维护比较简单

  • 劣势:
    需要依赖网络,体验相对较差
    功能受限,无法获取系统级别的通知,提醒,动效等
    入口强依赖于第三方浏览器,导致用户留存率低
    页面跳转费力,不稳定感更强
    安全性相对较低,数据容易泄露或被劫持

(4)Hybird App:

  • Hybrid APP指的是原生APP中包含部分的Web页面的混合类APP。
  • 需要下载安装,看上去是Native APP,但APP中部分页面是通过UI Web View访问的是Web h5内容;
  • 缓和应用程序让开发人员可以把h5应用程序嵌入到一个原生容器里,集原生应用程序和h5应用程序的优点(缺点)于一体。
  • Hybrid APP优势:
    混合应用中比例*
    比如Web 占90%,原生占10%;或者各占50%
    便于调试,开发时可以通过浏览器,工具丰富
    顺利访问手机的各种功能
    App Store中可下载(Wen应用套用原生应用的外壳)
    兼容多平台,可下线使用
    页面存放于本地和服务器两种方式
    省去了跳转浏览器的麻烦
    app安装包体积减小
  • Hybrid APP劣势:
    不确定上线时间
    性能稍慢(需要连接网络)
    用户体验不如本地应用

(5)发布渠道和更新方式
混合App可以在应用商店App Store发布,但可以自主更新
而原生App的更新必须通过应用商店App Store

(6)移动设备本地API访问
混合App可以通过JavaScript API访问到移动设备的摄像头、GPS
而原生App可以通过原生编程语言访问设备所有功能

(7)搜索引擎友好
只有移动web对搜索引擎友好,可与在线营销无缝整合

(8)消息推送
只有混合App和原生App支持消息推送,这能增加用户忠诚度

二、环境搭建

搭建目标:Android + Windows10 + Appium + Python3 + PyCharm

1、安装JDK

因为Android系统依赖Java环境,因此必须按照JDK。这里放出官网地址:

https://www.oracle.com/technetwork/cn/java/javase/downloads/index.html

安装过程就不多介绍了(注意安装完成后,需设置java环境变量),网络相关信息很多。

2、安装Android SDK

(1)下载方法一:直接下载Android SDK
地址:https://android-sdk.en.softonic.com/

Android SDK是什么? SDK,software development kit,软件开发工具包。Android
SDK就是Android专属的软件开发工具包。

我们需要用到Android SDK的工具,所以这里需要安装。

下载安装后,需要配置环境变量。

(2)方法二:安装Android Studio
因为安装Studio后,会自动安装SDK。但这里有个坑:默认安装的SDK目录并不在Studio的目录,而是在类似下方的目录:C:\Users\duzil\AppData\Local\Android\Sdk\tools

3、安装NodeJS

因为Appium使用的node.js编写的,要想运行APPium就得安装node.js。
下载地址:https://nodejs.org/zh-cn/
安装完成后配置环境变量。

4、安装Appium-Server

Github工程地址:https://github.com/appium/appium-desktop/releases
方法一:使用npm命令行安装

  • 打开cmd窗口,输入指令
npm install -g appium

但由于网络的原因可能会按照失败。

方法二:下载Appium-desktop桌面应用
可以在https://github.com/appium/appium-desktop/releases下载对应的包
1-appium环境搭建
安装完成后,可以双击图片启动
1-appium环境搭建

5、安装appium-doctor

安装这个家伙是为了检查你的appium环境是否安装完备了。
安装方法:

C:\Users\duzil>npm install -g appium-doctor
npm WARN deprecated authorize-aaa@qq.com.2.1: Moved into appium
C:\Users\duzil\AppData\Roaming\npm\appium-doctor -> C:\Users\duzil\AppData\Roaming\npm\node_modules\appium-doctor\appium-doctor.js
+ appium-aaa@qq.com.15.3
added 268 packages from 254 contributors in 107.023s

验证命令:

C:\Users\duzil>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 12.18.3
info AppiumDoctor  ✔ ANDROID_HOME is set to: C:\Users\duzil\AppData\Local\Android\Sdk
info AppiumDoctor  ✔ JAVA_HOME is set to: C:\Program Files\Java\jdk1.8.0_171
info AppiumDoctor    Checking adb, android, emulator
info AppiumDoctor      'adb' is in C:\Users\duzil\AppData\Local\Android\Sdk\platform-tools\adb.exe
info AppiumDoctor      'android' is in C:\Users\duzil\AppData\Local\Android\Sdk\tools\android.bat
info AppiumDoctor      'emulator' is in C:\Users\duzil\AppData\Local\Android\Sdk\emulator\emulator.exe
info AppiumDoctor  ✔ adb, android, emulator exist: C:\Users\duzil\AppData\Local\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
WARN AppiumDoctor  ✖ mjpeg-consumer cannot be found.
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, 5 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  ➜ 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
info AppiumDoctor
info AppiumDoctor ###
info AppiumDoctor
info AppiumDoctor Bye! Run appium-doctor again when all manual fixes have been applied!
info AppiumDoctor

可以看到部分打X号的需要手动fixes。
解决:
WARN AppiumDoctor ✖ ffmpeg cannot be found
WARN AppiumDoctor ✖ mjpeg-consumer cannot be found.
通过npm工具安装:

npm i -g mjpeg-consumer
npm i -g ffmpeg

解决:
WARN AppiumDoctor ✖ opencv4nodejs cannot be found.
需要先确定cmake是否安装
在Dos中查看是否安装cmake

C:\Users\duzil>cmake -version
'cmake' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

cmake下载安装地址:https://cmake.org/download/
下载安装完成(我下周的是msi文件,)后,重启Dos窗口

6、安装Python对接Appium的库

(1)第一个库

pip install Appium-Python-Client

(2)第二个库

pip install Appium-UIAutomation

7、安装Python 3.x

安装Python 3.x,安装过程配置环境变量即可。

8、安装PyCharm

安装PyCharm,后续应用该IDE来编写脚本。

9、安装模拟器

(1)安装mumu模拟器

(2)安装夜神模拟器

(3)Android原生模拟器

注意:
使用如下命令绑定端口:

adb connect 127.0.0.1:62001

mumu模拟器的端口号为7555,执行 adb connect 127.0.0.1:7555
不同模拟器的端口号不一样,itools的是54001,夜神的是62001

10、使用真机

数据线调试,打开usb调试
(1)通过USB链接
(2)wifi链接

待补充