itms_automation 2.6.7 → 2.6.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (34) hide show
  1. checksums.yaml +4 -4
  2. data/doc/installation.md +1 -1
  3. data/features-skeleton/my_first.feature +19 -10
  4. data/features-skeleton/step_definitions/input_steps.rb +3 -3
  5. data/features-skeleton/step_definitions/my_first_steps.rb +14 -0
  6. data/features-skeleton/step_definitions/repositories/project_object.yml +1 -1
  7. data/features-skeleton/support/env.rb +29 -101
  8. data/lib/itms_automation/input_steps.rb +1 -1
  9. data/lib/itms_automation/methods/misc_methods.rb +0 -1
  10. data/lib/itms_automation/version.rb +1 -1
  11. metadata +17 -39
  12. data/example/android/android_app/android_app_calculator.zip +0 -0
  13. data/example/android/android_app/android_app_calculator/AndroidCalculator.apk +0 -0
  14. data/example/android/android_app/android_app_calculator/features/calculator.feature +0 -36
  15. data/example/android/android_app/android_app_calculator/features/my_first.feature +0 -13
  16. data/example/android/android_app/android_app_calculator/features/screenshots/test.png +0 -0
  17. data/example/android/android_app/android_app_calculator/features/step_definitions/custom_steps.rb +0 -5
  18. data/example/android/android_app/android_app_calculator/features/support/env.rb +0 -52
  19. data/example/android/android_app/android_app_calculator/features/support/hooks.rb +0 -26
  20. data/example/android/android_web/android_web_gmail_login.zip +0 -0
  21. data/example/android/android_web/android_web_gmail_login/features/gmail_login.feature +0 -12
  22. data/example/android/android_web/android_web_gmail_login/features/my_first.feature +0 -1
  23. data/example/android/android_web/android_web_gmail_login/features/screenshots/test.png +0 -0
  24. data/example/android/android_web/android_web_gmail_login/features/step_definitions/custom_steps.rb +0 -5
  25. data/example/android/android_web/android_web_gmail_login/features/support/env.rb +0 -51
  26. data/example/android/android_web/android_web_gmail_login/features/support/hooks.rb +0 -27
  27. data/example/desktop web/desktop_web_gmail_login.zip +0 -0
  28. data/example/desktop web/desktop_web_gmail_login/features/gmail_login.feature +0 -9
  29. data/example/desktop web/desktop_web_gmail_login/features/gmail_multi_login.feature +0 -21
  30. data/example/desktop web/desktop_web_gmail_login/features/my_first.feature +0 -1
  31. data/example/desktop web/desktop_web_gmail_login/features/screenshots/test.png +0 -0
  32. data/example/desktop web/desktop_web_gmail_login/features/step_definitions/custom_steps.rb +0 -5
  33. data/example/desktop web/desktop_web_gmail_login/features/support/env.rb +0 -106
  34. data/example/desktop web/desktop_web_gmail_login/features/support/hooks.rb +0 -38
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d444bed9e0cfd7a8c172326b6fb3ec89e6c7b1e35caa8937dbb08d5e2c642bbc
4
- data.tar.gz: 0c744a217e2790acf13691eaf2d219172863e110b2a81877feb59b8b17903714
3
+ metadata.gz: 152915e55093128d7fc658318c8b62d5125cd56933a7a99153aa1db6417212cc
4
+ data.tar.gz: dc2329818b77297eb021962d60e03b14134375d46b281cf2c153b5003c0e52df
5
5
  SHA512:
6
- metadata.gz: a6620750cdedf9b304e4ea53ebda419b5ac383f6999261b9c7acee0d44921d50a3e1ddc31b841aa4b54abf2860b1bbdb3bfb2aa5b6d39ec989bfd2eee8024cbc
7
- data.tar.gz: c7673be15169b7371e41bcb15572f042b2a70a4aa1732fdd776fd1f49c7ff1aa8608fd18cce5eb74b654f2a152580e06913625165170fbdc93906a994f269c73
6
+ metadata.gz: 95685084ff2886f18defefdadb15212eca6a1ac1679982f122d706f0ead93a581838046dd70935c616e5fe52082d80b2af41f8d1bccb1b7ef44eac297f1077ed
7
+ data.tar.gz: 5e0d573679aafffa4a59e3a30821dc5915c90ef965cff47e1c756b287ca5ff664cefb9ba3cc8d12253ccb3359ee37ab263403936938157125094d6d7a40794d3
@@ -2,7 +2,7 @@ Installation
2
2
  ============
