Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release notes 4.11 #194

Merged
merged 7 commits into from
Mar 13, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion docs/modules/automation-testing/nav.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,10 @@
** xref:automation-testing:run-an-automation-test/using-buildkite.adoc[Using BuildKite]
** xref:automation-testing:run-an-automation-test/using-circleci.adoc[Using CircleCI]

* Basic Appium 2.0 (_Alpha_)
* Basic Appium 2.0 (_Beta_)
** xref:basic-appium-server/launch-a-basic-appium-2-session.adoc[]
** xref:basic-appium-server/launch-an-appium-flutter-driver-session.adoc[]
** xref:basic-appium-server/install-appium-gesture-plugin.adoc[]

* Session timeouts
** xref:automation-testing:session-timeouts/about-session-timeouts-for-kobiton.adoc[]
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
= Install Appium Gesture Plugin
:navtitle: Install Appium Gesture Plugin

Learn how to install and use the https://github.com/AppiumTestDistribution/appium-gestures-plugin[Appium Gesture Plugin] with Kobiton’s basic Appium 2 server.

== Prerequisites

* deviceConnect 4.9 or later
* The Mac mini host must have Internet access to download the plugin.
* The plugin is not available for Public Cloud devices.

== Install Appium Gesture Plugin

The Appium Gesture Plugin must be installed on all the Mac minis in your environment that host the devices you will be testing with the Appium Gesture Plugin. Repeat the steps below for each Mac mini.

Access the Mac mini host. You can use Screen Sharing or SSH.

In the Terminal, run the below command to install the plugin:

[code]
----
APPIUM_HOME=/usr/local/deviceconnect/appium-drivers \
ANDROID_HOME=/usr/local/deviceconnect/android \
node /usr/local/deviceconnect/appium-server/index.js plugin install \
--source=npm appium-gestures-plugin
----

Extract the necessary files to the `appium-drivers` folder with this command:

[code]
----
tar -C /usr/local/deviceconnect/appium-drivers \
-xvJf /var/puppet/packages/deviceconnect/files/appium-drivers.tgz
----

Verify the plugin has been installed with:

[code]
----
APPIUM_HOME=/usr/local/deviceconnect/appium-drivers \
ANDROID_HOME=/usr/local/deviceconnect/android \
node /usr/local/deviceconnect/appium-server/index.js plugin list
----

If the plugin is installed successfully, the output of the above should be:

[code]
----
✔ Listing available plugins
- gestures@4.0.1 [installed (npm)]
- images [not installed]
- execute-driver [not installed]
- relaxed-caps [not installed]
- universal-xml [not installed]
----

== Activate the plugin

To activate the plugin, the launch arguments of basic Appium 2 Server need to be modified. Back up the file `run-appium.sh` inside `/usr/local/deviceconnect/Build/Mono/`.

Edit the above file using any editor of choice. Add the argument `--use-plugins=gestures` at the end of the below text in the file:

[code]
----
APPIUM_HOME=$DCDIR/appium-drivers ANDROID_HOME=$DCDIR/android exec $DCDIR/appium-server/index.js -a 127.0.0.1 -p 4723 --allow-insecure chromedriver_autodownload --use-plugins=gestures --log-no-colors -G localhost:10191
----

After editing, the above text becomes:

[code]
----
APPIUM_HOME=$DCDIR/appium-drivers ANDROID_HOME=$DCDIR/android exec $DCDIR/appium-server/index.js -a 127.0.0.1 -p 4723 --allow-insecure chromedriver_autodownload --log-no-colors -G localhost:10191 --use-plugins=gestures
----

Save the file, then end the current `appium-server` process with this command:

[code]
----
pkill -9 -f appium-server
----

After `appium-server` ends, it is automatically restarted with the argument to use the new plugin. Verify this by searching for `gestures@4.0.1 (ACTIVE)` in the deviceConnect service logs:

[code]
----
cat /usr/local/deviceconnect/Logs/MobileLabs.DeviceConnect.Services.log \
| grep 'gestures@4.0.1 (ACTIVE)'
----

The plugin was activated successfully if `gestures@4.0.1 (ACTIVE)` is in the output.

[NOTE]
====
If you don’t see `gestures@4.0.1 (ACTIVE)` in the output, retry the above command several times.
====

Finally, launch a Basic Appium 2 session with a script that uses the plugin to verify it works correctly.
Original file line number Diff line number Diff line change
@@ -1,34 +1,34 @@
= Launch a basic Appium 2.0 session on Kobiton 4+ [Alpha release]
:navtitle: Launch a basic Appium 2.0 session [Alpha]
= Launch a basic Appium 2 session on Kobiton 4+ [Beta]
:navtitle: Launch a basic Appium 2 session [Beta]

