如何为Android自动化设置Appium环境?

时间:2013-07-25 15:14:54

标签: appium

我在测试中作为SD工作。我是Appium Automation工具的新手,这个工具非常难为我设置环境。

我引用了以下链接:: http://unmesh.me/category/appium/

此链接帮助我通过命令行安装Node.js和appium。但我不确定这是否正确。

我从命令行得到以下消息:

mani-kandans-MacBook-Pro:platform-tools manikandan $ info:欢迎来到Appium v​​0.8.2(REV e9cc66197ad6a3496322bd77a8699509fc761b69) info:Appium REST http接口监听器在0.0.0.0:4723上启动    info - socket.io开始

在此之后我不知道。如何编写测试用例并通过Appium运行它?

如果您有兴趣分享您对Appium工具的了解。请指导我。

  1. 如何安装Appium?
  2. 如何通过Appium工具运行testcase?

5 个答案:

答案 0 :(得分:15)

第一部分: - 。您似乎已使用节点server.js启动了appium服务器 - 您可以通过浏览器中的localhost:4723/wd/hub/status检查服务器,这将返回服务器的一些详细信息。你已经做到了。

命令输出如下所示,确认服务器已启动:

info: Welcome to Appium v0.8.1 (REV ***********************************)
info: Appium REST http interface listener started on 0.0.0.0:4723
       info  - socket.io started

第二部分: - 。接下来,您将使用selenium RC for Python,Java或c#或您的语言选择。我使用了c#并且可以提供示例,这应该与您的测试类似。

将selenium添加到c#类:using OpenQA.Selenium.Remote;  您将所有数据传递给selenium所需的功能对象。 存在一些自定义所需功能,例如:

  • 'app-package'这是应用包名称,例如com.myapp.main,
  • 'app-activity'这是要调用的应用程序主要活动,它也将启动应用程序。这通常是一项启动活动或主要活动,
  • 'wait-activity'是Appium一旦启动就会检查的活动,这将是app-activity,但对于我来说,如果某些测试启动了一个新的活动而不是被调用,那就不同了,
  • '版本'采取Android版本,
  • '设备ID'将您连接的设备或AVD带到命令和应用程序,该命令和应用程序将具有您要安装的apk的本地路径。如果已经存在已撤销的应用程序,则会在启动时对其进行签名和安装,它将为您跳过此步骤。

        DesiredCapabilities caps = new DesiredCapabilities();
        caps.SetCapability("app-package", "com.myapp.test");
        caps.SetCapability("browserName", "");
        caps.SetCapability("device", "Android");
        caps.SetCapability("app-activity", "com.myapp.SplashActivity");
        caps.SetCapability("takesScreenshot", true);
        caps.SetCapability("version", "4.1.2");
        caps.SetCapability("device ID", "uniquedeviceid");
        caps.SetCapability("app", @"C:\path to\app\on\pc\app.apk");
    

按照您创建的功能创建一个远程Web驱动程序对象,传递您使用过的中心网址,例如http://localhost:4723/wd/hub和您创建的所需功能。

RemoteWebDriver driver = new RemoteWebDriver(new Uri("http://localhost:4723/wd/hub/"), caps);

此行使用Appium服务器的ip或主机开始侦听请求。 对我来说,这个步骤标志安装并启动附加设备上的应用程序,希望这对你也一样。 这是您编写的selenium测试连接到Appium服务器的地方。

现在使用创建的driver对象,您可以访问selenium rc命令,其中Appium已经为Android测试实现了许多替代方案。 在每个期间,您的Appium服务器控制台窗口都会显示是否存在任何问题。

输出将采用颜色编码,以帮助识别此窗口中的故障,但您可以按照自己的方式处理,并在需要时输出到文件。

多个设备的更新 我不确定使用多个设备,我会考虑selenium grid我之前尝试将2台设备添加到一台机器上,并且测试有一些混乱,即adb无法区分,无论设备ID是否与配置和命令相加。 Appium团队一直在改进为服务器添加网格功能,我建议您查看Appium Grid(链接已更新)