3
3
  ### Prerequisites
4
4
  You need to have Ruby installed.
5
- Verify your installation by running ruby -v in a terminal - it should print "ruby 1.9.3" (or higher).
5
+ Verify your installation by running ruby -v in a terminal - it should print "ruby 2.0.0" (or higher).
6
6
 
7
7
  You need to have DevKit installed.
8
8
 
@@ -1,10 +1,19 @@
1
- # Feature: Addition
2
- # As a math idiot
3
- # In order to not feel silly
4
- # I add two numbers
5
-
6
- # Scenario: Adding a and b
7
- # Given I have variable a
8
- # And I have variable b
9
- # When I add a and b
10
- # Then I display the sum
1
+ # Feature: Login Functionality
2
+ # In order to ensure login functionality works,
3
+ # I want to run the cucumber test to verify it is working
4
+
5
+ # Background:
6
+ # Given the login page is opened successfully
7
+
8
+ # Scenario: Login Valid
9
+ # When user input username "tomsmith" and password "SuperSecretPassword!"
10
+ # Then the message "You logged into a secure area!×" should be displayed
11
+
12
+ # Scenario Outline: Login Invalid
13
+ # When user input username "<username>" and password "<password>"
14
+ # Then the message "<messsage>" should be displayed
15
+
16
+ # Examples:
17
+ # | username | password | messsage |
18
+ # | anhpham | SuperSecretPassword! | Your username is invalid!× |
19
+ # | tomsmith | wrong_password | Your password is invalid!× |
@@ -4,12 +4,12 @@
4
4
 
5
5
  # # enter text into input field steps
6
6
  # Then(/^I enter "([^\"]*)" into element "(.*?)"$/) do |text, element|
7
- # enter_text(type, element)
7
+ # enter_text(element, text)
8
8
  # end
9
9
 
10
10
  # # clear input field steps
11
- # Then(/^I clear input element "(.*?)"$/) do |type, element|
12
- # clear_text(type, element)
11
+ # Then(/^I clear input element "(.*?)"$/) do |element|
12
+ # clear_text(element)
13
13
  # end
14
14
 
15
15
  # # select option by text/value from dropdown/multiselect
@@ -0,0 +1,14 @@
1
+ # Given('the login page is opened successfully') do
2
+ # $driver.get("http://the-internet.herokuapp.com/login")
3
+ # end
4
+
5
+ # When('user input username {string} and password {string}') do |string, string2|
6
+ # $driver.find_element(:id, 'username').send_keys(string)
7
+ # $driver.find_element(:id, 'password').send_keys(string2)
8
+ # $driver.find_element(:css, '[class="fa fa-2x fa-sign-in"]').click
9
+ # end
10
+
11
+ # Then('the message {string} should be displayed') do |string|
12
+ # message = $driver.find_element(:css, '#flash').text.delete("\n")
13
+ # expect(message).to eql(string)
14
+ # end
@@ -1 +1 @@
1
- button: { id: 'submit' }
1
+ test_object: {id: 'username'}
@@ -1,110 +1,38 @@
1
1
  require "rubygems"
2
2
  require "itms_automation"
3
3
  require "httparty"
4
- require "cucumber"
5
4
  require "report_builder"
6
- require "selenium-webdriver"
5
+ require "webdrivers"
7
6
 
8
7
  $browser_type = ENV["BROWSER"] || "firefox"
9
- $platform = ENV["PLATFORM"] || "desktop"
10
- $os_version = ENV["OS_VERSION"]
11
- $device_name = ENV["DEVICE_NAME"]
12
- $udid = ENV["UDID"]
13
- $app_path = ENV["APP_PATH"]
14
8
 