Kobiton 4+ includes two ways to run mobile automation: Xium, Kobiton's high-speed reimplementation of Appium Server, and basic Appium 2.0.
Kobiton 4+ includes two ways to run mobile automation: Xium, Kobiton's high-speed reimplementation of Appium Server, and basic Appium 2.

The default mobile automation method is Xium. Follow this guide to switch to basic Appium 2.0 for your automation session.
The default mobile automation method is Xium. Follow this guide to switch to basic Appium 2 for your automation session.

Note that basic Appium 2.0 support is an alpha release, so it currently has several limitations that will be considered for future releases.
Note that basic Appium 2 support is a beta release, so it currently has several limitations that will be considered for future releases.

== Prerequisites

A basic Appium 2.0 session can only be launched on devices hosted by Kobiton v4.9 or above.
A basic Appium 2 session can only be launched on devices hosted by Kobiton v4.9 or above.

== Modify the capabilities in your Appium script

The following modifications must be made to the capabilities of your existing Xium script to run a basic Appium 2.0 session successfully:
The following modifications must be made to the capabilities of your existing Xium script to run a basic Appium 2 session successfully:

=== Add _kobiton:runtime_

Add the `'kobiton:runtime'` capability to your script’s desired capabilities list. The value of this capability must be `'appium'` to launch a basic Appium 2.0 session.
Add the `'kobiton:runtime'` capability to your script’s desired capabilities list. The value of this capability must be `'appium'` to launch a basic Appium 2 session.

=== Specify _automationName_

The `'appium:automationName'` capability is mandatory in Appium 2.0. This capability must have either of the below values:
The `'appium:automationName'` capability is mandatory in Appium 2. This capability must have either of the below values:

* `'XCUITest'` for iOS devices.
* `'UIAutomator2'` for Android devices.

=== Add vendor prefixes

With https://appium.io/docs/en/2.1/guides/migrating-1-to-2/[Appium 2.0], vendor prefixes must be added to non-standard capabilities. The list of standard capabilities is given in the https://www.w3.org/TR/webdriver/#capabilities[WebDriver Protocol specifications] and includes a few commonly used capabilities such as `browserName` and `platformName`.
With https://appium.io/docs/en/2.1/guides/migrating-1-to-2/[Appium 2], vendor prefixes must be added to non-standard capabilities. The list of standard capabilities is given in the https://www.w3.org/TR/webdriver/#capabilities[WebDriver Protocol specifications] and includes a few commonly used capabilities such as `browserName` and `platformName`.

For non-standard capabilities, unless there are specific instructions from Kobiton to use the `kobiton:` vendor prefix, add `appium:` prefix to all of them.

Expand Down Expand Up @@ -57,7 +57,7 @@ const desiredCaps = {
}
----

After modification to run Appium 2.0, it should look like the below:
After modification to run Appium 2, it should look like the below:

[source,javascript]
----
Expand All @@ -81,12 +81,12 @@ const desiredCaps = {
}
----

Once these changes are made, your script is ready to run basic Appium 2.0 sessions on Kobiton.
Once these changes are made, your script is ready to run basic Appium 2 sessions on Kobiton.

== Known issues/Limitations

* Android testing with basic Appium 2.0 is only available for Ubuntu GEM or Standard mode; iOS can be tested with Ubuntu GEM, nixOS GEM, and Standard mode.
* Android testing with basic Appium 2 is only available for Ubuntu GEM or Standard mode; iOS can be tested with Ubuntu GEM, nixOS GEM, and Standard mode.
* No session exhaust is available, which means there are no screenshots, device logs, Appium logs, system metrics at this time. When reviewing sessions, only Session Overview has content; Session Explorer is not available.
* Session video is not available for Android devices.
* AI features - including Scriptless, generate Appium script, validations, and flexCorrect - are not supported for basic Appium 2.0 sessions as they rely heavily on exhaust.
* Users will not be able to run mixed sessions with basic Appium 2.0 sessions.
* In mixed sessions, manual actions on the device cannot be performed.
* AI features - including Scriptless, generate Appium script, validations, and flexCorrect - are not supported for basic Appium 2 sessions as they rely heavily on exhaust.
* Users will not be able to run mixed sessions with basic Appium 2 sessions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
= Launch an Appium Flutter driver session on Kobiton 4+ (Alpha)
:navtitle: Launch an Appium Flutter driver session (Alpha)
= Launch an Appium Flutter driver session on Kobiton 4+ (Beta)
:navtitle: Launch an Appium Flutter driver session (Beta)

