zoukankan      html  css  js  c++  java
  • [Selenium] 搭建 Android WebDriver 环境

    1.安装 Android SDK

    到如下网址下载 Android SDK

    http://developer.android.com/sdk/index.html

    2.创建 Android 虚拟设备

    解包刚下载的 SDK 压缩包,进入 tools 目录,然后启动 AVD 管理器( Android Virtual Device Manager)

    $ cd adt-bundle-mac-x86_64-20130917/sdk/tools

    $ ./android avd

    3.新建一个 Android 虚拟设备

    在 AVD 管理器上单击 New 新建一个  Android 虚拟设备。新的  Android 虚拟设备创建成功后,就可以启动他了。具体步骤参考  Android 开发者官网

    4.设置  Android 虚拟设备

    两种方式运行  Android WebDriver ,一种基于 RemoteWebDriver Server,另一种基于 Android Test Framework,他们优缺点如下:

    RemoteWebDriver Server Android Test Framework
    可用任意Selenium 支持绑定的编程语言 只能使用 Java 
    运行速度慢,因为每个命令都是基于 HTTP 的 RPC 方式 运行速度快,因为测试直接在模拟器或真实设备上
    可移植性更强,同一套代码测试多种不同浏览器 已经在使用 Android Test Framework 且不打算用同一套代码测试其他浏览器

    这里着重介绍RemoteWebDriver Server 方式,此方式包括服务器端和客户端2部分

    1)客户端

    一般指使用 JUnit 或 TestNG 组织的测试用例代码,运行的时候可选择直接在 IDE 中运行,也可通过命令行方式运行

    2)服务器端

    一般指运行在Android 设备上,且包含了 HTTP 服务器的应用程序

    在运行测试用例时,客户端的每个 WebDriver 命令都会发送一个采用 JSON 协议的 RESTful HTTP 请求道服务器端。而远端的HTTP 服务器会将用户端发送过来的请求转发给 Android WebDriver, 并将请求结果发送回客户端。具体JSON 协议规范见:http://code.goole.com/p/selenium/wiki/JsonWireProtocol

    5.安装并设置 Android WebDriver Server

    1)无论 Android 模拟器还是 Android 真实设备,都有一个序列号 serial ID,通过如下命令先获取模拟器或设备的 serial ID,此例中序列号为 f14c451c

    $ cd adt-bundle-mac-x86_64-20130917/sdk/platform-tools/

    $ ./adb devices

    List of devices attached

    f14c451c device

    2)下载 Android server 的 apk 文件,下载地址: https://code.google.com/p/selenium/downloads/list

    3)在安装Android-server.apk 文件到 Android 模拟器或真实设备上之前,应确保 Android  系统允许安装非 Android 官方市场下载的应用程序,安装命令:

    $ ./adb -s<serialId> -e install -r android-server.apk

    结合本例具体序列号和 Android Server 的版本而言,命令执行记过如下:

    $ ./adb -s f14c451c  -e install -r android-server-2.32.0.apk

    ...

    success

    4)有2种方式启动 Android WebDriver 应用程序,一种是从 Android 模拟器或设备的 UI 上启动,还一种是从命令启动,如下:

    $ ./adb -s<serialId> shell am start -a android.intent.action.MAIN -n org.openqa.selenium.android.app/.MainActivity

    结合本例具体序列号而言,命令执行结果如下:

    $ ./adb -sf14c451c   shell am start -a android.intent.action.MAIN -n org.openqa.selenium.android.app/.MainActivity

    Starting:Intent{act = android.intent.action.MAIN  cmp = org.openqa.selenium.android.app/.MainActivity}

    5)如果需要进入 debug 模式,可打开此选项,命令如下:

    $ ./adb -s<serialId> shell am start -a android.intent.action.MAIN -n org.openqa.selenium.android.app/.MainActivity -e debug true

    结合本例具体序列号而言,命令执行结果如下:

    $ ./adb -s sf14c451c shell am start -a android.intent.action.MAIN -n org.openqa.selenium.android.app/.MainActivity -e debug true

    Starting:Intent{act = android.intent.action.MAIN  cmp = org.openqa.selenium.android.app/.MainActivity(has extras)}

    6)设置端口转发规则

    $ ./adb -s<serialId> forward tcp:8080 tcp:8080

    结合本例具体序列号而言,设定本地端口为8888,命令执行结果如下:

    $ ./adb -s sf14c451c  forward tcp:8888 tcp:8080

    这样就完成了 Android WebDriver Server 的安装和设置,接着就可以从本机的如下地址来查看测试代码 与  Android WebDriver Server 进行交互的状态:

    http://localhost:8888/wd/hub/status

    以下方式可检查确认  Android WebDriver Server安装并设置正确:
    1)在浏览器中 http://localhost:8888/wd/hub/status 查看端口转发是否成功,正常会显示 {status:0}

    2)使用 telnet 命令: $ telnet localhost 8888

    3)使用 curl 命令: $ curl http://localhost:8888/wb/hub/status

    4)使用 wget 命令: $ wget http://localhost:8888/wb/hub/status

    接下来就可运行测试用例,有几个地方需要注意:

    1)确保 Android 手机上 ”开发人员选项“ 中的 ”USB 调试“、”保持唤醒状态“ 和 ”允许模拟地点“ 处于打开状态

    2)确保 Android 手机上 ”USB 数据存储“ 处于关闭状态,否则会导致执行测试用例时出现不可操作 sdcard 的错误提示。

    测试用例示例:

     import org.openqa.selenium.android.AndroidDriver;

    ...

    //启动 Android WebDriver,并制定消息的转发地址为如下地址8888端口

    WebDriver driver = new AndroidDriver("http://localhost:8888/wd/hub");

    driver.get("www.1.com");

    String url = driver.getCurrentUrl();

    driver.close();

  • 相关阅读:
    C++学习 之 程序的组成部分(部分知识笔记)
    debian下重装mysql
    CGI 环境变量
    boost的libboost_system问题
    debian下使用shell脚本时出现了 declare:not found 解决方法
    编译的时候出现"/usr/bin/ld: cannot find -lz
    glibc升级,解决glib版本过低的问题
    ubuntu彩色图形界面
    (转)http://blog.chinaunix.net/uid-8363656-id-2031644.html CGI 编写
    linux安装JSONCPP
  • 原文地址:https://www.cnblogs.com/feifeidxl/p/4555150.html
Copyright © 2011-2022 走看看