基于Python的Appium环境搭建合集

自动化一直是测试圈中的热聊,也是你们追求的技术方向。在测试中,每每回归测试也是测试人员的“痛点”。对于迭代慢、变动少的功能,就能用上自动化来替代人工回归,减轻工做量。javascript

问题

在分享环境搭建以前,先抛出个人一个疑问吧。html

app启用时,分不一样的场景:java

1.首次安装启用,有欢迎页;node

2.非首次启用,直接进入到登陆页;python

3.配置了推荐展现时,启用app,会先展现推荐内容,才进入到登陆页。android

不一样场景对应的activity都是不一样的,我目前处理办法是,写了个输入函数,加了个if判断去对应不一样的activity,总以为不智能,看此篇的博友们,可否给建议解惑一下。谢谢。ios

说了这么多,该进入正题了。Appium环境搭建,须要安装的软件仍是有好几个,一个安装失败,就可能致使整个环境搭建失败。先罗列下须要用到的软件,以下:web

1.jdk-8u221-window(下载对应版本) 2.Android-sdk_r24.4.1-windows(下载最新版) 3.Python 4.appium 5.Node.js 6.Appium-python-Client 7.pycharm

1、jdk安装

jdk下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.htmlchrome

JDK一键安装,无需多讲,默认安装路径便可json

环境配置:计算机>属性>高级属性>环境变量

变量名:JAVA_HOME

变量值:D:\Java\jdk1.8.0_73(这里是jdk安装路径)

变量名:path

变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;(使得系统能够在任何路径下识别java命令)

变量名:CLASSPATH

变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;(这里须要注意的是.不能漏)Java运行环境加载类的路径

环境配置是否成功,输入javac或者java -version验证,出现以下界面表示成功

 

 

 

 2、sdk工具类安装

Android SDK提供开发测试所必须的Android API类库和开发工具

1.sdk下载

sdk下载地址:https://www.androiddevtools.cn/

咱们须要下载的是SDK Tools

 

2.工具类安装

安装方式:

将下载的zip包解压,直接安装便可。

打开SDK Manager(首次自动弹出),按照默认勾选安装亦可。 主要安装工具Platform-tools、build-tools、Android API(选择最新版本便可),还有扩展插件Google USB Driver,其余根据实际状况自行选择。以下图:

 

下载安装时,走的是外网,若是以为下载速度太慢,能够配置国内镜像进行加速。

更改镜像地址Tools -> Options

 

大连东软信息学院镜像服务器地址: http://mirrors.neusoft.edu.cn 端口:80
北京化工大学镜像服务器地址: IPv4: http://ubuntu.buct.edu.cn/ 端口:80
IPv4: http://ubuntu.buct.cn/ 端口:80
IPv6: http://ubuntu.buct6.edu.cn/ 端口:80
上海GDG镜像服务器地址: http://sdk.gdgshanghai.com 端口:8000
中国科学院开源协会镜像站地址: IPV4/IPV6: http://mirrors.opencas.cn 端口:80
IPV4/IPV6: http://mirrors.opencas.org 端口:80
IPV4/IPV6: http://mirrors.opencas.ac.cn 端口:80

下载过程当中,能够去喝杯茶,看看网页,须要一小会哟

3.配置环境变量

喝杯茶的功夫,sdk所需的工具类是下载成功了,接下来就是要配置环境变量了。

环境变量配置 1.ANDROID_HOME:D:\Android\android-sdk 本身实际安装路径 2.Path已有变量追加值:
%ANDROID_HOME%\tools;%ADNROID_HOME%\platform-tools;%ADNROID_HOME%\build-tools\28.0.3\; 本身具体版本号

4.验证

使用adb命令验证便可,在dos窗口输入adb,出现以下截图,说明安装成功

 

 

3、Python安装

python的安装方式就略过了,也只是一路下一步便可,无须赘述。

4、Appium

1.什么是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实现了真正的跨平台自动化测试。

2.Appium工做原理

2.1 Android

在Android端,appium基于WebDriver协议,利用Bootstrap.jar,最后经过调⽤用UiAutomator的命令,实现App的自动化测试。UiAutomator测试框架是Android SDK自带的App UI自动化测试Java库。

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

appium 在android端工做流以下:

①client端也就是咱们的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。

2.2 IOS

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

appium 在ios端工做流以下:

①client端依然是咱们的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。

因此咱们能够看到android与ios区别在于appium 将请求转发到bootstrap.js或者bootstrap.jar,而后由bootstrap 驱动UIAutomation和UiAutomator去devices上完成具体的动做。

更多详细可参见这篇博文:http://www.javashuo.com/article/p-gsevyagf-cn.html

3.Appium安装

Appium下载地址:https://bitbucket.org/appium/appium.app/downloads/

 

 

将下载的zip包解压后安装,安装很简单,按提示操做便可。

配置环境变量

path环境变量:追加环境变量 C:\Program Files (x86)\Appium\node_modules\.bin;   具体安装路径

验证

输入命令appium-doctor查看,出现以下截图,说明安装成功

 

5、Node.js

配置Appium的环境,必需要有Node.js(Appium就是由Node.js编写的),因此须要对Node.js进行安装和配置环境。

下载地址:http://nodejs.cn/download/

下载对应的版本,以下所示

 

下载安装包后,双击安装,具体步骤忽略了,很简单。

配置环境变量

加path环境变量:C:\Program Files\nodejs\ node安装路径

验证

经过命令node -v查看node版本,出现以下截图,说明安装成功

 

6、Appium-python-Client

1.什么是Appium-python-Client

Appium的实用方法都在Client的源码里,对于driver和webelement实例,均有对应的元素查找方法(webelement查找的是下面的子元素),有些儿专门针对手机的函数,则须要在这个Client安装后方可以使用。

Appium为了实现本身的find查找方式,首先自定义了一个MobileBy类,给这个类对象塞入了它定义的一些扩展属性,这些属性的值会经过webdriver协议推送到server端去识别和执行,为了让这些属性运用到find方法中,appium很好地继承和扩展了webdriver.Remote,而后经过调用driver实例的find_element和find_elements两个核心方法实现元素查找。因此,既然是扩展,appiumdriver实例可使用seleniumdriver的全部关于元素查找的实例方法。

2.安装Appium-python-Client

使得appium和python创建链接关系,使用命令:pip install Appium-Python-Client,出现以下截图,则说明安装成功。

 

7、Pycharm

工具安装也忽略了,安装很简单的。

 

通过如上七个步骤的操做,基于Python的Appium环境搭建就成功了。虽然说成功了,但也仅仅是个开端而已,想要作好自动化,仍是须要静下心来,研习一番。今天的环境搭建就介绍到这了,下次带来genymotion及脚本的分享。有描述错误的地方,欢迎批评指正。

 

本文仅表明做者观点,系做者@温一壶清酒发表。
欢迎转载,但未经做者赞成必须保留此段声明,且在文章页面明显位置给出原文链接,不然保留追究法律责任的权利。
文章出处:http://www.cnblogs.com/hong-fithing/
相关文章
相关标签/搜索