Appium 在 Windows 下,怎么从 0 开始配置起 Appium 环境?

Wesley Chen · 2014年02月28日 · 最后由 Archer 回复于 2014年03月01日 · 1712 次阅读

我是一个黑盒测试人员,对开发的东西知道的教少,我现在想在 windows 上搭建起 Appium + Ruby 测试环境,基本上搜索了所有的网站,尝试安装了那些帖子上提到的所有的应用程序,始终无法成功。

  1. 我从 Appium 官方网站下载 windows 版本的应用程序,解压之后,双击 Appium.exe,直接弹出崩溃画面,也没有任何警告信息; 问题 1: 请问,我该如何操作,才能保证双击 appium.exe,出现运行页面?
  2. 我通过 cmd 命令,最终安装了 Appium,现在我在 cmd 窗口,输入 appium &, 就能出现如下页面: 问题 2: 这是不是表明,我的 appium 是正常安装了?
  3. 我现在把 Android 平板电脑跟我的 windows 电脑相连; 有人提醒我必须是 Android 手机,还提到 root 权限 问题 3: 请问必须是手机吗? 问题 4: 如果是手机的话,要对手机进行怎么样的设置? 问题 5: 如果 android 平板电脑也可以的话,要对平板电脑进行怎样的设置?
  4. 我想应用 Ruby 语言,调用 Android 里面的 chrome 浏览器,打开浏览器,输入 www.baidu.com,点击 “Go”

问题 6: 步骤 4,应该是应用 appium 对手机进行自动化测试最简单的脚本,请问你能够提供完整的脚本给我作参考吗?
我看到目前很多论坛都提到要配置 android,提到了 url:http://127.0.0.1:4723/wd/hub, 我在 windows 上开启 appium,然后在 windows 的浏览器或者 android 平板链接电脑,在 android 浏览器中,输入这个 url,都无法访问
问题 7: 请问 http://127.0.0.1:4723/wd/hub 来自何方?
问题 8: 请问,我该如何操作,才能访问这个 URL?

以上问题基本上涵括了我作为一个新手从 0 开始配置 appium 自动化环境的所有问题,如果能够得到解答,将不胜感谢!

Wesley.
Thanks.

共收到 8 条回复 时间 点赞

先把 Android 开发环境配置起来。你觉得可以么?

#1 楼 @lihuazhang 没有试过,我通过 eclipse,可以把 Android 模拟器启动起来,至于怎么写代码操作这个模拟器,我还不清楚。我必须要清楚这个吗?
我只要配置起来 appium,然后写一个脚本,通过 appium 的某个命令,执行该脚本,就能过驱动 android 设备上浏览器,进行自动化操作呢,是这样吗?

Android 环境的有一些 环境变量一定要的。 比如 ANDROID_HOME 。看看这篇文章 http://testerhome.com/topics/153

#3 楼 @lihuazhang 环境变量都配置好的

还是等我们的视频吧, 我们下周放个基本的配置视频给大家

#5 楼 @seveniruby Thanks. 等待中。。。

看来新手帮助帖还要完善 @seveniruby @lihuazhang 楼主可以先看到这里http://testerhome.com/topics/496 虽然我没有过多地阐述如何在 windows 下使用 Appium,不过我还是建议你先看看这篇帖子,理论上 Appium For Windows 已经给你编译好了全部的东西,直接双击 exe 就可以了。

我这里有一份我之前写的一个 测试 2G,3G 网络下我们一个内部 APP 的登录时间 Demo,用的是 Appium For Windows。给你参考


# -*- coding:utf-8 -*-

'''
使用nose+appium的自动化测试用例EG1
作者:Archer_小A
http://www.diggerplus.org
'''

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import os
import time

#相对路径转化为绝对路径
PATH=lambda x:os.path.abspath(
    os.path.join(os.path.dirname(__file__),x)
)


#统计时长简单装饰器
def counttime(func):
    def _wrapper(*args,**kwargs):
        #开始时间
        starttime=time.clock()
        func(*args,**kwargs)
        print "%s 花费时间为 %.3f 秒" % (func.__name__,time.clock()-starttime)
    return _wrapper

class TestExample(object):

    def __init__(self,desired_caps):

        self.desired_caps=desired_caps
        self.driver=webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)


    #测试方法
    def login(self):

        #WebDriverWait元素定义超时时间
        WebDriverWait(self.driver,10).until(EC.presence_of_element_located((By.NAME,"登 录")))
        textfields=self.driver.find_elements_by_tag_name("textfield")
        # textfields[0].send_keys("XXXXXX")

        mypasswd="XXXXXXX"

        #内部APP的一个BUG,这里做特殊处理
        for i in reversed(range(0,len(mypasswd))):
            textfields[1].send_keys(mypasswd[i])
            time.sleep(1)

        self.driver.find_element_by_name("登 录").click()


    @counttime
    def checklogintime(self):
        WebDriverWait(self.driver,600).until(EC.presence_of_element_located((By.NAME,"消息")))

if __name__ == "__main__":

    #初始化Appium配置
    testone=TestExample(

        {

            'device':'Android',
            'app':PATH(

            './TestApps/XXX_ent_android.apk'

            ),
            'app-package':'com.XXX.XXX',
            'app-activity':'com.XXX.XXX.SplashActivity'

        }

    )

    #登录
    testone.login()
    testone.checklogintime()

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册