15
- # check for valid parameters
16
- validate_parameters $platform, $browser_type, $app_path
17
-
18
- # If platform is android or ios create driver instance for mobile browser
19
- if $platform == "android" or $platform == "iOS"
20
- if $browser_type == "native"
21
- $browser_type = "Browser"
22
- end
23
-
24
- if $platform == "android"
25
- $device_name, $os_version = get_device_info
26
- end
27
-
28
- # desired_caps = {
29
- # caps: {
30
- # platformName: $platform,
31
- # browserName: $browser_type,
32
- # versionNumber: $os_version,
33
- # deviceName: $device_name,
34
- # udid: $udid,
35
- # app: ".//#{$app_path}"
36
- # }
37
- # }
38
- # appium_url = 'http://localhost:4723/wd/hub'
39
- # opts = {
40
- # desired_capabilities: { # or { caps: {....} }
41
- # platformName: :android,
42
- # deviceName: 'Android Simulator',
43
- # app: "WikipediaSample.apk"
44
- # },
45
- # appium_lib: {
46
- # wait: 30
47
- # }
48
- # }
49
-
50
- opts = {
51
- desired_capabilities: { # or { caps: {....} }
52
- platformName: $platform,
53
- browserName: $browser_type,
54
- deviceName: $device_name,
55
- versionNumber: $os_version,
56
- app: "WikipediaSample.apk",
57
- },
58
- appium_lib: {
59
- wait: 30,
60
- },
61
- }
62
-
63
- begin
64
- # $driver = Appium::Driver.new(desired_caps, url: appium_url).start_driver
65
-
66
- # $driver = Selenium::WebDriver.for(:remote, :url => appium_url, :desired_capabilities => desired_caps)
67
- @core = Appium::Core.for(opts) # create a core driver with `opts`
68
- $driver = @core.start_driver
69
- rescue Exception => e
70
- puts e.message
71
- Process.exit(0)
72
- end
73
- else # else create driver instance for desktop browser
74
- begin
75
- $driver = case $browser_type
76
- when "chrome"
77
- Selenium::WebDriver.for(:chrome)
78
- when "safari"
79
- Selenium::WebDriver.for(:safari)
80
- when "internet_explorer"
81
- Selenium::WebDriver.for(:internet_explorer)
82
- when "chrome_headless"
83
- Selenium::WebDriver.for(:chrome, :desired_capabilities => Selenium::WebDriver::Remote::Capabilities.chrome(chromeOptions: { args: %w(headless) }))
84
- when "remote"
85
- if ENV["SERVER_URL"].nil? || ENV["REMOTE_BROWSER"].nil?
86
- puts "\nMissing SERVER_URL : SERVER_URL=http://SERVER_URL:4444/wd/hub"
87
- puts "\nMissing REMOTE_BROWSER: REMOTE_BROWSER=browser_name"
88
- Process.exit(0)
89
- else
90
- if ENV['SERVER_URL'].nil? || ENV['REMOTE_BROWSER'].nil?
91
- puts "\nMissing SERVER_URL : SERVER_URL=http//SERVER_URL:4444/wd/hub"
92
- puts "\nMissing REMOTE_BROWSER: REMOTE_BROWSER=browser_name"
93
- Process.exit(0)
94
- else
95
- caps = Selenium::WebDriver::Remote::Capabilities.new
96
- caps["browserName"] = ENV["REMOTE_BROWSER"]
97
- caps["enableVNC"] = true
98
- caps["enableVideo"] = true
99
- caps["resolution"] = ENV["resolution"] unless ENV["resolution"]
100
- Selenium::WebDriver.for(:remote, :url => ENV["SERVER_URL"], :desired_capabilities => caps)
101
- end
9
+ begin
10
+ $driver = case $browser_type
11
+ when "chrome"
12
+ Selenium::WebDriver.for(:chrome)
13
+ when "safari"
14
+ Selenium::WebDriver.for(:safari)
15
+ when "internet_explorer"
16
+ Selenium::WebDriver.for(:internet_explorer)
17
+ when "chrome_headless"
18
+ Selenium::WebDriver.for(:chrome, :desired_capabilities => Selenium::WebDriver::Remote::Capabilities.chrome(chromeOptions: { args: %w(headless) }))
19
+ when "remote"
20
+ if ENV['SERVER_URL'].nil? || ENV['REMOTE_BROWSER'].nil?
21
+ puts "\nMissing SERVER_URL : SERVER_URL=http//SERVER_URL:4444/wd/hub"
22
+ puts "\nMissing REMOTE_BROWSER: REMOTE_BROWSER=browser_name"
23
+ Process.exit(0)
102
24
  else
103
- Selenium::WebDriver.for(:firefox)
104
- end
105
- $driver.manage().window().maximize()
106
- rescue Exception => e
107
- puts e.message
108
- Process.exit(0)
25
+ caps = Selenium::WebDriver::Remote::Capabilities.new
26
+ caps["browserName"] = ENV["REMOTE_BROWSER"]
27
+ caps["enableVNC"] = false
28
+ caps["enableVideo"] = false
29
+ caps["resolution"] = ENV["resolution"] unless ENV["resolution"]
30
+ Selenium::WebDriver.for(:remote, :url => ENV["SERVER_URL"], :desired_capabilities => caps)
31
+ end
32
+ else
33
+ Selenium::WebDriver.for(:firefox)
109
34
  end
