Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Core library for the Ruby client

License

NotificationsYou must be signed in to change notification settings

appium/ruby_lib_core

Gem Version

Runs lint and unit testsFunctional Tests

This library is a Ruby client for Appium. The gem is available viaappium_lib_core.

This library wrapsselenium-webdriver and adapts WebDriver APIs for Appium.ruby_lib calls all of Appium/Selenium related APIs via this core library. It works instance based driver.

Documentation

Migration from v4 to v5

Please read[5.0.0] section inCHANGELOG

Related library

How to start

Run tests

Unit Tests

Run unit tests which check each method and command, URL, using the webmock.

$ bundle install$ bundleexec parallel_test test/unit/

or

$ bundle install$ bundleexec rake test:unit

Functional Tests

Run functional tests which require the Appium server and real device, Simulator/Emulator.

  • Start Appium server (Appium 2.0 base)
$ npm install --location=global appium$ appium driver install xcuitest$ appium driver install uiautomator2# etc$ appium --relaxed-security# To run all tests in local
  • Conduct tests
$ bundle install$ rake test:func:android# Andorid, uiautomator2$ APPIUM_DRIVER=espresso rake test:func:android# Andorid, uiautomator2$ rake test:func:ios# iOS

Real device for iOS

  • You should pre-installUICatalog in iOS with a particularbundleId
    • Set thebundleId instead ofapp intest/test_helper#ios
# Create derivedDataPath in "/tmp/#{org_id}" and reuse xctestrun in the directory$ REAL=true BUNDLE_ID='target-bundleid' WDA_BUNDLEID="ios.appium.WebDriverAgentRunner" ORG_ID=XXXXXXX rake test:func:ios# Run with xcconfig file. The template is in 'test/functional/ios/temp.xcconfig'# The PROVISIONING_PROFILE is in '~/Library/MobileDevice/Provisioning\ Profiles/'$ REAL=true XCODE_CONFIG_FILE='/path/to/xcconfig' ORG_ID=XXXXXXX rake test:func:ios

Run parallel tests with parallel_tests gem

Android

# Generate 3 emulators. Running 3 emulators require much machine power.# It requires an image which is for Google Play and x86 CPU architecture's image.$ bundle exec rake android:gen_device$ PARALLEL=1 bundle exec parallel_test test/functional/android -n 3
iOS
  • Create iPhone simulators namediPhone Xs Max- 8100 andiPhone Xs Max - 8101
  • Run iOS functional tests with below command
$ PARALLEL=1 bundle exec parallel_test test/functional/ios -n 2

CI

  • Runs on CI environment (on Azure)
    • NonIGNORE_VERSION_SKIP orIGNORE_VERSION_SKIP=true runs all tests ignoringskip them by Appium versions
    • IGNORE_VERSION_SKIP=false skips the following tests if the Appium version is lower than the requirement
$ IGNORE_VERSION_SKIP=true CI=true bundle exec rake test:func:android

Run a test case

  1. Launch the Appium server locally.
  2. Run the following script.
  • test.rb
    require'rubygems'require'appium_lib_core'opts={capabilities:{# Append capabilitiesplatformName:'ios',platformVersion:'11.0',deviceName:'iPhone Simulator',# app: '/path/to/MyiOS.app',  # Without 'app' capability, an appium session starts with the home screenautomationName:'XCUITest'},appium_lib:{wait:30}}@core=Appium::Core.for(opts)# create a core driver with `opts`@driver=@core.start_driver# Launch iPhone Simulator and `MyiOS.app`@driver.find_element(:accessibility_id,'some accessibility')# find an element
  • Run the script
    # shell 1$ appium --log-level warn:error# show only warning and error logs# shell 2$ ruby test.rb

Appium::Core.for documentation has more example to build a new driver instance.

More examples are intest/functional

As of version 5.8.0, the client can attach to an existing session. The main purpose is for debugging.

# @driver is the driver instance of an existing sessionattached_driver= ::Appium::Core::Driver.attach_to@driver.session_id,url:'http://127.0.0.1:4723',automation_name:'XCUITest',platform_name:'ios'assertattached_driver.session_id ==@driver.session_idattached_driver.page_source

Capabilities

ReadAppium/Core/Driver to catch up with available capabilities.Capabilities affect only ruby_lib isAppium/Core/Options.

Gives custom listener

An example to define a customer listener withSelenium::WebDriver::Support::AbstractEventListener

classCustomListener < ::Selenium::WebDriver::Support::AbstractEventListener//somethingendcapabilities:{platformName::ios,platformVersion:'11.0',deviceName:'iPhone Simulator',automationName:'XCUITest',app:'/path/to/MyiOS.app'},appium_lib:{listener:CustomListener.new}@core=Appium::Core.forcapabilities:capabilities,appium_lib:appium_lib@core.start_driver

Development

Release

Useappium_thor to release this gem.

$ thor bump# bumpy,$ thor release

Contribution

  1. Fork it (https://github.com/appium/ruby_lib_core/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

License

Apache License v2

About

Core library for the Ruby client

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages


[8]ページ先頭

©2009-2025 Movatter.jp