18

我在测试中担任 SD。我是 Appium 自动化工具的新手,这个工具对我来说设置环境非常棘手。

我参考了以下链接:http ://unmesh.me/category/appium/

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

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

mani-kandans-MacBook-Pro:platform-tools manikandan$ info: Welcome to Appium v0.8.2 (REV e9cc66197ad6a3496322bd77a8699509fc761b69)
info: Appium REST http interface listener started on 0.0.0.0:4723
   info  - socket.io started

在这之后我没有任何想法。如何编写测试用例并通过 Appium 运行?

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

  1. 如何安装 Appium?
  2. 如何通过 Appium 工具运行测试用例?
4

5 回答 5

16

第一部分:-。您似乎已经使用 node 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 用于 Python、Java 或 c# 或任何您选择的语言。我使用了 c# 并且可以提供示例,这应该与您的测试类似。

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

  • 'app-package' 这是应用程序包名称,例如 com.myapp.main,
  • 'app-activity' 这是要调用的应用程序主要活动,它也将启动应用程序。这通常是一个飞溅活动或主要活动,
  • 'wait-activity' 是 Appium 启动后将检查的活动,这将是应用程序活动,但对我来说,如果对于某些测试,启动新活动而不是调用新活动是不同的,
  • 'version' 取 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 驱动程序对象,传递您使用的集线器 url,例如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 网格我之前尝试将 2 个设备添加到一台机器和测试有混淆,无论设备 ID 添加到配置和命令中,adb 都无法区分. Appium 团队一直在改进向服务器添加网格功能,我建议您查看Appium Grid(链接已更新)

对于我缺乏网格经验来进一步帮助您,我深表歉意。

问候,布赖恩

于 2013-08-01T16:28:51.340 回答
4

似乎回复晚了,但我仍然认为这篇文章可以帮助一些正在寻找逐步指南在 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

于 2014-12-16T06:53:55.417 回答
1

Here's my env.rb file for appium android.

 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
于 2013-09-26T21:20:01.287 回答
0

首先安装 Appium 下载所需的工具:

  1. 安卓工作室
  2. Java的Appium Jar文件
  3. Java Selenium 客户端插件
  4. Appium 服务器
  5. Java SDK

下载所有这些工具后,请按照此博客中提到的分步过程进行操作:

Android Studio中Appium的安装流程

于 2019-03-26T17:39:31.120 回答
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
于 2021-05-07T18:18:39.807 回答