110
- end
35
+ rescue Exception => e
36
+ puts e.message
37
+ Process.exit(0)
38
+ end
@@ -3,7 +3,7 @@
3
3
 
4
4
  # # enter text into input field steps
5
5
  # Then(/^I enter "([^\"]*)" into element "(.*?)"$/) do |text, element|
6
- # enter_text(type, element)
6
+ # enter_text(element, text)
7
7
  # end
8
8
 
9
9
  # # clear input field steps
@@ -13,7 +13,6 @@ def valid_locator_type? type
13
13
  end
14
14
 
15
15
  def validate_locator type
16
- puts "validate_locator:::#{type}"
17
16
  raise "Invalid locator type - #{type}" unless valid_locator_type? type
18
17
  end
19
18
 
@@ -1,5 +1,5 @@
1
1
  module ITMS
2
2
  module Automation
3
- VERSION = '2.6.7'
3
+ VERSION = '2.6.8'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: itms_automation
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.6.7
4
+ version: 2.6.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - INFOdation
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-10-21 00:00:00.000000000 Z
11
+ date: 2021-01-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cucumber
@@ -16,40 +16,40 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 3.1.2
19
+ version: 5.2.0
20
20
  - - "~>"
21
21
  - !ruby/object:Gem::Version
22
- version: 3.1.2
22
+ version: 5.2.0
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: 3.1.2
29
+ version: 5.2.0
30
30
  - - "~>"
31
31
  - !ruby/object:Gem::Version
32
- version: 3.1.2
32
+ version: 5.2.0
33
33
  - !ruby/object:Gem::Dependency
34
- name: selenium-webdriver
34
+ name: webdrivers
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
- - - "~>"
38
- - !ruby/object:Gem::Version
39
- version: '3.14'
40
37
  - - ">="
41
38
  - !ruby/object:Gem::Version
42
- version: 3.14.1
39
+ version: 4.4.1
40
+ - - "~>"
41
+ - !ruby/object:Gem::Version
42
+ version: 4.4.1
43
43
  type: :runtime
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
46
46
  requirements:
47
- - - "~>"
48
- - !ruby/object:Gem::Version
49
- version: '3.14'
50
47
  - - ">="
51
48
  - !ruby/object:Gem::Version
52
- version: 3.14.1
49
+ version: 4.4.1
50
+ - - "~>"
51
+ - !ruby/object:Gem::Version
52
+ version: 4.4.1
53
53
  - !ruby/object:Gem::Dependency
54
54
  name: appium_lib_core
55
55
  requirement: !ruby/object:Gem::Requirement
@@ -124,29 +124,6 @@ files:
124
124
  - doc/installation.md
125
125
  - doc/itms-automation-API.md
126
126
  - doc/itms-automation-help.md
127
- - example/android/android_app/android_app_calculator.zip
128
- - example/android/android_app/android_app_calculator/AndroidCalculator.apk
129
- - example/android/android_app/android_app_calculator/features/calculator.feature
130
- - example/android/android_app/android_app_calculator/features/my_first.feature
131
- - example/android/android_app/android_app_calculator/features/screenshots/test.png
132
- - example/android/android_app/android_app_calculator/features/step_definitions/custom_steps.rb
133
- - example/android/android_app/android_app_calculator/features/support/env.rb
134
- - example/android/android_app/android_app_calculator/features/support/hooks.rb
135
- - example/android/android_web/android_web_gmail_login.zip
136
- - example/android/android_web/android_web_gmail_login/features/gmail_login.feature
137
- - example/android/android_web/android_web_gmail_login/features/my_first.feature
138
- - example/android/android_web/android_web_gmail_login/features/screenshots/test.png
139
- - example/android/android_web/android_web_gmail_login/features/step_definitions/custom_steps.rb
140
- - example/android/android_web/android_web_gmail_login/features/support/env.rb
141
- - example/android/android_web/android_web_gmail_login/features/support/hooks.rb
142
- - example/desktop web/desktop_web_gmail_login.zip
143
- - example/desktop web/desktop_web_gmail_login/features/gmail_login.feature
144
- - example/desktop web/desktop_web_gmail_login/features/gmail_multi_login.feature
145
- - example/desktop web/desktop_web_gmail_login/features/my_first.feature
146
- - example/desktop web/desktop_web_gmail_login/features/screenshots/test.png
147
- - example/desktop web/desktop_web_gmail_login/features/step_definitions/custom_steps.rb
148
- - example/desktop web/desktop_web_gmail_login/features/support/env.rb
149
- - example/desktop web/desktop_web_gmail_login/features/support/hooks.rb
150
127
  - features-skeleton/Gemfile
