Appium简介

Appium简介

Appium是一个开源的、跨平台的测试框架,可以用来测试Native App、混合应用、移动Web应用(H5应用)。

 

Appium坚持的测试理念:

       1. 无需用户对APP进行任何修改或者重新编译,App应该Born to be automated。

       2. 不应该限制用户只能使用特定的语言或者框架来编写和执行测试。

       3. 移动测试框架的API应该是稳定的,合理的。不应对自动化API 反复的造轮子。

       4. 移动测试框架应该是开源的,包括“精神和肉体”。

 

目前,Appium支持PythonJavaScriptObjective CJavaRubyphpc#。MQC目前首先选择支持Python语言和Java语言。其他语言将会陆续在MQC上得到支持。您也可以告诉我们您希望下一个被支持的语言。

 

Appium的架构是如何设计的?

事实上,Appium 真正的工作引擎全部是第三方自动化框架。这样,就不需在你的应用里植入其他任何代码。也就是说你测试使用的应用和最终发布的应用完全一致。使用以下的第三方框架如下:

      1. IOS: 苹果的 UIAutomation

      2. Android 4.2+: Google’s UiAutomator

      3. Android 2.3+: Google’s Instrumentation. (由单独的项目Selendroid提供支持)

 

Appium把这些第三方框架封装成一套 WebDriver API。(协议格式参见 JSON Wire Protocol)。使用这种CS架构,Appium就可以通过任何语言来封装API调用,从而提供不同语言的客户端给不同的人员。

 

Appium 的核心是一个 web 服务器,它提供了一套 REST 的接口。它收到客户端的连接,监听到命令,接着在移动设备上执行这些命令,然后将执行结果放在 HTTP响应中返还给客户端。事实上,这种客户端/服务端的架构给予了许多的可能性:比如我们可以使用任何实现了该客户端的语言来写我们的测试代码。比如我们可以把服务端放在不同 的机器上。

 

WebDriver 的Session概念

自动化始终围绕一个session进行,客户端初始化一个seesion(会话)来与服务端交互,不同的语言有不同的实现方式,但是他们最终都是发送为一个POST请求给服务端,请求中包含一个JSON对象,被称作“desired capabilities”。此时,服务端就会开启一个自动化的 session,然后返回一个 session ID,session ID将会被用户发送后续的命令。

 

什么是Desired Capabilities?

Desired capabilities 是一些键值对的集合 (比如,一个 map 或者 hash),客户端将这些键值对发给服务端,告诉服务端我们想要怎么测试。比如,我们可以把platformName capability 设置为 iOS,告诉 Appium 服务端,我们想要一个iOS 的 session,而不是一个 Android 的。完整列表参见 capabilities 文档

 

环境搭建

搭建Node.js环境

 

1. Node.js的官网下载安装Node.js 和 npm(Node.js的包管理工具)。

    注:安装Node.js的版本要求0.10或以上,建议安装最新的稳定版。

           Linux和Mac OS X用户安装时,不要使用sudo。 如果一定要使用sudo,必须保证Node.js的所有者和Appium包的所有者保持一致。具体方法,在下面“安装Appium”章节会有介绍。

           

安装Appium

1. 请先下载Node.js的Appium.zip 这个包。

2. 然后在命令行中执行:npm config get prefix这个命令。OSX 和Linux得到输出,比如/usr或者Windows得到输出,比如C:\Users\xxxx\AppData\Roaming\npm。 这样就可以找到Node.js的一个全局模块的根目录。

3. 结合刚刚找到的Node.js全局的package根目录,我们可以找到node_modules目录位置:OS X和Linux对应的位置为:/usr/lib/node_modules ;Windows对应的位置为:C:\Users\xxxx\AppData\Roaming\npm\node_modules

4. 解压下载的Appium.zip到刚刚找到的node_modules目录。

5. Windows用户在node_modules同级目录中,创建appium.cmd文件,并写入以下代码:

@IF EXIST "%~dp0\node.exe" (
  "%~dp0\node.exe"  "%~dp0\node_modules\appium\bin\appium.js" %*
) ELSE (
  @SETLOCAL
  @SET PATHEXT=%PATHEXT:;.JS;=;%
  node  "%~dp0\node_modules\appium\bin\appium.js" %*
)

  Linux/Mac OS用户,给node_modules/appium/bin/appium.js 增加可执行权限(chmod +x node_modules/appium/bin/appium.js),然后执行命令(可能需要sudo):

ln -s  /FULL--PATH--TO/node_modules/appium/bin/appium.js  /usr/bin/appium

  如果依然出现无法创建appium命令的情况,可以直接运行: node  node_modules/appium/bin/appium.js

 

验证安装。

在命令行中执行:appium -p 12345(在本地启动Appium Server并且监听端口号12345)。出现如下输出,说明Appium安装正常。否则,请到我们的旺旺交流群(群号:335334143)中反馈。


info: Welcome to Appium v1.3.7 (REV 72fbfaa116d3d9f6a862600ee99cf02f6d0e2182)
info: Appium REST http interface listener started on 0.0.0.0:12345
info: [debug] Non-default server args: {"port":12345}
info: Console LogLevel: debug

注意:请确保安装Node.js的用户和解压后的appium文件夹的所有者一致。如果不一致,Linux和OS X用户请用chown  -R  ${user}  appium 修改appium文件夹的所有者;Windows用户右键,选择“属性”修改。将”${user}”替换为相应的用户名。

 

安装Appium python客户端

1. 请先确保安装了Python(最好版本为2.7.x)。如果没有安装,请到Python官网下载安装。

2. 参考https://pypi.python.org/pypi/setuptools文档,安装python setuptools 。

3. 下载Appium-python-client.zip

4. 将文件夹解压到任意位置,然后使用命令行进入到解压后的文件夹目录,执行命令:python setup.py install(可能需要sudo)

 

其他环境要求

1. IOS

  Mac OS X 10.7 or higher, 建议10.9.2

  XCode >= 4.6.3, 建议5.1.1

  Apple Developer Tools

2. Android

  Android SDK API >= 17 (建议18/19)

其他环境问题请参考:linuxosxwindow

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值