bugsnag-maze-runner 6.27.0 → 7.23.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (82) hide show
  1. checksums.yaml +4 -4
  2. data/bin/download-logs +14 -16
  3. data/bin/maze-runner +53 -15
  4. data/bin/upload-app +6 -6
  5. data/lib/features/steps/breadcrumb_steps.rb +44 -14
  6. data/lib/features/steps/error_reporting_steps.rb +16 -0
  7. data/lib/features/steps/network_steps.rb +66 -6
  8. data/lib/features/steps/payload_steps.rb +23 -0
  9. data/lib/features/steps/request_assertion_steps.rb +87 -8
  10. data/lib/features/steps/runner_steps.rb +22 -0
  11. data/lib/features/steps/session_tracking_steps.rb +1 -1
  12. data/lib/features/steps/trace_steps.rb +254 -0
  13. data/lib/features/support/internal_hooks.rb +31 -84
  14. data/lib/maze/api/appium/file_manager.rb +29 -0
  15. data/lib/maze/aws_public_ip.rb +53 -0
  16. data/lib/maze/checks/assert_check.rb +9 -31
  17. data/lib/maze/client/appium/base_client.rb +131 -0
  18. data/lib/maze/client/appium/bb_client.rb +102 -0
  19. data/lib/maze/client/appium/bb_devices.rb +127 -0
  20. data/lib/maze/client/appium/bs_client.rb +91 -0
  21. data/lib/maze/client/appium/bs_devices.rb +141 -0
  22. data/lib/maze/client/appium/bs_legacy_client.rb +31 -0
  23. data/lib/maze/client/appium/local_client.rb +67 -0
  24. data/lib/maze/client/appium.rb +23 -0
  25. data/lib/maze/client/bb_api_client.rb +102 -0
  26. data/lib/maze/client/bb_client_utils.rb +181 -0
  27. data/lib/maze/client/bs_client_utils.rb +168 -0
  28. data/lib/maze/client/selenium/base_client.rb +15 -0
  29. data/lib/maze/client/selenium/bb_browsers.yml +188 -0
  30. data/lib/maze/client/selenium/bb_client.rb +38 -0
  31. data/lib/maze/client/selenium/bs_browsers.yml +257 -0
  32. data/lib/maze/client/selenium/bs_client.rb +89 -0
  33. data/lib/maze/client/selenium/local_client.rb +16 -0
  34. data/lib/maze/client/selenium.rb +16 -0
  35. data/lib/maze/configuration.rb +18 -10
  36. data/lib/maze/docker.rb +40 -1
  37. data/lib/maze/driver/appium.rb +5 -24
  38. data/lib/maze/driver/browser.rb +12 -26
  39. data/lib/maze/errors.rb +32 -0
  40. data/lib/maze/generator.rb +55 -0
  41. data/lib/maze/helper.rb +7 -3
  42. data/lib/maze/hooks/appium_hooks.rb +29 -190
  43. data/lib/maze/hooks/browser_hooks.rb +2 -55
  44. data/lib/maze/hooks/error_code_hook.rb +49 -0
  45. data/lib/maze/hooks/hooks.rb +2 -2
  46. data/lib/maze/http_request.rb +21 -0
  47. data/lib/maze/logger.rb +16 -3
  48. data/lib/maze/maze_output.rb +88 -0
  49. data/lib/maze/option/parser.rb +17 -22
  50. data/lib/maze/option/processor.rb +21 -34
  51. data/lib/maze/option/validator.rb +38 -67
  52. data/lib/maze/option.rb +16 -18
  53. data/lib/maze/plugins/cucumber_report_plugin.rb +1 -1
  54. data/lib/maze/plugins/error_code_plugin.rb +21 -0
  55. data/lib/maze/request_list.rb +10 -5
  56. data/lib/maze/request_repeater.rb +49 -0
  57. data/lib/maze/retry_handler.rb +4 -13
  58. data/lib/maze/schemas/OtelTraceSchema.json +390 -0
  59. data/lib/maze/schemas/trace_schema.rb +7 -0
  60. data/lib/maze/schemas/trace_validator.rb +98 -0
  61. data/lib/maze/server.rb +74 -30
  62. data/lib/maze/servlets/base_servlet.rb +10 -5
  63. data/lib/maze/servlets/command_servlet.rb +10 -7
  64. data/lib/maze/servlets/log_servlet.rb +2 -2
  65. data/lib/maze/servlets/reflective_servlet.rb +12 -11
  66. data/lib/maze/servlets/servlet.rb +47 -8
  67. data/lib/maze/servlets/temp.rb +0 -0
  68. data/lib/maze/servlets/trace_servlet.rb +13 -0
  69. data/lib/maze.rb +2 -2
  70. data/lib/utils/deep_merge.rb +17 -0
  71. data/lib/utils/selenium_money_patch.rb +17 -0
  72. metadata +97 -17
  73. data/lib/maze/bitbar_devices.rb +0 -84
  74. data/lib/maze/bitbar_utils.rb +0 -112
  75. data/lib/maze/browser_stack_devices.rb +0 -160
  76. data/lib/maze/browser_stack_utils.rb +0 -164
  77. data/lib/maze/browsers_bs.yml +0 -220
  78. data/lib/maze/browsers_cbt.yml +0 -100
  79. data/lib/maze/capabilities.rb +0 -126
  80. data/lib/maze/driver/resilient_appium.rb +0 -51
  81. data/lib/maze/sauce_labs_utils.rb +0 -96
  82. data/lib/maze/smart_bear_utils.rb +0 -71
