testcentricity_mobile 4.0.2 → 4.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8d1c72189a3ecb6043ddb0ce1d7b16f1f2e67469522a97afbce050dcb75ab13f
|
4
|
+
data.tar.gz: 35348b22511759c81c7cce36f293f8eaa902fede99436b6803043db1ecc3c2bc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 65dd7f632f96537cd043fb0e1246859e029b987fffbab216948818307c2ae1ed1ca57db8ef17883392d5ffeaa759b656602c696399a08431b83527f5862aedca
|
7
|
+
data.tar.gz: ae61adcb122c74499f17e930ad9457a0790547cac3a9c9807bf954d7bd62d34af8d431549d6e0b37c926ce1c30aadb41765091cc98467c831d1510861cb5e09a
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,14 @@
|
|
2
2
|
All notable changes to this project will be documented in this file.
|
3
3
|
|
4
4
|
|
5
|
+
## [4.0.3] - 05-APR-2024
|
6
|
+
|
7
|
+
### Fixed
|
8
|
+
|
9
|
+
* `AppiumConnect.initialize_appium`, `AppiumServer.start`, and `AppiumServer.running?` methods now support Appium version 2.x.
|
10
|
+
Backward compatibility with Appium version 1.x is provided if `APPIUM_SERVER_VERSION` Environment Variable is set to `1`.
|
11
|
+
|
12
|
+
|
5
13
|
## [4.0.2] - 27-MAR-2024
|
6
14
|
|
7
15
|
### Changed
|
data/README.md
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
|
9
9
|
|
10
10
|
The TestCentricity™ Mobile core framework for native mobile iOS and Android app testing implements a Screen Object Model
|
11
|
-
DSL for use with Cucumber (version 7.x or greater) and Appium. It also facilitates the configuration of the appropriate
|
11
|
+
DSL for use with Cucumber (version 7.x or greater) and Appium 2.x. It also facilitates the configuration of the appropriate
|
12
12
|
Appium capabilities and driver required to establish a connection with locally or cloud hosted iOS and Android real devices
|
13
13
|
or simulators.
|
14
14
|
|
@@ -28,6 +28,15 @@ A complete history of bug fixes and new features can be found in the {file:CHANG
|
|
28
28
|
|
29
29
|
The RubyDocs for this gem can be found [here](https://www.rubydoc.info/gems/testcentricity_mobile/).
|
30
30
|
|
31
|
+
Two example projects that demonstrates the implementation of a screen object model framework using Cucumber and TestCentricity™
|
32
|
+
Mobile can be found at the following:
|
33
|
+
* [tc_mobile_react_native_demo](https://github.com/TestCentricity/tc_mobile_react_native_demo)
|
34
|
+
* [tc_mobile_wdio_demo](https://github.com/TestCentricity/tc_mobile_wdio_demo)
|
35
|
+
|
36
|
+
Refer to [this wiki page](https://github.com/TestCentricity/testcentricity_mobile/wiki/XCUItest-driver-bug-impacts-iOS-dialogs-managed-by-com.apple.springboard) for
|
37
|
+
information on a bug with the latest versions of the XCUItest driver that affects Appium's ability to interact with and
|
38
|
+
verify iOS system level modal dialogs.
|
39
|
+
|
31
40
|
|
32
41
|
### Which gem should I use?
|
33
42
|
|
@@ -474,11 +483,20 @@ Single `AppUIElement` declarations have the following format:
|
|
474
483
|
elementType :elementName, { locator_strategy: locator_identifier }
|
475
484
|
|
476
485
|
* The `elementName` is the unique name that you will use to refer to the UI element and is specified as a `Symbol`.
|
477
|
-
* The `locator_strategy` specifies the
|
478
|
-
|
479
|
-
|
486
|
+
* The `locator_strategy` specifies the selector strategy that Appium will use to find the `AppUIElement`. Valid selectors are:
|
487
|
+
- `accessibility_id:`
|
488
|
+
- `id:`
|
489
|
+
- `name:`
|
490
|
+
- `class:`
|
491
|
+
- `xpath:`
|
492
|
+
- `predicate:` (iOS only)
|
493
|
+
- `class_chain:` (iOS only)
|
494
|
+
- `css:` (WebViews in hybrid apps only).
|
480
495
|
* The `locator_identifier` is the value or attribute that uniquely and unambiguously identifies the `AppUIElement`.
|
481
496
|
|
497
|
+
Refer to [this page](https://appium.github.io/appium-xcuitest-driver/5.12/locator-strategies/) for information on selector strategies for iOS.
|
498
|
+
Refer to [this page](https://github.com/appium/appium-uiautomator2-driver?tab=readme-ov-file#element-location) for information on selector strategies for Android.
|
499
|
+
|
482
500
|
Multiple `AppUIElement` declarations for a collection of elements of the same type can be performed by passing a hash table
|
483
501
|
containing the names and locators of each individual element.
|
484
502
|
|
@@ -974,6 +992,10 @@ Refer to [this page](https://appium.io/docs/en/2.4/guides/caps/) for information
|
|
974
992
|
to invoking Cucumber to run your features/scenarios on locally hosted iOS or Android simulators or physical devices. Refer
|
975
993
|
to [**section 8.2.3 (Starting and Stopping Appium Server)**](#starting-and-stopping-appium-server) below.
|
976
994
|
|
995
|
+
⚠️ If you are running locally hosted mobile tests on iOS or Android simulators or devices using version 1.x of the Appium
|
996
|
+
server, the `APPIUM_SERVER_VERSION` environment variable must be set to `1` in order to ensure that the correct Appium server
|
997
|
+
endpoint is used.
|
998
|
+
|
977
999
|
#### Connecting to Locally Hosted iOS Simulators or Physical Devices
|
978
1000
|
|
979
1001
|
You can run your automated tests on locally hosted iOS simulators or physically connected devices using Appium and XCode
|
@@ -1190,6 +1212,13 @@ starting your Cucumber test suite(s):
|
|
1190
1212
|
|
1191
1213
|
run_appium: APPIUM_SERVER=run
|
1192
1214
|
|
1215
|
+
If you are running locally hosted mobile tests on iOS or Android simulators or devices using version 1.x of the Appium server,
|
1216
|
+
the `APPIUM_SERVER_VERSION` environment variable must be set to `1` in order to ensure that the correct Appium server endpoint
|
1217
|
+
is used. This can be set by adding the following to your `cucumber.yml` file and including `-p appium_1x` in your command line
|
1218
|
+
when starting your Cucumber test suite(s):
|
1219
|
+
|
1220
|
+
appium_1x: APPIUM_SERVER_VERSION=1
|
1221
|
+
|
1193
1222
|
Refer to [**section 8.4 (Using Configuration Specific Profiles in `cucumber.yml`)**](#using-configuration-specific-profiles-in-cucumber-yml) below.
|
1194
1223
|
|
1195
1224
|
|
@@ -1210,6 +1239,10 @@ body of an example group:
|
|
1210
1239
|
$server.stop if Environ.driver == :appium && $server.running?
|
1211
1240
|
end
|
1212
1241
|
```
|
1242
|
+
If you are running locally hosted mobile tests on iOS or Android simulators or devices using version 1.x of the Appium server,
|
1243
|
+
the `APPIUM_SERVER_VERSION` environment variable must be set to `1` in order to ensure that the correct Appium server endpoint
|
1244
|
+
is used.
|
1245
|
+
|
1213
1246
|
|
1214
1247
|
### Connecting to Remote Cloud Hosted iOS and Android Simulators or Physical Devices
|
1215
1248
|
|
@@ -1632,6 +1665,7 @@ with access to your version control system.
|
|
1632
1665
|
# physical devices
|
1633
1666
|
#==============
|
1634
1667
|
run_appium: APPIUM_SERVER=run
|
1668
|
+
appium_1x: APPIUM_SERVER_VERSION=1
|
1635
1669
|
|
1636
1670
|
|
1637
1671
|
#==============
|
@@ -1729,6 +1763,11 @@ You can ensure that Appium Server is running by including `-p run_appium` in you
|
|
1729
1763
|
|
1730
1764
|
cucumber -p ipad_pro_12_15_sim -p portrait -p run_appium
|
1731
1765
|
|
1766
|
+
If you are running locally hosted mobile tests using version 1.x of Appium server, you must include `-p appium_1x` in
|
1767
|
+
your command line:
|
1768
|
+
|
1769
|
+
cucumber -p ipad_pro_12_15_sim -p landscape -p run_appium -p appium_1x
|
1770
|
+
|
1732
1771
|
|
1733
1772
|
The following command specifies that Cucumber will run tests against a cloud hosted iPhone 13 Pro Max running iOS 15.4 on the
|
1734
1773
|
BrowserStack service:
|
@@ -390,7 +390,13 @@ module TestCentricity
|
|
390
390
|
|
391
391
|
def self.appium_local_capabilities
|
392
392
|
# specify endpoint url
|
393
|
-
|
393
|
+
if @endpoint.nil?
|
394
|
+
@endpoint = if ENV['APPIUM_SERVER_VERSION'] && ENV['APPIUM_SERVER_VERSION'].to_i == 1
|
395
|
+
'http://127.0.0.1:4723/wd/hub'
|
396
|
+
else
|
397
|
+
'http://127.0.0.1:4723'
|
398
|
+
end
|
399
|
+
end
|
394
400
|
# define local Appium capabilities
|
395
401
|
if @capabilities.nil?
|
396
402
|
Environ.device_name = ENV['APP_DEVICE']
|
@@ -459,11 +465,7 @@ module TestCentricity
|
|
459
465
|
Environ.device_name = @capabilities[:'appium:deviceName']
|
460
466
|
Environ.device_os_version = @capabilities[:'appium:platformVersion']
|
461
467
|
Environ.device_orientation = @capabilities[:'appium:orientation']
|
462
|
-
Environ.device =
|
463
|
-
:device
|
464
|
-
else
|
465
|
-
:simulator
|
466
|
-
end
|
468
|
+
Environ.device = @capabilities[:'appium:udid'] ? :device : :simulator
|
467
469
|
@capabilities
|
468
470
|
end
|
469
471
|
end
|
@@ -38,9 +38,14 @@ module TestCentricity
|
|
38
38
|
# Check to see if Appium Server is running
|
39
39
|
#
|
40
40
|
def running?
|
41
|
+
endpoint = if ENV['APPIUM_SERVER_VERSION'] && ENV['APPIUM_SERVER_VERSION'].to_i == 1
|
42
|
+
'http://0.0.0.0:4723/wd/hub/sessions'
|
43
|
+
else
|
44
|
+
'http://0.0.0.0:4723/sessions'
|
45
|
+
end
|
41
46
|
response = false
|
42
47
|
begin
|
43
|
-
response = Net::HTTP.get_response(URI(
|
48
|
+
response = Net::HTTP.get_response(URI(endpoint))
|
44
49
|
rescue
|
45
50
|
end
|
46
51
|
response && response.code_type == Net::HTTPOK
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: testcentricity_mobile
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.0.
|
4
|
+
version: 4.0.3
|
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: 2024-
|
11
|
+
date: 2024-04-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|