testcentricity_mobile 4.0.2 → 4.0.3
Sign up to get free protection for your applications and to get access to all the features.
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
|