@@ -0,0 +1,188 @@
1
+ chrome_latest:
2
+ platform: 'Windows'
3
+ osVersion: '11'
4
+ browserName: 'chrome'
5
+ version: 'latest'
6
+ resolution: '1920x1080'
7
+
8
+ chrome_108:
9
+ platform: 'Windows'
10
+ osVersion: '11'
11
+ browserName: 'chrome'
12
+ version: '108'
13
+ resolution: '1920x1080'
14
+
15
+ chrome_107:
16
+ platform: 'Windows'
17
+ osVersion: '11'
18
+ browserName: 'chrome'
19
+ version: '107'
20
+ resolution: '1920x1080'
21
+
22
+ chrome_106:
23
+ platform: 'Windows'
24
+ osVersion: '11'
25
+ browserName: 'chrome'
26
+ version: '106'
27
+ resolution: '1920x1080'
28
+
29
+ chrome_105:
30
+ platform: 'Windows'
31
+ osVersion: '11'
32
+ browserName: 'chrome'
33
+ version: '105'
34
+ resolution: '1920x1080'
35
+
36
+ chrome_104:
37
+ platform: 'Windows'
38
+ osVersion: '11'
39
+ browserName: 'chrome'
40
+ version: '104'
41
+ resolution: '1920x1080'
42
+
43
+ chrome_103:
44
+ platform: 'Windows'
45
+ osVersion: '11'
46
+ browserName: 'chrome'
47
+ version: '103'
48
+ resolution: '1920x1080'
49
+
50
+ chrome_72:
51
+ platform: 'Windows'
52
+ osVersion: '10'
53
+ browserName: 'chrome'
54
+ version: '72'
55
+ resolution: '1920x1080'
56
+
57
+ chrome_43:
58
+ platform': 'Windows'
59
+ osVersion: '10'
60
+ browserName: 'chrome'
61
+ version: '43'
62
+ resolution: '1920x1080'
63
+
64
+ firefox_latest:
65
+ platform: 'Windows'
66
+ osVersion: '11'
67
+ browserName: 'firefox'
68
+ version: 'latest'
69
+ resolution: '1920x1080'
70
+
71
+ firefox_107:
72
+ platform: 'Windows'
73
+ osVersion: '11'
74
+ browserName: 'firefox'
75
+ version: '107'
76
+ resolution: '1920x1080'
77
+
78
+ firefox_106:
79
+ platform: 'Windows'
80
+ osVersion: '11'
81
+ browserName: 'firefox'
82
+ version: '106'
83
+ resolution: '1920x1080'
84
+
85
+ firefox_105:
86
+ platform: 'Windows'
87
+ osVersion: '11'
88
+ browserName: 'firefox'
89
+ version: '105'
90
+ resolution: '1920x1080'
91
+
92
+ firefox_104:
93
+ platform: 'Windows'
94
+ osVersion: '11'
95
+ browserName: 'firefox'
96
+ version: '104'
97
+ resolution: '1920x1080'
98
+
99
+ firefox_103:
100
+ platform: 'Windows'
101
+ osVersion: '11'
102
+ browserName: 'firefox'
103
+ version: '103'
104
+ resolution: '1920x1080'
105
+
106
+ firefox_102:
107
+ platform: 'Windows'
108
+ osVersion: '11'
109
+ browserName: 'firefox'
110
+ version: '102'
111
+ resolution: '1920x1080'
112
+
113
+ firefox_78:
114
+ platform: 'Windows'
115
+ osVersion: '10'
116
+ browserName: 'firefox'
117
+ version: '78'
118
+ resolution: '1920x1080'
119
+
120
+ ie_11:
121
+ platform: 'Windows'
122
+ osVersion: '10'
123
+ browserName: 'internet explorer'
124
+ version: '11'
125
+ resolution: '1920x1080'
126
+
127
+ edge_latest:
128
+ platform: 'Windows'
129
+ osVersion: '11'
130
+ browserName: 'MicrosoftEdge'
131
+ version: 'latest'
132
+ resolution: '1920x1080'
133
+
134
+ edge_106:
135
+ platform: 'Windows'
136
+ osVersion: '11'
137
+ browserName: 'MicrosoftEdge'
138
+ version: '106'
139
+ resolution: '1920x1080'
140
+
141
+ edge_105:
142
+ platform: 'Windows'
143
+ osVersion: '11'
144
+ browserName: 'MicrosoftEdge'
145
+ version: '105'
146
+ resolution: '1920x1080'
147
+
148
+ edge_104:
149
+ platform: 'Windows'
150
+ osVersion: '11'
151
+ browserName: 'MicrosoftEdge'
152
+ version: '104'
153
+ resolution: '1920x1080'
154
+
155
+ edge_103:
156
+ platform: 'Windows'
157
+ osVersion: '11'
158
+ browserName: 'MicrosoftEdge'
159
+ version: '103'
160
+ resolution: '1920x1080'
161
+
162
+ edge_102:
163
+ platform: 'Windows'
164
+ osVersion: '11'
165
+ browserName: 'MicrosoftEdge'
166
+ version: '102'
167
+ resolution: '1920x1080'
168
+
169
+ edge_101:
170
+ platform: 'Windows'
171
+ osVersion: '11'
172
+ browserName: 'MicrosoftEdge'
173
+ version: '101'
174
+ resolution: '1920x1080'
175
+
176
+ safari_16:
177
+ platform: 'macOS'
178
+ osVersion: '13'
179
+ browserName: 'safari'
180
+ version: '16'
181
+ resolution: '2560x1920'
182
+
183
+ safari_15:
184
+ platform: 'macOS'
185
+ osVersion: '12'
186
+ browserName: 'safari'
187
+ version: '15'
188
+ resolution: '2560x1920'
@@ -0,0 +1,38 @@
1
+ module Maze
2
+ module Client
3
+ module Selenium
4
+ class BitBarClient < BaseClient
5
+ def start_session
6
+ config = Maze.config
7
+ if ENV['BUILDKITE']
8
+ credentials = Maze::Client::BitBarClientUtils.account_credentials config.tms_uri
9
+ config.username = credentials[:username]
10
+ config.access_key = credentials[:access_key]
11
+ end
12
+ capabilities = ::Selenium::WebDriver::Remote::Capabilities.new
13
+ capabilities['bitbar_apiKey'] = config.access_key
14
+ browsers = YAML.safe_load(File.read("#{__dir__}/bb_browsers.yml"))
15
+ capabilities.merge! browsers[config.browser]
16
+ capabilities.merge! JSON.parse(config.capabilities_option)
17
+ config.capabilities = capabilities
18
+
19
+ Maze::Client::BitBarClientUtils.start_local_tunnel config.sb_local,
20
+ config.username,
21
+ config.access_key
22
+
23
+ # TODO This probably needs to be settable via an environment variable
24
+ # selenium_url = 'https://us-west-desktop-hub.bitbar.com/wd/hub'
25
+ selenium_url = 'https://eu-desktop-hub.bitbar.com/wd/hub'
26
+ Maze.driver = Maze::Driver::Browser.new :remote, selenium_url, config.capabilities
27
+ Maze.driver.start_driver
28
+ end
29
+
30
+ def stop_session
31
+ super
32
+ Maze::Client::BitBarClientUtils.stop_local_tunnel
33
+ Maze::Client::BitBarClientUtils.release_account(Maze.config.tms_uri) if ENV['BUILDKITE']
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,257 @@
1
+ # Selenium capabilities for browsers available on BrowserStack
2
+ ---
3
+ ie_8:
4
+ browserName: "ie"
5
+ browserVersion: "8"
6
+ os: "windows"
7
+ osVersion: "7"
8
+
9
+ ie_9:
10
+ browserName: "ie"
11
+ browserVersion: "9"
12
+ os: "windows"
13
+ osVersion: "7"
14
+
15
+ ie_10:
16
+ browserName: "ie"
17
+ browserVersion: "10"
18
+ os: "windows"
19
+ osVersion: "8"
20
+
21
+ ie_11:
22
+ browserName: "ie"
23
+ browserVersion: "11"
24
+ os: "windows"
25
+ osVersion: "10"
26
+
27
+ edge_14:
28
+ browserName: "edge"
29
+ browserVersion: "14"
30
+ os: "windows"
31
+ osVersion: "10"
32
+
33
+ edge_15:
34
+ browserName: "edge"
35
+ browserVersion: "15"
36
+ os: "windows"
37
+ osVersion: "10"
38
+
39
+ edge_17:
40
+ browser: "edge"
41
+ browser_version: "17"
42
+ os: "windows"
43
+ os_version: "10"
44
+
45
+ edge_80:
46
+ browser: "edge"
47
+ browser_version: "80"
48
+ os: "windows"
49
+ os_version: "11"
50
+
51
+ safari_6:
52
+ browserName: "safari"
53
+ browserVersion: "6"
54
+ os: "OS X"
55
+ osVersion: "lion"
56
+
57
+ safari_10:
58
+ browserName: "safari"
59
+ browserVersion: "10.0"
60
+ os: "OS X"
61
+ osVersion: "sierra"
62
+
63
+ safari_11:
64
+ browserName: "safari"
65
+ browserVersion: "11.1"
66
+ os: "OS X"
67
+ osVersion: "High Sierra"
68
+
69
+ safari_13:
70
+ browserName: "Safari"
71
+ browserVersion: "13.0"
72
+ os: "OS X"
73
+ osVersion: "Catalina"
74
+
75
+ safari_14:
76
+ browserName: "Safari"
77
+ browserVersion: "14.0"
78
+ os: "OS X"
79
+ osVersion: "Big Sur"
80
+
81
+ safari_15:
82
+ browserName: "Safari"
83
+ browserVersion: "15.0"
84
+ os: "OS X"
85
+ osVersion: "Monterey"
86
+
87
+ safari_16:
88
+ browserName: "Safari"
89
+ browserVersion: "16.0"
90
+ os: "OS X"
91
+ osVersion: "Ventura"
92
+
93
+ iphone_6s:
94
+ browserName: "iphone"
95
+ device: "iPhone 6S"
96
+ os: "ios"
97
+ osVersion: "9.0"
98
+ realMobile: true
99
+
100
+ iphone_7:
101
+ browserName: "iphone"
102
+ device: "iPhone 7"
103
+ os: "ios"
104
+ osVersion: "10.3"
105
+ realMobile: true
106
+
107
+ iphone_x:
108
+ browserName: "iphone"
109
+ device: "iPhone X"
110
+ os: "ios"
111
+ osVersion: "11"
112
+ realMobile: true
113
+
114
+ iphone_xs:
115
+ browserName: "iphone"
116
+ device: "iPhone XS"
117
+ os: "ios"
118
+ osVersion: "12"
119
+ realMobile: true
120
+
121
+ iphone_13:
122
+ browserName: "iphone"
123
+ device: "iPhone 13"
124
+ os: "ios"
125
+ osVersion: "15.4"
126
+ realMobile: true
127
+
128
+ android_nexus5:
129
+ browserName: "Android Browser"
130
+ device: "Google Nexus 5"
131
+ os: "android"
132
+ osVersion: "4.4"
133
+ realMobile: true
134
+
135
+ android_s6:
136
+ browserName: "Android Browser"
137
+ device: "Samsung Galaxy S6"
138
+ os: "android"
139
+ osVersion: "5.0"
140
+ realMobile: true
141
+
142
+ android_s7:
143
+ browserName: "Android Browser"
144
+ device: "Samsung Galaxy S7"
145
+ os: "android"
146
+ osVersion: "6.0"
147
+ realMobile: true
148
+
149
+ android_s8:
150
+ browserName: "Android Browser"
151
+ device: "Samsung Galaxy S8 Plus"
152
+ os: "android"
153
+ osVersion: "7.0"
154
+ realMobile: true
155
+
156
+ firefox_30:
157
+ browserName: "firefox"
158
+ browserVersion: "30"
159
+ os: "windows"
160
+ osVersion: "7"
161
+
162
+ firefox_56:
163
+ browserName: "firefox"
164
+ browserVersion: "56"
165
+ os: "windows"
166
+ osVersion: "10"
167
+
168
+ firefox_60:
169
+ browserName: "firefox"
170
+ browserVersion: "60"
171
+ os: "windows"
172
+ osVersion: "10"
173
+
174
+ firefox_78:
175
+ browser: "firefox"
176
+ browser_version: "78"
177
+ os: "windows"
178
+ os_version: "10"
179
+
180
+ firefox_latest:
181
+ browserName: "firefox"
182
+ browserVersion: "latest"
183
+ os: "windows"
184
+ osVersion: "10"
185
+
186
+ chrome_30:
187
+ browserName: "chrome"
188
+ browserVersion: "30.0"
189
+ os: "windows"
190
+ osVersion: "7"
191
+
192
+ chrome_32:
193
+ browserName: "chrome"
194
+ browserVersion: "32.0"
195
+ os: "windows"
196
+ osVersion: "7"
197
+
198
+ chrome_34:
199
+ browserName: "chrome"
200
+ browserVersion: "34.0"
201
+ os: "windows"
202
+ osVersion: "7"
203
+
204
+ chrome_36:
205
+ browserName: "chrome"
206
+ browserVersion: "36.0"
207
+ os: "windows"
208
+ osVersion: "7"
209
+
210
+ chrome_38:
211
+ browserName: "chrome"
212
+ browserVersion: "38.0"
213
+ os: "windows"
214
+ osVersion: "7"
215
+
216
+ chrome_40:
217
+ browserName: "chrome"
218
+ browserVersion: "40.0"
219
+ os: "windows"
220
+ osVersion: "7"
221
+
222
+ chrome_42:
223
+ browserName: "chrome"
224
+ browserVersion: "42.0"
225
+ os: "windows"
226
+ osVersion: "7"
227
+
228
+ chrome_43:
229
+ browserName: "chrome"
230
+ browserVersion: "43.0"
231
+ os: "windows"
232
+ osVersion: "7"
233
+
234
+ chrome_53:
235
+ browser: "chrome"
236
+ browser_version: "53.0"
237
+ os: "windows"
238
+ os_version: "10"
239
+
240
+ chrome_61:
241
+ browserName: "chrome"
242
+ browserVersion: "61.0"
243
+ os: "windows"
244
+ osVersion: "10"
245
+
246
+ chrome_72:
247
+ browser: "chrome"
248
+ browser_version: "72.0"
249
+ os: "windows"
250
+ os_version: "10"
251
+
252
+ chrome_latest:
253
+ browserName: "chrome"
254
+ browserVersion: "latest"
255
+ os: "windows"
256
+ osVersion: "10"
257
+ seleniumVersion: "3.14.0"
@@ -0,0 +1,89 @@
1
+ require 'selenium-webdriver'
2
+
3
+ module Maze
4
+ module Client
5
+ module Selenium
6
+ class BrowserStackClient < BaseClient
7
+ def start_session
8
+ # Set up the capabilities
9
+ browsers = YAML.safe_load(File.read("#{__dir__}/bs_browsers.yml"))
10
+
11
+ config = Maze.config
12
+ browser = browsers[config.browser]
13
+
14
+ if config.legacy_driver?
15
+ capabilities = ::Selenium::WebDriver::Remote::Capabilities.new
16
+ capabilities['browserstack.local'] = 'true'
17
+ capabilities['browserstack.localIdentifier'] = Maze.run_uuid
18
+ capabilities['browserstack.console'] = 'errors'
19
+
20
+ # Convert W3S capabilities to JSON-WP
21
+ capabilities['browser'] = browser['browserName']
22
+ capabilities['browser_version'] = browser['browserVersion']
23
+ capabilities['device'] = browser['device']
24
+ capabilities['os'] = browser['os']
25
+ capabilities['os_version'] = browser['osVersion']
26
+
27
+ capabilities.merge! JSON.parse(config.capabilities_option)
28
+ capabilities.merge! project_name_capabilities
29
+ config.capabilities = capabilities
30
+ else
31
+ capabilities = {
32
+ 'bstack:options' => {
33
+ 'local' => 'true',
34
+ 'localIdentifier' => Maze.run_uuid
35
+ }
36
+ }
37
+ capabilities.deep_merge! browser
38
+ capabilities.deep_merge! JSON.parse(config.capabilities_option)
39
+ capabilities.merge! project_name_capabilities
40
+ config.capabilities = ::Selenium::WebDriver::Remote::Capabilities.new capabilities
41
+ end
42
+
43
+ # Start the tunnel
44
+ Maze::Client::BrowserStackClientUtils.start_local_tunnel config.bs_local,
45
+ Maze.run_uuid,
46
+ config.access_key
47
+
48
+ # Start the driver
49
+ selenium_url = "https://#{config.username}:#{config.access_key}@hub.browserstack.com/wd/hub"
50
+ Maze.driver = Maze::Driver::Browser.new :remote, selenium_url, config.capabilities
51
+ Maze.driver.start_driver
52
+
53
+ # Log details for the session
54
+ log_session_info
55
+ end
56
+
57
+ def stop_session
58
+ super
59
+ Maze::Client::BrowserStackClientUtils.stop_local_tunnel
60
+ end
61
+
62
+ private
63
+
64
+ # Determines and returns sensible project and build capabilities
65
+ #
66
+ # @return [Hash] A hash containing the 'project' and 'build' capabilities
67
+ def project_name_capabilities
68
+ # Default to values for running locally
69
+ project = 'local'
70
+
71
+ if ENV['BUILDKITE']
72
+ # Project
73
+ project = ENV['BUILDKITE_PIPELINE_NAME']
74
+ end
75
+ {
76
+ project: project,
77
+ build: Maze.run_uuid
78
+ }
79
+ end
80
+
81
+ def log_session_info
82
+ # Log a link to the BrowserStack session search dashboard
83
+ url = "https://automate.browserstack.com/dashboard/v2/search?query=#{Maze.run_uuid}&type=builds"
84
+ $logger.info Maze::LogUtil.linkify url, 'BrowserStack session(s)'
85
+ end
86
+ end
87
+ end
88
+ end
89
+ end
@@ -0,0 +1,16 @@
1
+ module Maze
2
+ module Client
3
+ module Selenium
4
+ class LocalClient < BaseClient
5
+ def start_session
6
+ Maze.driver = Maze::Driver::Browser.new Maze.config.browser.to_sym
7
+ Maze.driver.start_driver
8
+ end
9
+
10
+ def stop_session
11
+ # No need to quit the local driver
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,16 @@
1
+ module Maze
2
+ module Client
3
+ module Selenium
4
+ def self.start
5
+ client_class =
6
+ case Maze.config.farm
7
+ when :bb then BitBarClient
8
+ when :bs then BrowserStackClient
9
+ when :local then LocalClient
10
+ end
11
+
12
+ client_class.new.tap(&:start_session)
13
+ end
14
+ end
15
+ end
16
+ end
@@ -10,6 +10,7 @@ module Maze
10
10
  self.receive_requests_wait = 30