我为缺乏网格经验而道歉,以便进一步帮助您。

问候,Brian

答案 1 :(得分:3)

这似乎是迟到的回复,但我仍然认为这篇帖子可以帮助一些人,一步一步寻找指南在Windows平台上安装Appium

http://qaautomationworld.blogspot.in/2014/12/appium-setup-for-android-windows.html

此链接主要涉及以下部分

  1. JDK安装
  2. Android SDK安装路径设置
  3. Appium安装

    a)使用node.js

    b)使用Appium.exe

答案 2 :(得分:1)

这是appium android的env.rb文件。

 require 'rubygems'
require 'appium_lib'

# Start Android driver
apk = {
    device: :android,
    app_path: (true && ENV['apk']) || 'path to apk',
    app_package: (true && ENV['package']) || 'com.foo.cam',
    app_activity: (true && ENV['activity']) || '.SplashActivity',
    app_wait_activity: (true && ENV['activity']) || '.MainActivity',
}
Appium::Driver.new(apk).start_driver

Appium.promote_appium_methods Object

log = Logger.new(STDOUT)

case ENV['log']
  when 'WARN'
    log.level = Logger::WARN
  when 'DEBUG'
    log.level = Logger::DEBUG
  when 'INFO'
    log.level = Logger::INFO
  when 'ERROR'
    log.level = Logger::ERROR
  when 'FATAL'
    log.level = Logger::FATAL
  when 'UNKNOWN'
    log.level = Logger::UNKNOWN
  else
    log.level = Logger::DEBUG
end

log.debug('starting suite')

Before do
  @test_env = {
      device: driver,
      main_activity: (true && ENV['main_activity']) || 'grid.GridLoginActivity',
      logger: log
  }
end

# Optional--clears alerts 
After ('@rate_limit') do |scenario|
  log = @test_env[:logger]
  device = @test_env[:device]

  if scenario.failed?
    begin
      wait = Selenium::WebDriver::Wait.new :timeout => 1
      wait.until { device.alert_accept }
      log.debug('cleared rate limit dialog')
    rescue
      log.error("dialog didn't pop.")
    end
  end

  log.debug('rate_limit finished')
end

After ('@network_connection') do |scenario|
  log = @test_env[:logger]
  device = @test_env[:device]

  if scenario.failed?
    begin
      wait = Selenium::WebDriver::Wait.new :timeout => 1
      wait.until { device.alert_accept }
      log.debug('cleared network connection issue')
    rescue
      log.error("dialog didn't pop.")
    end
  end

  log.debug('network_connection finished')
end

答案 3 :(得分:0)

要先安装Appium,首先要安装所有下载必需的工具:

1)Android Studio

2)Java的Appium Jar文件

3)Java Selenium客户端插件

4)Appium服务器

5)Java SDK

下载所有这些工具后,请按照本博客中分步提及的步骤进行==> Installation Process of Appium in Android Studio

答案 4 :(得分:0)

在这里,我试图解释使用 Appium 配置和运行 Android 移动自动化测试用例的完整端到端设置说明

Download Java and set Java_Home in environmental variables

Download Android STUDIO from below link
https://developer.android.com/studio/index.html

Check Android installation path in Machine

Set Android_Home Environmental variables path to SDK location and include bin folder paths in PATH variable

Open Android Studio and configure Virtual device/Emulator
Open Emulator and check if it is working.
Download Node.js                                                                                                                        
https://nodejs.org/en/download/
Set Node_Home Environmental variables path
Set npm Environmental variables path

Download Appium Server from Node
Download Appium and Selenium Java client library

Install Eclipse – Create a Project in Eclipse - configure Appium libraries
Add All dependencies 

//You can download any node module only using npm


npm install – g appium –  Latest Stable release version 1.16.0 – Android 10+ version

npm uninstall -g appium // g stands for global

Appium – starts the server