基于Python的Appium环境搭建合集
自动化一直是测试圈中的热聊,也是大家追求的技术方向。在测试中,往往回归测试也是测试人员的“痛点”。对于迭代慢、变更少的功能,就能用上自动化来替代人工回归,减轻工作量。
问题
在分享环境搭建之前,先抛出我的一个疑问吧。
app启用时,分不同的场景:
1.首次安装启用,有欢迎页;
2.非首次启用,直接进入到登录页;
3.配置了推荐展示时,启用app,会先展示推荐内容,才进入到登录页。
不同场景对应的activity都是不同的,我目前处理办法是,写了个输入函数,加了个if判断去对应不同的activity,总觉得不智能,看此篇的博友们,能否给建议解惑一下。谢谢。
说了这么多,该进入正题了。Appium环境搭建,需要安装的软件还是有好几个,一个安装失败,就可能导致整个环境搭建失败。先罗列下需要用到的软件,如下:
.jdk-8u221-window(下载对应版本) .Android-sdk_r24.4.1-windows(下载最新版) .Python .appium .Node.js .Appium-python-Client .pycharm
一、jdk安装
jdk下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html
JDK一键安装,无需多讲,默认安装路径即可
环境配置:计算机>属性>高级属性>环境变量
变量名: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验证,出现如下界面表示成功


二、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所需的工具类是下载成功了,接下来就是要配置环境变量了。
环境变量配置
.ANDROID_HOME:D:\Android\android-sdk 自己实际安装路径
.Path已有变量追加值:
%ANDROID_HOME%\tools;%ADNROID_HOME%\platform-tools;%ADNROID_HOME%\build-tools\28.0.\; 自己具体版本号
4.验证
使用adb命令验证即可,在dos窗口输入adb,出现如下截图,说明安装成功

三、Python安装
python的安装方式就略过了,也只是一路下一步即可,无须赘述。
四、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上完成具体的动作。
更多详细可参见这篇博文:https://www.cnblogs.com/sophia194910/p/7515165.html
3.Appium安装
Appium下载地址:https://bitbucket.org/appium/appium.app/downloads/

将下载的zip包解压后安装,安装很简单,按提示操作即可。
配置环境变量
path环境变量:追加环境变量 C:\Program Files (x86)\Appium\node_modules\.bin; 具体安装路径
验证
输入命令appium-doctor查看,出现如下截图,说明安装成功

五、Node.js
配置Appium的环境,必须要有Node.js(Appium就是由Node.js编写的),所以需要对Node.js进行安装和配置环境。
下载地址:http://nodejs.cn/download/
下载对应的版本,如下所示

下载安装包后,双击安装,具体步骤忽略了,很简单。
配置环境变量
加path环境变量:C:\Program Files\nodejs\ node安装路径
验证
通过命令node -v查看node版本,出现如下截图,说明安装成功

六、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,出现如下截图,则说明安装成功。

