appium--环境搭建

前戏

Appium是一个开源、跨平台的测试框架,可以用来测试原生及混合的移动端应用。Appium支持IOS、Android及FirefoxOS平台。Appium使用WebDriver的json wire协议,来驱动Apple系统的UIAutomation库、Android系统的UIAutomator框架。Appium对IOS系统的支持得益于Dan Cuellar’s对于IOS自动化的研究。Appium也集成了Selendroid,来支持老android版本。

Appium支持Selenium WebDriver支持的所有语言,如java、Object-C、JavaScript、Php、Python、Ruby、C#、Clojure,或者Perl语言,更可以使用Selenium WebDriver的Api。Appium支持任何一种测试框架。如果只使用Apple的UIAutomation,我们只能用javascript来编写测试用例,而且只能用Instruction来运行测试用例。同样,如果只使用Google的UIAutomation,我们就只能用java来编写测试用例。Appium实现了真正的跨平台自动化测试。

appium选择了client-server的设计模式。只要client能够发送http请求给server,那么的话client用什么语言来实现都是可以的,这就是appium及webdriver如何做到支持多语言的;

工作原理

Android

在Android端,appium基于WebDriver协议,利用Bootstrap.jar,最后通过调⽤用UiAutomator的命令,实现App的自动化测试。

UiAutomator测试框架是Android SDK自带的App UI自动化测试Java库。

另外由于UiAutomator对H5的支持有限,appium引入了chromedriver以及safaridriver等来实现基于H5的自动化。

appium 在android端工作流

  • client端也就是我们 test script是我们的webdriver测试脚本。
  • 中间是起的Appium的服务,Appium在服务端起了一个Server(4723端口),跟selenium Webdriver测试框架类似, Appium⽀持标准的WebDriver JSONWireProtocol。在这里提供它提供了一套REST的接口,Appium Server接收web driver client标准rest请求,解析请求内容,调⽤用对应的框架响应操作。
  • appium server会把请求转发给中间件Bootstrap.jar ,它是用java写的,安装在手机上.Bootstrap监听4724端口并接收appium 的命令,最终通过调⽤用UiAutomator的命令来实现。
  • 最后Bootstrap将执行的结果返回给appium server。
  • appium server再将结果返回给 appium client。

 

iOS

在IOS端,appium同样使⽤WebDriver的一套协议。

与Android端测试框架不同的是,appium ios封装了apple的 Instruments框架,主要用了Instrument里的UI Automation(Apple的⾃自动化测试框架),然后在设备中注⼊入bootstrap.js进⾏行监听。

appium 在ios端工作流

  • client端 依然是 test script是我们的webdriver测试脚本。
  • 中间是起的Appium的服务,Appium在服务端起了一个Server(4723端口),跟selenium Webdriver测试框架类似, Appium⽀持标准的WebDriver JSONWireProtocol。在这里提供它提供了一套REST的接口,Appium Server接收web driver client标准rest请求,解析请求内容,调⽤用对应的框架响应操作。
  • appium server调用instruments.js 启动⼀一个socket server,同时分出一个⼦子进程运⾏instruments.app,将bootstrap.js(一个UIAutomation脚本)注⼊入到device⽤于和外界进行交互
  • 最后Bootstrap.js将执行的结果返回给appium server
  • appium server再将结果返回给 appium client。

 

 环境搭建

不得不说,appium的环境搭建确实是一个比较麻烦的事情,有很多初学者才学app自动化的时候,就死在了环境搭建上。我自己当初也搭建了两天才搭建成功,以下方法是我自己搭建环境时总结的步骤,并不一定适合别人(仅供参考)。

我的系统是win10

 

上面的是我们需要安装的一个整体流程图

1、appium环境需要appium的一个安装包

2、我们针对android进行测试需要android本身的一个android 的sdk

3、android 这个本身就是java基础上的,我们需要配置java 的jdk

4、appium是node.js开发的,他的依赖就是node.js的安装包

5、我们既然要做自动化是不是需要选择一个开发语言、那么我们要把python给安装好

6、python如何和appium之间进行交互呢?那么我们需要一个appium-python-client的一个第三方扩展包

7、工欲善其事必先利其器,我们是不是要选择一个好的代码编辑ide,pycharm是我的最爱

安装Node.js

java jdk的安装我就不在这里详细的介绍了,相信大家都会安装,安装好配置环境变量,输入java来验证

Node.js下载地址:https://nodejs.org/en/download/releases/

 msi是windows下的安装包

 

在cmd下输入:node -v和npm -v来验证

 

 

Android SDK的安装

官网下载:
https://android-sdk.en.softonic.com/download

安装sdk首先要安装java的jdk环境(java的jdk10检测不到,所以我将10降为了8)

下载完之间下一步安装就可以了

 下载完打开 SDK Manager.exe下载工具,默认勾选的全部下载,要一个一个的接受

配置sdk的环境变量:
新建 ANDROID_HOME 值为SDK的安装目录

添加path路径(三个)

验证环境变量是否配置成功
cmd下输入:adb和aapt命令

 Appium安装

appium Server其实可以通过命令npm install -g appium安装,但是由于社会主义原因,直接安装可能会失败,所以我们可以通过镜像来安装

npm install -g cnpm --registry-https://registry.npm.taobao.org  (安装固定的版本:cnpm install appium@1.7.2 -g)

安装完成之后在cmd下执行where appium查看安装路径

where appium

 

appium -v查看版本

 

 我们也可以通过appium官网下载安装appium

appium客户端安装:

官方下载:http://appium.io/  比较慢

 

 安装Appium-python-client

直接执行pip install Appium-Python-Client

验证是否安装成功

 MAC下的安装

安装node.js

官网:https://nodejs.org/en/download/current/

下载完下一步下一步就行

node -v和npm -v来验证

 

posted @ 2019-08-04 19:46  邹邹很busy。  阅读(211)  评论(0编辑  收藏  举报