前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >移动测试 Appium源码初探

移动测试 Appium源码初探

作者头像
苦叶子
发布2018-04-09 15:04:07
1.7K0
发布2018-04-09 15:04:07
举报
文章被收录于专栏:开源优测开源优测开源优测

移动测试 Appium源码初探

介绍

Appium 是一个自动化测试开源工具,支持 iOS 平台和 Android 平台上的原生应用,web 应用和混合应用。

“移动原生应用”是指那些用 iOS 或者 Android SDK 写的应用。

“移动 web 应用”是指使用移动浏览器访问的应用(Appium 支持 iOS 上的 Safari 和 Android 上的 Chrome)。

“混合应用”是指原生代码封装网页视图——原生代码和 web 内容交互。

文档

首先我们先看下Appium的官方文档地址:

入门手册:http://appium.io/tutorial.html

中文文档:http://appium.io/slate/cn/master/

安装

Appium支持各种语言的类库驱动来做移动端自动化测试,这些类库封装了标准Selenium客户端类库,为用户提供所有常见的JSON 格式selenium命令以及额外的移动设备控制相关的命令,如多点触控手势和屏幕朝向。

Appium客户端类库实现了Mobile JSON Wire Protocol(一个标准协议的官方扩展草稿)和W3C Webdriver spec(一个传输不可预知的自动化协议,该协议定义了MultiAction 接口)的元素。

下面我们看下如何安装Python版的驱动类库:

python pip 环境不会弄?参见这:[快学Python3]环境安装

使用pip命令来安装:

pip install Appium-Python-Client

通过git来安装:

git clone git@github.com:appium/python-client.git
cd python-client
python setup.py install

不管是哪种方式,安装完成后在你的python安装目录,以笔者的为例(笔者为Python3.6,安装在C:\Python36目录下),你可以在以下目录找到已经安装的Appium-Python-Client的源码:

C:\Python36\Lib\site-packages\appium
目录说明

Appium-Python-Client安装好后,其目录结构如下图所示:

appium下一级目录如下图:

common: 用于定义了Appium-Python-Cliennt的通用类,该目录下的exceptions.py定义了content(你可以翻译为上下文环境)异常基类

webdriver: Appium-Python-Client的核心模块,定义了各种错误、命令和方法,后面就这个package进行详解说明

__init__.py: 你懂的,不懂也别找我^_^

saucetestcase.py: 设备枚举和一些初始化、清理功能的实现

下面重点对webdriver这个package进行说明

webdriver

必须注意的时,Appium客户端驱动包是基于json wire protocol实现的,其依赖selenium2中的webdriver,所以在实际是应用Appium-Python-Client时,是需要先安装selenium2的。

下面我们对Appium-Python-Client中最核心的功能package webdriver进行分析说明:

先看下图红色框中的即为webdriver的目录结构:

下面对webdriver下各模块进行说明:

common/mobileby.py:  定义了移动测试端专用的一些定位方法

common/multi_action.py: 定义和实现了如何把移动端操作串起来的方法

common/touch_action.py: 定义和实现了的移动端的一些动作行为

connectiontype.py: 定义了设备连接的类型

errorhandler.py: 定义和实现移动端错误处理类

mobilecommand.py: 定义了移动端json wire protocol的命令

switch_to.py: 定义和实现了移动端web view上下文环境切换类

webdriver.py: 最基础核心的模块,定义和实现了各种常用方法(例如查找、拖曳、滚动等等)

webelement.py: 最基础核心的模块,定义和实现了元素常用的方法(例如查找,设置值等等)

__init__.py: 你懂的,对外导出了webdrive和webelement模块中的对象
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-12-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开源优测 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • 文档
  • 安装
  • 目录说明
  • webdriver
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档