11
11
  self.enforce_bugsnag_integrity = true
12
12
  self.captured_invalid_requests = Set[:errors, :sessions, :builds, :uploads, :sourcemaps]
13
+ @legacy_driver = false
13
14
  end
14
15
 
15
16
  #
@@ -60,13 +61,16 @@ module Maze
60
61
  # The server endpoints for which invalid requests should be captured and cause tests to fail
61
62
  attr_accessor :captured_invalid_requests
62
63
 
64
+ # API key to use when repeating requests
65
+ attr_accessor :repeater_api_key
66
+
67
+ # Enables awareness of a public IP address on Buildkite with the Elastic CI Stack for AWS.
68
+ attr_accessor :aws_public_ip
69
+
63
70
  #
64
71
  # General appium configuration
65
72
  #
66
73
 
67
- # Whether each scenario should have its own Appium session
68
- attr_accessor :appium_session_isolation
69
-
70
74
  # Element locator strategy, :id or :accessibility_id
71
75
  attr_accessor :locator
72
76
 
@@ -82,16 +86,15 @@ module Maze
82
86
  # - on macOS, the name of an installed or previously executed application
83
87
  attr_accessor :app
84
88
 
85
- # Whether the ResilientAppium driver should be used (only applicable when using Appium in the first place)
86
- attr_accessor :resilient
87
-
88
89
  # Device farm to be used, one of:
89
- # :cbt (CrossBrowserTesting)
90
90
  # :bs (BrowserStack)
91
91
  # :local (Using Appium Server with a local device)
92
92
  # :none (Cucumber-driven testing with no devices)
93
93
  attr_accessor :farm
94
94
 
95
+ # Whether the device farm secure tunnel should be started
96
+ attr_accessor :start_tunnel
97
+
95
98
  #
96
99
  # Device farm specific configuration
97
100
  #
@@ -102,9 +105,6 @@ module Maze
102
105
  # Location of the BrowserStackLocal binary (if used)
103
106
  attr_accessor :bs_local
104
107
 
105
- # Location of the Sauce Connect binary (if used)
106
- attr_accessor :sl_local
107
-
108
108
  # Bundle ID of the test application
109
109
  attr_accessor :app_bundle_id
110
110
 
@@ -132,6 +132,14 @@ module Maze
132
132
  # Access token for the test-management service
133
133
  attr_accessor :tms_token
134
134
 
135
+ # Whether the legacy (JSON-WP) Appium driver should be used
136
+ def legacy_driver?
137
+ @legacy_driver
138
+ end
139
+
140
+ def legacy_driver=(value)
141
+ @legacy_driver = value
142
+ end
135
143
 
136
144
  #
137
145
  # Local testing specific configuration