Learn how to perform automation testing using the Appium Flutter driver on Kobiton 4+ devices.

Expand Down Expand Up @@ -127,7 +127,7 @@ Upload the Flutter App to the Kobiton App Repository or a cloud storage of your

== Configure Appium Capabilities in your test script

The Appium Flutter driver is supported only via our basic Appium 2.0 server functionality. Follow xref:basic-appium-server/launch-a-basic-appium-2-session.adoc[this document] to prepare your test script for running a basic Appium 2.0 server session on Kobiton devices.
The Appium Flutter driver is supported only via our basic Appium 2 server functionality. Follow xref:basic-appium-server/launch-a-basic-appium-2-session.adoc[this document] to prepare your test script for running a basic Appium 2 server session on Kobiton devices.

Then, change the value of `'appium:automationName'` to `'Flutter'` to use the Appium Flutter driver.

Expand Down
1 change: 1 addition & 0 deletions docs/modules/release-notes/nav.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

* All releases

** xref:all-releases/4_11.adoc[]
** xref:all-releases/4_10.adoc[]
** xref:all-releases/4_9_1S.adoc[]
** xref:all-releases/4_9.adoc[]
Expand Down
107 changes: 107 additions & 0 deletions docs/modules/release-notes/pages/all-releases/4_11.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
= Kobiton 4.11 release notes
:navtitle: Kobiton 4.11 release notes

_Mar 9, 2024_

== New OS support

Kobiton 4.11 adds support for the following:

* iOS/iPadOS 17.3.1
* Xcode 15.3
* Mac OS Sonoma 14.3 & 14.4

[NOTE]
====
* At this time, we recommend hosting iOS 17+ devices via Standard mode deployments for improved stability.
* For iOS/iPadOS 17.3.1, recent apps are not closed during the cleanup process.
====

== Script-based Automation: video and mixed session for Basic Appium 2 (Beta)

Session videos are now available for Basic Appium 2 sessions:

* *iOS*: Supported in both Standard Mode and Lightning Mode with NixOS and Ubuntu GEM.
* *Android*: Supported in both Standard Mode and Lightning Mode, but only with Ubuntu GEM deployment.

This release also provides the ability to perform a mixed session - which means you can view the automation test being performed via a manual session. You can view the session, but cannot perform manual actions on the device via the manual session for Basic Appium 2 mixed sessions.

[NOTE]
====
Our Beta basic Appium 2 server currently has the following limitations:

* *Android testing*: Only available for deployments using the Ubuntu GEM or Standard mode. (iOS testing is supported for Ubuntu GEM, nixOS GEM, and Standard mode.)
* *Limited session exhaust*: Sessions will not include screenshots, device logs, Appium logs, or system metrics. Only Session Overview is available; Session Explorer is not accessible.
* *AI features*: Scriptless automation, Appium script generation, validations, and flexCorrect are not supported as they rely on session exhaust.
* *Mixed sessions*: Manual interactions are not supported.
====

== Script-based Automation: install and use Appium Gesture plugin for Basic Appium 2 (Beta)

This release enables the installation of the Appium Gesture plugin on the Mac mini host, allowing scripts that utilize the Appium Gesture plugin to run on devices hosted by the Mac mini.

See xref:automation-testing:basic-appium-server/install-appium-gesture-plugin.adoc[this guide] to install the plugin for Customer-hosted and Standalone deployments.

[NOTE]
====
* Available for Mac mini hosts running deviceConnect 4.9 and later.
* Each Mac mini host must have the Appium Gesture plugin installed.
* Not available for Public devices.
* For private and local devices hosted by Kobiton, submit a support ticket to request the plugin.
====

== Introducing the exit session step

With this release, the screenshot of the device at the moment the session ends is now included in Session Explorer. In Session Explorer, this screenshot is displayed under a new kind of step called exit session.

[NOTE]
====
* Manual and automation sessions only. _Exit session_ step is not shown in Test Cases, Scriptless revisit, and Mixed sessions.
* For automation sessions, the _exit session_ step does not have HTTP header.
* The _exit session_ step may require a refresh to show up after a session ends.
====

== Download last mile speed test in Session Overview

Last mile speed is the rate of data transfer from the internet service provider's network to the user's device, representing the final segment - or last mile - of the network connection. It directly impacts activities such as web browsing and streaming. For Kobiton, the last mile impacts the speed of launching the device as well as actions performed in lightning mode / standard mode.

This release introduces the ability to download last mile speed test logs from Session Overview to assist in diagnosing and addressing latency experienced by testers.

The last mile speed test is captured periodically throughout the session. See below for the frequency of capturing:

* Every 5 minutes during the first 15 minutes of a manual session.
* After 15 minutes, the frequency of the speed test is reduced: every 15 minutes from minute 15 to 60, then every 30 minutes from minute 60 to 120… and so on.

Included in the last mile speed test logs are:

* Start time
* Jitter
* Upload speed
* Latency
* Download speed

The *last mile speed result* can be downloaded from the *Log* section of *Session Overview*.

[NOTE]
The last mile speed test does not measure the network speed from the user to the Kobiton server.

== Minor improvements and bug fixes

This release includes several enhancements and bug fixes to improve your day-to-day testing.

* Ability to hide the Public Device tab from view if it is not included in the org subscription. Submit a ticket to our support team to request the tab to be hidden.

* Addressed the following Script-based test automation and Device Inspector items:
** Enlarge arrow element is shown in Gigafox Inspector, but not Kobiton Inspector.
** The message _Analyse Responses Times is available by upgrading your plan_ no longer displays in Session Overview whenever an automation or mixed session is running.

* Improved the following items in Scriptless automation:
** Revisit passed although the tap action was performed on the wrong element in Ipad Pro 11-inch.
** Revisit execution blocked due to the utilization of a delayed screen.
** Unusually long execution time for Scriptless process.

* Others items addressed:
** Android device’s current location constantly switches back and forth between mock and real location.
** Failed to launch device due to exception _Too many open files in system_ thrown from device health screen service.
** Failed to parse `.apk` file uploaded to Kobiton store due to segmentation fault when running the `aapt dump` command.
** Cannot set passcode on iPads when it is placed in Landscape mode.
2 changes: 1 addition & 1 deletion docs/modules/release-notes/pages/kobiton-four-latest.adoc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
= Kobiton 4+ latest updates
:navtitle: Kobiton 4+ latest updates

include::all-releases/4_10.adoc[leveloffset=1]
include::all-releases/4_11.adoc[leveloffset=1]
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ The all-time total number of registered devices.

=== Registered devices within date range

The total number of registered devices from the selected xref:_change_the_date_range[date range].
The total number of registered devices from the selected date range.

=== Average days available

Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
10 changes: 9 additions & 1 deletion docs/modules/session-explorer/pages/manage-sessions.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,18 @@ image:edit-session-description-context.png[width=1000,alt="Edit a session descri
[#_download_session_logs]
=== Download session logs

To download device or crash logs as a `.log` file, select *Device* or *Crash* to download that specific log file.
To download device or crash logs as a `.log` file, select *Device* or *Crash*.

image:session-explorer:logs-closeup.png[width=400,alt="Logs section in Session Overview"]

=== Download last mile speed test logs
[NOTE]
Last mile speed test log is only available for Cloud and Hybrid (Cloud Customer-hosted) deployments

To download the last mile speed test logs, select *Last Mile Speed Result*.

image:session-explorer:logs-last-mile-speed.png[width=500,alt="Last mile speed result section in Session Overview"]

=== Create a Jira ticket

If your xref:integrations:jira/index.adoc[Jira integration is enabled], select *Jira Ticket* to create a ticket that's linked to this session.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ Chrome is the recommended web browser for Kobiton Cloud. You can use other brows
|Xcode
|link:[Download]
|_Unavailable_
|`10.0` through `14.2`
|`14.0` through `15.3`

|Java Development Kit (JDK)
|link:https://www.oracle.com/java/technologies/downloads/#jdk20-mac[Download]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@ The following mobile devices and operating system (OS) versions are supported on

.2+|Apple
|iPadOS
|link:https://developer.apple.com/documentation/ios-ipados-release-notes/ios-ipados-13_1-release-notes[iPadOS 13] through link:https://developer.apple.com/documentation/ios-ipados-release-notes/ios-ipados-17_1-release-notes[iPadOS 17.1]
|link:https://developer.apple.com/documentation/ios-ipados-release-notes/ios-ipados-13_1-release-notes[iPadOS 13] through link:https://developer.apple.com/documentation/ios-ipados-release-notes/ios-ipados-17_3-release-notes[iPadOS 17.3.1]

|iOS
|link:https://developer.apple.com/documentation/ios-ipados-release-notes/ios-13-release-notes[iOS 13] through link:https://developer.apple.com/documentation/ios-ipados-release-notes/ios-ipados-17_1-release-notes[iOS 17.1]
|link:https://developer.apple.com/documentation/ios-ipados-release-notes/ios-13-release-notes[iOS 13] through link:https://developer.apple.com/documentation/ios-ipados-release-notes/ios-ipados-17_3-release-notes[iOS 17.3.1]
|===

== Devices
Expand Down
Loading