testcentricity_web 4.2.6 → 4.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +12 -0
- data/README.md +14 -14
- data/lib/testcentricity_web/browser_helper.rb +2 -1
- data/lib/testcentricity_web/version.rb +1 -1
- data/lib/testcentricity_web/web_core/webdriver_helper.rb +23 -20
- metadata +14 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e1f34273e6126cc792065a37bdb761e8ca0f0c597e9030b3f9f58f2846a8d5c2
|
4
|
+
data.tar.gz: 43a3dbfb5c94a0ff10b161e01d4087c3973ed11b61596363b455e1f82897c403
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 12b80dbd95dc924ca9b51b0ac5d7876f55642e8824b5f38e0fd19f008487a23f3a4d24418712785d93e93d1f330fbeaa03e7754c2fc8a3a9967d931cf47aab0b
|
7
|
+
data.tar.gz: a1bdb14f26c27829e71f0fb96c2ccb7183e5058dca09e46b0a515595611680ca6692f6c1a52f3c38cf60ba59c04f3ce720b29f8cd50be507a40119a13298d308
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,18 @@
|
|
2
2
|
All notable changes to this project will be documented in this file.
|
3
3
|
|
4
4
|
|
5
|
+
## [4.3.0] - 01-AUGUST-2022
|
6
|
+
|
7
|
+
### Added
|
8
|
+
* The `DRIVER` Environment Variable is now used to specify the `appium`, `browserstack`, `saucelabs`, `testingbot`,
|
9
|
+
or `lambdatest` driver.
|
10
|
+
|
11
|
+
* ### Changed
|
12
|
+
* The `WEB_BROWSER` Environment Variable is no longer used to specify the `appium`, `browserstack`, `saucelabs`, `testingbot`,
|
13
|
+
or `lambdatest` driver.
|
14
|
+
* TestCentricity now supports and integrates with Selenium-Webdriver version 4.3.
|
15
|
+
|
16
|
+
|
5
17
|
## [4.2.6] - 12-JUNE-2022
|
6
18
|
|
7
19
|
### Fixed
|
data/README.md
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
|
7
7
|
The TestCentricity™ Web core framework for desktop and mobile web browser-based app testing implements a Page Object Model DSL for use
|
8
|
-
with Cucumber (version 7.x or greater), Capybara (version 3.
|
8
|
+
with Cucumber (version 7.x or greater), Capybara (version 3.37), and Selenium-Webdriver (version 4.3). It also facilitates the configuration of the appropriate
|
9
9
|
Selenium-Webdriver capabilities required to establish a connection with a local or cloud hosted desktop or mobile web browser.
|
10
10
|
|
11
11
|
The TestCentricity™ Web gem supports running automated tests against the following web test targets:
|
@@ -1383,7 +1383,7 @@ Once your test environment is properly configured, the following **Environment V
|
|
1383
1383
|
|
1384
1384
|
| **Environment Variable** | **Description** |
|
1385
1385
|
|----------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
1386
|
-
| `
|
1386
|
+
| `DRIVER` | Must be set to `appium` |
|
1387
1387
|
| `APP_PLATFORM_NAME` | Must be set to `iOS` |
|
1388
1388
|
| `APP_BROWSER` | Must be set to `Safari` |
|
1389
1389
|
| `APP_VERSION` | Must be set to `15.4`, `14.5`, or which ever iOS version you wish to run within the XCode Simulator |
|
@@ -1426,7 +1426,7 @@ Once your test environment is properly configured, the following **Environment V
|
|
1426
1426
|
|
1427
1427
|
| **Environment Variable** | **Description** |
|
1428
1428
|
|---------------------------|--------------------------------------------------------------------------------------------------------------------------------|
|
1429
|
-
| `
|
1429
|
+
| `DRIVER` | Must be set to `appium` |
|
1430
1430
|
| `APP_PLATFORM_NAME` | Must be set to `Android` |
|
1431
1431
|
| `APP_BROWSER` | Must be set to `Chrome` or `Browser` |
|
1432
1432
|
| `APP_VERSION` | Must be set to `12.0`, or which ever Android OS version you wish to run with the Android Virtual Device |
|
@@ -1499,7 +1499,7 @@ for information regarding the specific capabilities.
|
|
1499
1499
|
|
1500
1500
|
| **Environment Variable** | **Description** |
|
1501
1501
|
|--------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
1502
|
-
| `
|
1502
|
+
| `DRIVER` | Must be set to `browserstack` |
|
1503
1503
|
| `BS_USERNAME` | Must be set to your BrowserStack account user name |
|
1504
1504
|
| `BS_AUTHKEY` | Must be set to your BrowserStack account access key |
|
1505
1505
|
| `BS_OS` | Must be set to `OS X` or `Windows` |
|
@@ -1533,7 +1533,7 @@ for information regarding the specific capabilities.
|
|
1533
1533
|
|
1534
1534
|
| **Environment Variable** | **Description** |
|
1535
1535
|
|--------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
1536
|
-
| `
|
1536
|
+
| `DRIVER` | Must be set to `browserstack` |
|
1537
1537
|
| `BS_USERNAME` | Must be set to your BrowserStack account user name |
|
1538
1538
|
| `BS_AUTHKEY` | Must be set to your BrowserStack account access key |
|
1539
1539
|
| `BS_OS` | Must be set to `ios` or `android` |
|
@@ -1559,7 +1559,7 @@ to obtain information regarding the specific capabilities.
|
|
1559
1559
|
|
1560
1560
|
| **Environment Variable** | **Description** |
|
1561
1561
|
|--------------------------|----------------------------------------------------------------------------------------------------------------------------|
|
1562
|
-
| `
|
1562
|
+
| `DRIVER` | Must be set to `saucelabs` |
|
1563
1563
|
| `SL_USERNAME` | Must be set to your Sauce Labs account user name or email address |
|
1564
1564
|
| `SL_AUTHKEY` | Must be set to your Sauce Labs account access key |
|
1565
1565
|
| `DATA_CENTER` | Must be set to your Sauce Labs account Data Center assignment (`us-west-1`, `eu-central-1`, `apac-southeast-1`) |
|
@@ -1579,7 +1579,7 @@ regarding the specific capabilities.
|
|
1579
1579
|
|
1580
1580
|
| **Environment Variable** | **Description** |
|
1581
1581
|
|--------------------------|-------------------------------------------------------------------------------------------------------------------|
|
1582
|
-
| `
|
1582
|
+
| `DRIVER` | Must be set to `testingbot` |
|
1583
1583
|
| `TB_USERNAME` | Must be set to your TestingBot account user name |
|
1584
1584
|
| `TB_AUTHKEY` | Must be set to your TestingBot account access key |
|
1585
1585
|
| `TB_OS` | Refer to `platform` capability in chart |
|
@@ -1598,7 +1598,7 @@ to obtain information regarding the specific capabilities.
|
|
1598
1598
|
|
1599
1599
|
| **Environment Variable** | **Description** |
|
1600
1600
|
|--------------------------|------------------------------------------------------------------------------------------|
|
1601
|
-
| `
|
1601
|
+
| `DRIVER` | Must be set to `lambdatest` |
|
1602
1602
|
| `LT_USERNAME` | Must be set to your LambdaTest account user name or email address |
|
1603
1603
|
| `LT_AUTHKEY` | Must be set to your LambdaTest account access key |
|
1604
1604
|
| `LT_OS` | Refer to `platformName` capability in the sample script of the Wizard |
|
@@ -1724,7 +1724,7 @@ that you intend to connect with.
|
|
1724
1724
|
# NOTE: Requires installation of XCode, iOS version specific target simulators, Appium, and the appium_capybara gem
|
1725
1725
|
#==============
|
1726
1726
|
|
1727
|
-
appium_ios:
|
1727
|
+
appium_ios: DRIVER=appium AUTOMATION_ENGINE=XCUITest APP_PLATFORM_NAME="ios" APP_BROWSER="Safari" NEW_COMMAND_TIMEOUT=30 SHOW_SIM_KEYBOARD=false
|
1728
1728
|
app_ios_15: --profile appium_ios APP_VERSION="15.4"
|
1729
1729
|
ipad_pro_12_15_sim: --profile app_ios_15 DEVICE_TYPE=tablet APP_DEVICE="iPad Pro (12.9-inch) (5th generation)"
|
1730
1730
|
ipad_air_15_sim: --profile app_ios_15 DEVICE_TYPE=tablet APP_DEVICE="iPad Air (5th generation)" <%= desktop %>
|
@@ -1745,7 +1745,7 @@ that you intend to connect with.
|
|
1745
1745
|
# NOTE: Requires installation of Android Studio, Android version specific virtual device simulators, Appium, and the appium_capybara gem
|
1746
1746
|
#==============
|
1747
1747
|
|
1748
|
-
appium_android:
|
1748
|
+
appium_android: DRIVER=appium APP_PLATFORM_NAME="Android" <%= mobile %>
|
1749
1749
|
app_android_12: --profile appium_android APP_BROWSER="Chrome" APP_VERSION="12.0"
|
1750
1750
|
pixel_c_api31_sim: --profile app_android_12 DEVICE_TYPE=tablet APP_DEVICE="Pixel_C_API_31"
|
1751
1751
|
|
@@ -1756,7 +1756,7 @@ that you intend to connect with.
|
|
1756
1756
|
# to your version control system
|
1757
1757
|
#==============
|
1758
1758
|
|
1759
|
-
browserstack:
|
1759
|
+
browserstack: DRIVER=browserstack BS_USERNAME="<INSERT USER NAME HERE>" BS_AUTHKEY="<INSERT PASSWORD HERE>"
|
1760
1760
|
bs_desktop: --profile browserstack <%= desktop %> RESOLUTION="1920x1080"
|
1761
1761
|
bs_mobile: --profile browserstack <%= mobile %>
|
1762
1762
|
|
@@ -1788,7 +1788,7 @@ that you intend to connect with.
|
|
1788
1788
|
# to your version control system
|
1789
1789
|
#==============
|
1790
1790
|
|
1791
|
-
saucelabs:
|
1791
|
+
saucelabs: DRIVER=saucelabs SL_USERNAME="<INSERT USER NAME HERE>" SL_AUTHKEY="<INSERT PASSWORD HERE>" DATA_CENTER="<INSERT DATA CENTER HERE"
|
1792
1792
|
sl_desktop: --profile saucelabs <%= desktop %>
|
1793
1793
|
sl_mobile: --profile saucelabs <%= mobile %>
|
1794
1794
|
|
@@ -1814,7 +1814,7 @@ that you intend to connect with.
|
|
1814
1814
|
# to your version control system
|
1815
1815
|
#==============
|
1816
1816
|
|
1817
|
-
testingbot:
|
1817
|
+
testingbot: DRIVER=testingbot TB_USERNAME="<INSERT USER NAME HERE>" TB_AUTHKEY="<INSERT PASSWORD HERE>"
|
1818
1818
|
tb_desktop: --profile testingbot <%= desktop %> RESOLUTION="1920x1200"
|
1819
1819
|
|
1820
1820
|
# TestingBot macOS desktop browser profiles
|
@@ -1835,7 +1835,7 @@ that you intend to connect with.
|
|
1835
1835
|
# to your version control system
|
1836
1836
|
#==============
|
1837
1837
|
|
1838
|
-
lambdatest:
|
1838
|
+
lambdatest: DRIVER=lambdatest LT_USERNAME=<INSERT USER NAME HERE> LT_AUTHKEY=<INSERT PASSWORD HERE>
|
1839
1839
|
lt_desktop: --profile lambdatest <%= desktop %> RESOLUTION="2560x1440"
|
1840
1840
|
|
1841
1841
|
# LambdaTest macOS desktop browser profiles
|
@@ -173,7 +173,8 @@ module TestCentricity
|
|
173
173
|
@devices = @devices.merge(ext_devices)
|
174
174
|
end
|
175
175
|
end
|
176
|
-
|
176
|
+
device = device.gsub(/\s+/, '').downcase.to_sym if device.is_a?(String)
|
177
|
+
@devices[device]
|
177
178
|
end
|
178
179
|
end
|
179
180
|
end
|
@@ -24,8 +24,13 @@ module TestCentricity
|
|
24
24
|
@endpoint = options[:endpoint] if options.key?(:endpoint)
|
25
25
|
@capabilities = options[:desired_capabilities] if options.key?(:desired_capabilities)
|
26
26
|
end
|
27
|
-
|
28
|
-
browser = ENV['WEB_BROWSER']
|
27
|
+
# determine browser type and driver
|
28
|
+
Environ.browser = ENV['WEB_BROWSER'] if ENV['WEB_BROWSER']
|
29
|
+
Environ.driver = if ENV['DRIVER']
|
30
|
+
ENV['DRIVER'].downcase.to_sym
|
31
|
+
else
|
32
|
+
:webdriver
|
33
|
+
end
|
29
34
|
# set downloads folder path
|
30
35
|
@downloads_path = "#{Dir.pwd}/downloads"
|
31
36
|
if ENV['PARALLEL']
|
@@ -43,18 +48,16 @@ module TestCentricity
|
|
43
48
|
@downloads_path = @downloads_path.tr('/', "\\") if OS.windows?
|
44
49
|
|
45
50
|
# assume that we're testing within a local desktop web browser
|
46
|
-
Environ.driver = :webdriver
|
47
51
|
Environ.platform = :desktop
|
48
|
-
Environ.browser = browser
|
49
52
|
Environ.headless = false
|
50
53
|
Environ.device = :web
|
51
54
|
Environ.device_name = 'browser'
|
52
55
|
|
53
|
-
context = case
|
56
|
+
context = case Environ.driver
|
54
57
|
when :appium
|
55
58
|
initialize_appium
|
56
59
|
'Appium'
|
57
|
-
|
60
|
+
# :nocov:
|
58
61
|
when :browserstack
|
59
62
|
initialize_browserstack
|
60
63
|
'Browserstack cloud service'
|
@@ -67,8 +70,7 @@ module TestCentricity
|
|
67
70
|
when :testingbot
|
68
71
|
initialize_testingbot
|
69
72
|
'TestingBot cloud service'
|
70
|
-
|
71
|
-
else
|
73
|
+
when :webdriver
|
72
74
|
if ENV['SELENIUM'] == 'remote'
|
73
75
|
initialize_remote
|
74
76
|
'Selenium Grid'
|
@@ -142,6 +144,7 @@ module TestCentricity
|
|
142
144
|
def self.initialize_appium
|
143
145
|
Environ.platform = :mobile
|
144
146
|
Environ.device = :simulator
|
147
|
+
Environ.browser = ENV['APP_BROWSER']
|
145
148
|
Environ.device_name = ENV['APP_DEVICE']
|
146
149
|
Environ.device_os = ENV['APP_PLATFORM_NAME'].downcase.to_sym
|
147
150
|
Environ.device_type = ENV['DEVICE_TYPE'] if ENV['DEVICE_TYPE']
|
@@ -154,7 +157,7 @@ module TestCentricity
|
|
154
157
|
desired_capabilities = {
|
155
158
|
platformName: Environ.device_os,
|
156
159
|
platformVersion: Environ.device_os_version,
|
157
|
-
browserName:
|
160
|
+
browserName: Environ.browser,
|
158
161
|
deviceName: Environ.device_name
|
159
162
|
}
|
160
163
|
desired_capabilities[:avd] = ENV['APP_DEVICE'] if Environ.device_os == :android
|
@@ -231,7 +234,7 @@ module TestCentricity
|
|
231
234
|
else
|
232
235
|
'unknown'
|
233
236
|
end
|
234
|
-
browser =
|
237
|
+
browser = Environ.browser.downcase.to_sym
|
235
238
|
|
236
239
|
case browser
|
237
240
|
when :firefox, :chrome, :ie, :safari, :edge
|
@@ -241,7 +244,7 @@ module TestCentricity
|
|
241
244
|
Environ.headless = true
|
242
245
|
else
|
243
246
|
Environ.platform = :mobile
|
244
|
-
Environ.device_name = Browsers.mobile_device_name(
|
247
|
+
Environ.device_name = Browsers.mobile_device_name(Environ.browser)
|
245
248
|
end
|
246
249
|
|
247
250
|
Capybara.register_driver :selenium do |app|
|
@@ -259,8 +262,8 @@ module TestCentricity
|
|
259
262
|
Capybara::Selenium::Driver.new(app, browser: :edge, capabilities: [options])
|
260
263
|
else
|
261
264
|
if ENV['HOST_BROWSER'] && ENV['HOST_BROWSER'].downcase.to_sym == :chrome
|
262
|
-
user_agent = Browsers.mobile_device_agent(
|
263
|
-
options = Selenium::WebDriver::Chrome::Options.new
|
265
|
+
user_agent = Browsers.mobile_device_agent(Environ.browser)
|
266
|
+
options = Selenium::WebDriver::Chrome::Options.new
|
264
267
|
options.add_argument('--disable-dev-shm-usage')
|
265
268
|
options.add_argument("--user-agent='#{user_agent}'")
|
266
269
|
options.add_argument("--lang=#{ENV['LOCALE']}") if ENV['LOCALE']
|
@@ -275,7 +278,7 @@ module TestCentricity
|
|
275
278
|
|
276
279
|
def self.initialize_remote
|
277
280
|
Environ.grid = :selenium_grid
|
278
|
-
browser =
|
281
|
+
browser = Environ.browser.downcase.to_sym
|
279
282
|
@endpoint = ENV['REMOTE_ENDPOINT'] || 'http://127.0.0.1:4444/wd/hub' if @endpoint.nil?
|
280
283
|
|
281
284
|
case browser
|
@@ -290,9 +293,9 @@ module TestCentricity
|
|
290
293
|
else
|
291
294
|
if ENV['HOST_BROWSER'] && ENV['HOST_BROWSER'].downcase.to_sym == :chrome
|
292
295
|
Environ.platform = :mobile
|
293
|
-
Environ.device_name = Browsers.mobile_device_name(
|
294
|
-
user_agent = Browsers.mobile_device_agent(
|
295
|
-
options = Selenium::WebDriver::Chrome::Options.new
|
296
|
+
Environ.device_name = Browsers.mobile_device_name(Environ.browser)
|
297
|
+
user_agent = Browsers.mobile_device_agent(Environ.browser)
|
298
|
+
options = Selenium::WebDriver::Chrome::Options.new
|
296
299
|
options.add_argument('--disable-dev-shm-usage')
|
297
300
|
options.add_argument("--user-agent='#{user_agent}'")
|
298
301
|
options.add_argument("--lang=#{ENV['LOCALE']}") if ENV['LOCALE']
|
@@ -396,7 +399,7 @@ module TestCentricity
|
|
396
399
|
else
|
397
400
|
# define desktop browser options
|
398
401
|
bs_options[:resolution] = ENV['RESOLUTION'] if ENV['RESOLUTION']
|
399
|
-
bs_options[:seleniumVersion] = '4.
|
402
|
+
bs_options[:seleniumVersion] = '4.3.0'
|
400
403
|
{
|
401
404
|
browserName: browser,
|
402
405
|
browserVersion: ENV['BS_VERSION'],
|
@@ -578,9 +581,9 @@ module TestCentricity
|
|
578
581
|
def self.chrome_edge_options(browser)
|
579
582
|
options = case browser
|
580
583
|
when :chrome, :chrome_headless
|
581
|
-
Selenium::WebDriver::Chrome::Options.new
|
584
|
+
Selenium::WebDriver::Chrome::Options.new
|
582
585
|
when :edge, :edge_headless
|
583
|
-
Selenium::WebDriver::Edge::Options.new
|
586
|
+
Selenium::WebDriver::Edge::Options.new
|
584
587
|
end
|
585
588
|
prefs = {
|
586
589
|
prompt_for_download: false,
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: testcentricity_web
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- A.J. Mrozinski
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-08-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: appium_capybara
|
@@ -42,16 +42,16 @@ dependencies:
|
|
42
42
|
name: cucumber
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - '='
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: 8.0.0
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - '='
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: 8.0.0
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: cuke_modeler
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -140,16 +140,16 @@ dependencies:
|
|
140
140
|
name: rspec
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
142
142
|
requirements:
|
143
|
-
- - "
|
143
|
+
- - ">="
|
144
144
|
- !ruby/object:Gem::Version
|
145
|
-
version:
|
145
|
+
version: 3.11.0
|
146
146
|
type: :development
|
147
147
|
prerelease: false
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
|
-
- - "
|
150
|
+
- - ">="
|
151
151
|
- !ruby/object:Gem::Version
|
152
|
-
version:
|
152
|
+
version: 3.11.0
|
153
153
|
- !ruby/object:Gem::Dependency
|
154
154
|
name: simplecov
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
@@ -212,7 +212,7 @@ dependencies:
|
|
212
212
|
requirements:
|
213
213
|
- - ">="
|
214
214
|
- !ruby/object:Gem::Version
|
215
|
-
version:
|
215
|
+
version: 3.37.1
|
216
216
|
- - "<"
|
217
217
|
- !ruby/object:Gem::Version
|
218
218
|
version: '4'
|
@@ -222,7 +222,7 @@ dependencies:
|
|
222
222
|
requirements:
|
223
223
|
- - ">="
|
224
224
|
- !ruby/object:Gem::Version
|
225
|
-
version:
|
225
|
+
version: 3.37.1
|
226
226
|
- - "<"
|
227
227
|
- !ruby/object:Gem::Version
|
228
228
|
version: '4'
|
@@ -302,7 +302,7 @@ dependencies:
|
|
302
302
|
requirements:
|
303
303
|
- - ">="
|
304
304
|
- !ruby/object:Gem::Version
|
305
|
-
version:
|
305
|
+
version: 4.3.0
|
306
306
|
- - "<"
|
307
307
|
- !ruby/object:Gem::Version
|
308
308
|
version: '5'
|
@@ -312,7 +312,7 @@ dependencies:
|
|
312
312
|
requirements:
|
313
313
|
- - ">="
|
314
314
|
- !ruby/object:Gem::Version
|
315
|
-
version:
|
315
|
+
version: 4.3.0
|
316
316
|
- - "<"
|
317
317
|
- !ruby/object:Gem::Version
|
318
318
|
version: '5'
|