151
128
  - features-skeleton/Gemfile.lock
152
129
  - features-skeleton/README.md
@@ -158,6 +135,7 @@ files:
158
135
  - features-skeleton/step_definitions/configuration_steps.rb
159
136
  - features-skeleton/step_definitions/input_steps.rb
160
137
  - features-skeleton/step_definitions/javascript_handling_steps.rb
138
+ - features-skeleton/step_definitions/my_first_steps.rb
161
139
  - features-skeleton/step_definitions/navigation_steps.rb
162
140
  - features-skeleton/step_definitions/progress_steps.rb
163
141
  - features-skeleton/step_definitions/repositories/project_object.yml
@@ -196,7 +174,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
196
174
  requirements:
197
175
  - - ">="
198
176
  - !ruby/object:Gem::Version
199
- version: 1.9.3
177
+ version: 2.0.0
200
178
  required_rubygems_version: !ruby/object:Gem::Requirement
201
179
  requirements:
202
180
  - - ">="
@@ -1,36 +0,0 @@
1
- Feature: Verify Calculator functionalities
2
-
3
- Scenario: Click on OK button
4
- Then I click on element having id "com.android2.calculator3:id/cling_dismiss"
5
-
6
- Scenario: Addirion
7
- Then I click on element having id "com.android2.calculator3:id/digit5"
8
- Then I click on element having id "com.android2.calculator3:id/plus"
9
- Then I click on element having id "com.android2.calculator3:id/digit9"
10
- When I click on element having id "com.android2.calculator3:id/equal"
11
- Then element having xpath "//android.widget.EditText[@index=0]" should have text as "14"
12
-
13
-
14
- Scenario: Substraction
15
- Then I click on element having id "com.android2.calculator3:id/digit9"
16
- Then I click on element having id "com.android2.calculator3:id/minus"
17
- Then I click on element having id "com.android2.calculator3:id/digit5"
18
- When I click on element having id "com.android2.calculator3:id/equal"
19
- Then element having xpath "//android.widget.EditText[@index=0]" should have text as "4"
20
-
21
- Scenario: Multiplication
22
- Then I click on element having id "com.android2.calculator3:id/digit9"
23
- Then I click on element having id "com.android2.calculator3:id/mul"
24
- Then I click on element having id "com.android2.calculator3:id/digit5"
25
- When I click on element having id "com.android2.calculator3:id/equal"
26
- Then element having xpath "//android.widget.EditText[@index=0]" should have text as "45"
27
-
28
- Scenario: Division
29
- Then I click on element having id "com.android2.calculator3:id/digit8"
30
- Then I click on element having id "com.android2.calculator3:id/div"
31
- Then I click on element having id "com.android2.calculator3:id/digit2"
32
- When I click on element having id "com.android2.calculator3:id/equal"
33
- Then element having xpath "//android.widget.EditText[@index=0]" should have text as "4"
34
-
35
- Scenario: Clear output
36
- Then I click on element having id "com.android2.calculator3:id/clear"
@@ -1,13 +0,0 @@
1
- #Scenario: Division
2
- # Then I click on element having id "com.android2.calculator3:id/digit8"
3
- # Then I click on element having id "com.android2.calculator3:id/div"
4
- # Then I click on element having id "com.android2.calculator3:id/digit4"
5
- # When I click on element having id "com.android2.calculator3:id/equal"
6
- # Then element having xpath "//android.widget.EditText[@index=0]" should have text as "2"
7
-
8
- # Scenario: Multiplication
9
- # Then I click on element having id "com.android2.calculator3:id/digit6"
10
- # Then I click on element having id "com.android2.calculator3:id/mul"
11
- # Then I click on element having id "com.android2.calculator3:id/digit5"
12
- # When I click on element having id "com.android2.calculator3:id/equal"
13
- # Then element having xpath "//android.widget.EditText[@index=0]" should have text as "30"
@@ -1,5 +0,0 @@
1
- require 'itms_automation'
2
-
3
- # Do Not Remove This File
4
- # Add your custom steps here
5
- # $driver is instance of webdriver use this instance to write your custom code
@@ -1,52 +0,0 @@
1
- require 'rubygems'
2
- require 'itms_automation'
3
-
4
- # Store command line arguments
5
- $browser_type = ENV['BROWSER'] || 'ff'
6
- $platform = ENV['PLATFORM'] || 'desktop'
7
- $os_version = ENV['OS_VERSION']
8
- $device_name = ENV['DEVICE_NAME']
9
- $udid = ENV['UDID']
10
- $app_path = ENV['APP_PATH']
11
-
12
- # check for valid parameters
13
- validate_parameters $platform, $browser_type, $app_path
14
-
15
- # If platform is android or ios create driver instance for mobile browser
16
- if $platform == 'android' or $platform == 'iOS'
17
-
18
- if $browser_type == 'native'
19
- $browser_type = "Browser"
20
- end
21
-
22
- if $platform == 'android'
23
- $device_name, $os_version = get_device_info
24
- end
25
-
26
- desired_caps = {
27
- caps: {
28
- platformName: $platform,
29
- browserName: $browser_type,
30
- versionNumber: $os_version,
31
- deviceName: $device_name,
32
- udid: $udid,
33
- app: ".//#{$app_path}"
34
- },
35
- appium_lib: { server_url: 'http://localhost:4723/wd/hub' }
36
- }
37
-
38
- begin
39
- $driver = Appium::Driver.new(desired_caps).start_driver
40
- rescue Exception => e
41
- puts e.message
42
- Process.exit(0)
43
- end
44
- else # else create driver instance for desktop browser
45
- begin
46
- $driver = Selenium::WebDriver.for(:"#{$browser_type}")
47
- $driver.manage().window().maximize()
48
- rescue Exception => e
49
- puts e.message
50
- Process.exit(0)
51
- end
52
- end
@@ -1,26 +0,0 @@
1
- #Cucumber provides a number of hooks which allow us to run blocks at various points in the Cucumber test cycle
2
-
3
- Before do
4
- # Do something before each scenario.
5
- end
6
-
7
- Before do |scenario|
8
- # The +scenario+ argument is optional, but if you use it, you can get the title,
9
- # description, or name (title + description) of the scenario that is about to be
10
- # executed.
11
- end
12
-
13
- After do
14
- # Do something after each scenario.
15
- end
16
-
17
- After do |scenario|
18
- # Do something after each scenario.
19
- # The +scenario+ argument is optional, but
20
- # if you use it, you can inspect status with
21
- # the #failed?, #passed? and #exception methods.
22
-
23
- if(scenario.failed?)
24
- #Do something if scenario fails.
25
- end
26
- end
@@ -1,12 +0,0 @@
1
- Feature: Gmail Login mobile web
2
-
3
- Scenario: valid credentials login
4
- Given I navigate to "http://www.gmail.com"
5
- Then I wait for 5 sec
6
- Then I enter "your_email" into input field having id "Email"
7
- Then I enter "your_password" into input field having id "Passwd"
8
- When I click on element having id "signIn"
9
- And I wait for 10 sec
10
- Then element having xpath "//*[@id='tltbt']/div[3]/div/div" should be present
11
- And I wait for 5 sec
12
- Then I close browser
@@ -1,5 +0,0 @@
1
- require 'itms_automation'
2
-
3
- # Do Not Remove This File
4
- # Add your custom steps here
5
- # $driver is instance of webdriver use this instance to write your custom code
@@ -1,51 +0,0 @@
1
- require 'rubygems'
2
- require 'itms_automation'
3
-
4
- # Store command line arguments
5
- $browser_type = ENV['BROWSER'] || 'ff'
6
- $platform = ENV['PLATFORM'] || 'desktop'
7
- $os_version = ENV['OS_VERSION']
8
- $device_name = ENV['DEVICE_NAME']
9
- $udid = ENV['UDID']
10
- $app_path = ENV['APP_PATH']
11
-
12
- # check for valid parameters
13
- validate_parameters $platform, $browser_type, $app_path
14
-
15
- # If platform is android or ios create driver instance for mobile browser
16
- if $platform == 'android' or $platform == 'iOS'
17
-
18
- if $browser_type == 'native'
19
- $browser_type = "Browser"
20
- end
21
-
22
- if $platform == 'android'
23
- $device_name, $os_version = get_device_info
24
- end
25
-
26
- desired_caps = {
27
- caps: {
28
- platformName: $platform,
29
- browserName: $browser_type,
30
- versionNumber: $os_version,
31
- deviceName: $device_name,
32
- udid: $udid,
33
- app: ".//#{$app_path}"
34
- },
35
- }
36
-
37
- begin
38
- $driver = Appium::Driver.new(desired_caps).start_driver
39
- rescue Exception => e
40
- puts e.message
41
- Process.exit(0)
42
- end
43
- else # else create driver instance for desktop browser
44
- begin
45
- $driver = Selenium::WebDriver.for(:"#{$browser_type}")
46
- $driver.manage().window().maximize()
47
- rescue Exception => e
48
- puts e.message
49
- Process.exit(0)
50
- end
51
- end
@@ -1,27 +0,0 @@
1
- #Cucumber provides a number of hooks which allow us to run blocks at various points in the Cucumber test cycle
2
-
3
- Before do
4
- # Do something before each scenario.
5
- end
6
-
7
- Before do |scenario|
8
- # The +scenario+ argument is optional, but if you use it, you can get the title,
9
- # description, or name (title + description) of the scenario that is about to be
10
- # executed.
11
- end
12
-
13
- After do
14
- # Do something after each scenario.
15
- end
16
-
17
- After do |scenario|
18
- # Do something after each scenario.
19
- # The +scenario+ argument is optional, but
20
- # if you use it, you can inspect status with
21
- # the #failed?, #passed? and #exception methods.
22
-
23
- if(scenario.failed?)
24
- #Do something if scenario fails.
25
- end
26
- end
27
-
@@ -1,9 +0,0 @@
1
- Feature: Gmail_login
2
-
3
- Scenario: Valid_gmail_login
4
- Given I navigate to "http://www.gmail.com"
5
- And I enter "abc@gmail.com" into input field having id "Email"
6
- And I enter "!password*" into input field having id "Passwd"
7
- When I click on element having id "signIn"
8
- And I wait for 10 sec
9
- Then I close browser
@@ -1,21 +0,0 @@
1
- Feature: Gmail_login
2
-
3
- Scenario: Open gmail
4
- Given I navigate to "http://www.gmail.com"
5
-
6
- Scenario Outline: In-valid Login
7
- Then I clear input field having id "Email"
8
- And I enter <username> into input field having id "Email"
9
- Then I clear input field having id "Passwd"
10
- And I enter <password> into input field having id "Passwd"
11
- When I click on element having id "signIn"
12
- Then element having id "errormsg_0_Passwd" should be present
13
-
14
- Examples:
15
- | username | password |
16
- |"test1" |"password1" |
17
- |"test2" |"password2" |
18
- |"test3" |"password3" |
19
-
20
- Scenario: close gmail
21
- Then I close browser
@@ -1,5 +0,0 @@
1
- require 'itms_automation'
2
-
3
- # Do Not Remove This File
4
- # Add your custom steps here
5
- # $driver is instance of webdriver use this instance to write your custom code
@@ -1,106 +0,0 @@
1
- require 'rubygems'
2
- # require 'itms_automation'
3
- require_relative '../../../lib/itms_automation.rb'
4
- # require 'appium_lib'
5
- require 'appium_lib_core'
6
- # Store command line arguments
7
- $browser_type = ENV['BROWSER'] || 'firefox'
8
- $platform = ENV['PLATFORM'] || 'desktop'
9
- $os_version = ENV['OS_VERSION']
10
- $device_name = ENV['DEVICE_NAME']
11
- $udid = ENV['UDID']
12
- $app_path = ENV['APP_PATH']
13
-
14
- # check for valid parameters
15
- validate_parameters $platform, $browser_type, $app_path
16
-
17
- # If platform is android or ios create driver instance for mobile browser
18
- if $platform == 'android' or $platform == 'iOS'
19
-
20
- if $browser_type == 'native'
21
- $browser_type = "Browser"
22
- end
23
-
24
- if $platform == 'android'
25
- $device_name, $os_version = get_device_info
26
- end
27
-
28
- # desired_caps = {
29
- # caps: {
30
- # platformName: $platform,
31
- # browserName: $browser_type,
32
- # versionNumber: $os_version,
33
- # deviceName: $device_name,
34
- # udid: $udid,
35
- # app: ".//#{$app_path}"
36
- # }
37
- # }
38
- # appium_url = 'http://localhost:4723/wd/hub'
39
- # opts = {
40
- # desired_capabilities: { # or { caps: {....} }
41
- # platformName: :android,
42
- # deviceName: 'Android Simulator',
43
- # app: "WikipediaSample.apk"
44
- # },
45
- # appium_lib: {
46
- # wait: 30
47
- # }
48
- # }
49
-
50
- opts = {
51
- desired_capabilities: { # or { caps: {....} }
52
- platformName: $platform,
53
- browserName: $browser_type,
54
- deviceName: $device_name,
55
- versionNumber: $os_version,
56
- app: "WikipediaSample.apk"
57
- },
58
- appium_lib: {
59
- wait: 30
60
- }
61
- }
62
-
63
- begin
64
- # $driver = Appium::Driver.new(desired_caps, url: appium_url).start_driver
65
-
66
- # $driver = Selenium::WebDriver.for(:remote, :url => appium_url, :desired_capabilities => desired_caps)
67
- @core = Appium::Core.for(opts) # create a core driver with `opts`
68
- $driver = @core.start_driver
69
-
70
- rescue Exception => e
71
- puts e.message
72
- Process.exit(0)
73
- end
74
- else # else create driver instance for desktop browser
75
- begin
76
- $driver = case $browser_type
77
- when "chrome"
78
- Selenium::WebDriver.for(:chrome)
79
- when "safari"
80
- Selenium::WebDriver.for(:safari)
81
- when "internet_explorer"
82
- Selenium::WebDriver.for(:internet_explorer)
83
- when "chrome_headless"
84
- Selenium::WebDriver.for(:chrome, :desired_capabilities => Selenium::WebDriver::Remote::Capabilities.chrome(chromeOptions: { args: %w(headless) }))
85
- when "remote"
86
- if ENV['SERVER_URL'].nil? || ENV['REMOTE_BROWSER'].nil?
87
- puts "\nMissing SERVER_URL : SERVER_URL=http//SERVER_URL:4444/wd/hub"
88
- puts "\nMissing REMOTE_BROWSER: REMOTE_BROWSER=browser_name"
89
- Process.exit(0)
90
- else
91
- caps = Selenium::WebDriver::Remote::Capabilities.new
92
- caps["browserName"] = ENV['REMOTE_BROWSER']
93
- Selenium::WebDriver.for(:remote, :url => ENV['SERVER_URL'], :desired_capabilities => caps)
94
- end
95
-
96
- else
97
- Selenium::WebDriver.for(:firefox)
98
- end
99
- $driver.manage().window().maximize()
100
- p "session_id: #{$driver.session_id}"
101
- rescue Exception => e
102
- puts e.message
103
- Process.exit(0)
104
- end
105
- end
106
-
@@ -1,38 +0,0 @@
1
- def validate_params_exist
2
- raise "❌ ERROR: Missing param SERVER_URL." if ENV['SERVER_URL'].nil?
3
- raise "❌ ERROR: Missing param BROWSER." if ENV['BROWSER'].nil?
4
- if ENV['REPORT']
5
- raise "❌ ERROR: Missing param TESTSUITE." if ENV['TESTSUITE'].nil?
6
- raise "❌ ERROR: Missing param TESTCASE_REPORT_NAME." if ENV['TESTCASE_REPORT_NAME'].nil?
7
- $report_path = "Reports/#{ENV['TESTSUITE']}"
8
- $testcase_report_name = ENV['TESTCASE_REPORT_NAME']
9
- end
10
- end
11
-
12
- at_exit do
13
- # quite driver
14
- $driver.close()
15
- if ENV['REPORT']
16
- begin
17
- # validateReport
18
- time = Time.now.getutc
19
- ReportBuilder.configure do |config|
20
- config.report_path = "#{$report_path}/#{$testcase_report_name}"
21
- config.input_path = "#{$report_path}/#{$testcase_report_name}.json"
22
- config.report_types = [:json, :html]
23
- config.color = 'blue'
24
- config.additional_info = {
25
- 'Browser' => $browser_type,
26
- 'Platform' => $platform ,
27
- 'OS Version' => $os_version,
28
- 'Report Generated' => time
29
- }
30
- end
31
- options = { report_title: "INFODation - Test Management System" }
32
- ReportBuilder.build_report options
33
- rescue Exception => e
34
- puts e.message
35
- Process.exit( 0 )
36
- end
37
- end
38
- end