七、Pycharm
工具安装也忽略了,安装很简单的。
经过如上七个步骤的操作,基于Python的Appium环境搭建就成功了。虽说成功了,但也仅仅是个开端而已,想要做好自动化,还是需要静下心来,研习一番。今天的环境搭建就介绍到这了,下次带来genymotion及脚本的分享。有描述错误的地方,欢迎批评指正。
基于Python的Appium环境搭建合集的更多相关文章
- MAC平台基于Python的Appium环境搭建
前言 最近笔者要为python+appium课程做准备,mac在2019年重新安装了一次系统,这次重新在mac下搭建appium环境,刚好顺带写个文稿给大家分享分享搭建过程. 一.环境和所需软件概述 ...
- 基于centos7下appium环境搭建
事件背景: 前几日在群里看到关总说他的server端是搭建在linux环境下,包括对客户端与服务端的交互处理,感觉整体思路清晰可鉴,于是就想尝试,动手实践,接着从环境搭建开始搞起,于是就有了这篇文章, ...
- 基于python的scrapy环境搭建
0.1安装python软件 32位机的电脑安装python-3.6.3.exe 64位机的电脑安装python-3.6.3-amd64.exe 0.1.1 python环境搭建 执行安装程序 选择Ad ...
- 基于Mac的Appium环境搭建(java)
一.jdk安装 1.下载地址 http://www.oracle.com/technetwork/java/javase/downloads/index.html 2.安装 3.配置环境变量: ope ...
- Appium python自动化测试系列之appium环境搭建(二)
2.1 基础环境搭建 当我们学习新的一项技术开始基本都是从环境搭建开始,本书除了第一章节也是的,如果你连最基础的环境都没有那么我们也没必要去说太多,大概介绍一下: 1.因为appium是支持andr ...
- Python + Appium 环境搭建
---恢复内容开始--- Appium自动化公司内部测试培训1-环境搭建 课程目的 一.Python + Appium 环境搭建 课程内容 1 安装前准备工作 搭建环境所需要的安装文件已经下载好 ...
- Python+Appium环境搭建
1.python环境搭建,这里就不做过多介绍 2.安装 node.js 2.1.官网下载node.js:https://nodejs.org/en/download/ 2.2.获取到安装文件后,直接双 ...
- (干货分享)mac python+appium环境搭建
因为mac本自带python2.x(不建议卸载,因为本本本身有很多依赖与此),所以装python3的过程极其坎坷,勉强装好后也总是各种报错.这次装appium环境,直接把原来的python3卸了,用h ...
- Python+Appium自动化测试(1)-appium环境搭建
用python+appium做appUI自动化测试,系统为Windows.首先是JDK与Android SDK的安装与环境变量的设置. 一,安装JDK,配置JDK环境变量 1,下载jdk jdk8官网 ...
随机推荐
- 【iOS】手动抛出异常
之前没遇到过需要手动抛出异常的时候,这次见到了,记录一下.示例代码如下: /** 如果调用 [[BNRItemStore alloc] init],就提示应该使用 [BNRItemStore shar ...
- 【iOS】ERROR ITMS-90032: "Invalid Image Path...
用 Application Loader 提交苹果审核时出现了这个问题,具体如下: ERROR ITMS-: "Invalid Image Path - No image found at ...
- spring boot 学习笔记之前言----环境搭建(如何用Eclipse配置Maven和Spring Boot)
本篇文档来源:https://blog.csdn.net/a565649077/article/details/81042742 1.1 Eclipse准备 (1) 服务器上安装JDK和Mav ...
- sift、surf、orb 特征提取及最优特征点匹配
目录 sift sift特征简介 sift特征提取步骤 surf surf特征简介 surf特征提取步骤 orb orb特征简介 orb特征提取算法 代码实现 特征提取 特征匹配 附录 sift si ...
- 【Java例题】2.8 解一元二次方程
8.解一元二次方程. 输入一元二次方程的a,b,c三个系数,解一元二次方程 ax^2+bx+c=0,输出两个根 package study; import java.util.Scanner; pub ...
- 为什么unsigned (-1)表示无符号整数的最大值
整数在计算机中的表示 在计算机中,整数采用补码表示.当前主流编译器中整型在内存中占用四个字节,共32位. 机器数:一个数在计算机中的二进制表示形式, 叫做这个数的机器数.机器数是带符号的,在计算机用一 ...
- Axure 使用 简单入门
1.Axure 简介 Axure是快速原型工具,简单来说就是把自己的web或app想法快速的展示出来的工具.具体信息百科:https://baike.baidu.com/item/axure%20rp ...
- android——SQLite数据库存储(创建)
Android 专门提供了SQLiteOpenHelper帮助类,借助这个类就可以非常简单的对数据库进行创建和升级. 首先SQLiteOpenHelper是一个抽象类,在使用的时候需要创建一个自己的帮 ...
- CMake入门-02-HelloWorld扩展
工作环境 系统:macOS Mojave 10.14.6 CMake: Version 3.15.0-rc4 Hello,World! 扩展-同一目录,多个源文件 (1) 新建 hello 目录,创建 ...
- Windows Server 2008创建域环境
介绍一下域环境搭建,域主要用于中大型企业,小型企业计算机数量不多,而中大型企业计算机比较多,使用域可以方便管理,安全性也比在工作组中安全 1.安装完操作系统默认都属于WORKGROUP工作组. 2.安 ...