Skip to content
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
9 changes: 8 additions & 1 deletion docs/getting-started-with-xcuitest.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ slug: getting-started-with-xcuitest/

import CodeBlock from '@theme/CodeBlock';
import {YOUR_LAMBDATEST_USERNAME, YOUR_LAMBDATEST_ACCESS_KEY} from "@site/src/component/keys";
import RealDeviceTag from '../src/component/realDevice';
import VirtualDeviceTag from '../src/component/virtualDevice';

<script type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify({
Expand All @@ -42,7 +44,7 @@ import {YOUR_LAMBDATEST_USERNAME, YOUR_LAMBDATEST_ACCESS_KEY} from "@site/src/co
})
}}
></script>

<RealDeviceTag value="Real Device" /> <VirtualDeviceTag value="Virtual Device" />
Developed by Apple, XCUITest is a framework for user-interface (UI) testing for iOS applications. It is built on top of XCTest, an integrated test framework in Apple's Xcode IDE. LambdaTest lets you perform automated app testing of your iOS apps using XCUITest across 10000+ real devices and OS combinations.

## Prerequisites
Expand Down Expand Up @@ -227,6 +229,11 @@ curl --location --request POST 'https://mobile-api.lambdatest.com/framework/v1/x
}'
```

:::info
- For Virtual Devices, both the App file and Test-suite should be in the `Zip format`.
- We need to pass the following capability `isvirtualdevice:true` as well when we are running test for Virtual Devices.
:::

<nav aria-label="breadcrumbs">
<ul className="breadcrumbs">
<li className="breadcrumbs__item">
Expand Down
3 changes: 3 additions & 0 deletions docs/regular-expression-xcui.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ site_name: LambdaTest
slug: regular-expression-xcui/
---

import RealDeviceTag from '../src/component/realDevice';

<script type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify({
"@context": "https://schema.org",
Expand All @@ -35,6 +37,7 @@ slug: regular-expression-xcui/
})
}}
></script>
<RealDeviceTag value="Real Device" />
Regular Expression or REGEX is widely used to make searching/find characters in a string.

When you run a test on LambdaTest using a specific device, there may be scenarios, in which the particular device that you selected isn’t available. In these scenarios, REGEX will help you widen the search request for devices to run the test on.
Expand Down
3 changes: 2 additions & 1 deletion docs/sharding-xcui.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import CodeBlock from '@theme/CodeBlock';
import {YOUR_LAMBDATEST_USERNAME, YOUR_LAMBDATEST_ACCESS_KEY} from "@site/src/component/keys";
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import RealDeviceTag from '../src/component/realDevice';

<script type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify({
Expand All @@ -47,7 +48,7 @@ import TabItem from '@theme/TabItem';
}}
></script>


<RealDeviceTag value="Real Device" />
Generally the XCUI tests are run in sequence which is a time taking process. This document explains how you can speed up this process by splitting the tests into **shards**. We can divide the various tests into shards which can run parallelly and save time while running various XCUI tests.

This document will cover how to execute **XCUI Tests** on real devices with **HyperExecute**. HyperExecute is a smart test orchestration platform to run end-to-end tests at the fastest speed possible. HyperExecute is configured using a YAML file.
Expand Down
9 changes: 6 additions & 3 deletions docs/speedup-xcui.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,9 @@ import {YOUR_LAMBDATEST_USERNAME, YOUR_LAMBDATEST_ACCESS_KEY} from "@site/src/co
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

import RealDeviceTag from '../src/component/realDevice';
import VirtualDeviceTag from '../src/component/virtualDevice';

<script type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify({
"@context": "https://schema.org",
Expand All @@ -47,7 +50,7 @@ import TabItem from '@theme/TabItem';
})
}}
></script>

<RealDeviceTag value="Real Device" /> <VirtualDeviceTag value="Virtual Device" />
Usually, all the test cases of your XCUI test suite are executed, but there is a way to filter these. You can specify some selected classes or tests, which provides you with options to filter the test cases which you want to execute.

To filter the test cases, you just need to pass the suitable parameters in LambdaTest’s REST API request. Refer to the table below to understand how to use various filters provided by LambdaTest.
Expand All @@ -73,8 +76,8 @@ curl --location --request POST 'https://mobile-api.lambdatest.com/framework/v1/x

| Parameters | Description | Values | Datatype |
|----------- | ----------- | ------ | -------- |
| `only-testing` | Allows the user to run only those tests/classes provided in the list | Values can be of the following format: className or className/testName. E.g. `["Class1/Test1", "Class2"]` | Array |
| `skip-testing`| Allows the user to run all the tests/classes except the ones provided in the list | Values can be of the following format: className or className/testName. E.g. `["Class1/Test1", "Class2"]` | Array |
| `only-testing` <RealDeviceTag value="Real Device" /> <VirtualDeviceTag value="Virtual Device" />| Allows the user to run only those tests/classes provided in the list | Values can be of the following format: className or className/testName. E.g. `["Class1/Test1", "Class2"]` | Array |
| `skip-testing`<RealDeviceTag value="Real Device" /> <VirtualDeviceTag value="Virtual Device" /> | Allows the user to run all the tests/classes except the ones provided in the list | Values can be of the following format: className or className/testName. E.g. `["Class1/Test1", "Class2"]` | Array |

:::info Note
You can not use the following filters simultaneously.
Expand Down
4 changes: 2 additions & 2 deletions docs/xcresult.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import CodeBlock from '@theme/CodeBlock';
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import {YOUR_LAMBDATEST_USERNAME, YOUR_LAMBDATEST_ACCESS_KEY} from "@site/src/component/keys";
import RealDeviceTag from '../src/component/realDevice';

<script type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify({
Expand All @@ -45,9 +46,8 @@ import {YOUR_LAMBDATEST_USERNAME, YOUR_LAMBDATEST_ACCESS_KEY} from "@site/src/co
})
}}
></script>

# XCResult on LambdaTest

<RealDeviceTag value="Real Device" />
Apple’s **Native XCResult Bundles (`.xcresult`)** are comprehensive test reports generated when you run XCUITest cases. These bundles include **test hierarchy, logs, stack traces, screenshots, and performance data**, which can be directly viewed in Xcode. They provide developers with rich debugging information, making it easier to analyze why a test passed or failed.

On LambdaTest, you can now **generate and download `.xcresult` bundles** for your XCUI test sessions. You can access them via the **REST API**.
Expand Down
3 changes: 3 additions & 0 deletions docs/xctestplan.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ import {YOUR_LAMBDATEST_USERNAME, YOUR_LAMBDATEST_ACCESS_KEY} from "@site/src/co
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

import RealDeviceTag from '../src/component/realDevice';

<script type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify({
"@context": "https://schema.org",
Expand All @@ -47,6 +49,7 @@ import TabItem from '@theme/TabItem';
})
}}
></script>
<RealDeviceTag value="Real Device" />
XCTestPlan is a feature within Xcode used for building iOS, iPadOS, macOS, watchOS, tvOS, and audioOS applications. XCTestPlan helps manage how you run automated tests written with the XCTest framework.

XCTestPlan improves the organization and efficiency of running automated tests within Xcode. It allows you to create targeted test runs and manage various testing scenarios effectively.
Expand Down
34 changes: 18 additions & 16 deletions docs/xcui-supported-capibilities.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ slug: xcui-supported-capabilities/

import CodeBlock from '@theme/CodeBlock';
import {YOUR_LAMBDATEST_USERNAME, YOUR_LAMBDATEST_ACCESS_KEY} from "@site/src/component/keys";
import RealDeviceTag from '../src/component/realDevice';
import VirtualDeviceTag from '../src/component/virtualDevice';

<script type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify({
Expand All @@ -43,29 +45,29 @@ import {YOUR_LAMBDATEST_USERNAME, YOUR_LAMBDATEST_ACCESS_KEY} from "@site/src/co
})
}}
></script>

<RealDeviceTag value="Real Device" /> <VirtualDeviceTag value="Virtual Device" />
This document provide details about the features and capabilities supported for XCUI Framework on LambdaTest.

> The capabilities listed in this document are also supported for [Virtual Devices](/support/docs/app-automation-on-emulators-simulators/)

| Capability Name | Data Type | Description |
|------|-----------|-------------|
| app | String | Enter the app id generated while uploading the app to the platform. Example:`lt://APP123456789123456789` |
| testSuite | String | Enter the test suite id generated while uploading the test suite to the platform. Example: `lt://APP123456789123456789` |
| device | String | Enter the device name and os version in `DeviceName-OSVersion` format. Example: `"device" : ["Galaxy S20-10","Pixel 3 XL-9"]` |
| video | Boolean | When you pass the `video: true`, it will generate the video for all the tests that are executed. |
| queueTimeout | Integer | Enter the time in seconds after which you want your build to timeout from queue. Example: `queueTimeout: 300` |
| idleTimeout | Integer | Enter the time in seconds for maximum running time of a test in a build. Example: `idleTimeout: 120`|
| deviceLog | Boolean | To generate the device logs, pass the value as `deviceLog: true` |
| network | String | To generate the network logs, pass the value as `network: true`. |
| build | String | To set the Espresso build name. Example: `build: My Espresso Build`. |
| geoLocation | String | Set the geolocation [country code](/support/docs/appium-ip-geolocation/#supported-ip-geolocations) if you want to enable the same in your test. Example: `geoLocation: FR`|
| gpsLocation | Decimal | The capability should be defined to override the device’s default GPS coordinates and should be provided as a comma-separated string. Example: `"location": {"lat": "-50","long": "150.028333"}`.|
| tunnel, tunnelName | Boolean | To activate the tunnel mode, pass the value as `tunnel: true` and provide the name of your tunnel as `tunnelName: NewTunnel` |
| enableBluetooth | Boolean | Used to enable the bluetooth functionality during the session. Example: `enableBluetooth: true`|
| app <RealDeviceTag value="Real Device" /> <VirtualDeviceTag value="Virtual Device" />| String | Enter the app id generated while uploading the app to the platform. Example:`lt://APP123456789123456789` |
| testSuite <RealDeviceTag value="Real Device" /> <VirtualDeviceTag value="Virtual Device" />| String | Enter the test suite id generated while uploading the test suite to the platform. Example: `lt://APP123456789123456789` |
| device <RealDeviceTag value="Real Device" /> <VirtualDeviceTag value="Virtual Device" />| String | Enter the device name and os version in `DeviceName-OSVersion` format. Example: `"device" : ["Galaxy S20-10","Pixel 3 XL-9"]` |
| video <RealDeviceTag value="Real Device" /> <VirtualDeviceTag value="Virtual Device" />| Boolean | When you pass the `video: true`, it will generate the video for all the tests that are executed. |
| queueTimeout <RealDeviceTag value="Real Device" /> <VirtualDeviceTag value="Virtual Device" />| Integer | Enter the time in seconds after which you want your build to timeout from queue. Example: `queueTimeout: 300` |
| idleTimeout <RealDeviceTag value="Real Device" /> <VirtualDeviceTag value="Virtual Device" />| Integer | Enter the time in seconds for maximum running time of a test in a build. Example: `idleTimeout: 120`|
| deviceLog <RealDeviceTag value="Real Device" /> <VirtualDeviceTag value="Virtual Device" />| Boolean | To generate the device logs, pass the value as `deviceLog: true` |
| network <RealDeviceTag value="Real Device" /> <VirtualDeviceTag value="Virtual Device" />| String | To generate the network logs, pass the value as `network: true`. |
| build <RealDeviceTag value="Real Device" /> <VirtualDeviceTag value="Virtual Device" />| String | To set the Espresso build name. Example: `build: My Espresso Build`. |
| geoLocation <RealDeviceTag value="Real Device" />| String | Set the geolocation [country code](/support/docs/appium-ip-geolocation/#supported-ip-geolocations) if you want to enable the same in your test. Example: `geoLocation: FR`|
| gpsLocation <RealDeviceTag value="Real Device" /> <VirtualDeviceTag value="Virtual Device" />| Decimal | The capability should be defined to override the device’s default GPS coordinates and should be provided as a comma-separated string. Example: `"location": {"lat": "-50","long": "150.028333"}`.|
| tunnel, tunnelName <RealDeviceTag value="Real Device" /> <VirtualDeviceTag value="Virtual Device" />| Boolean | To activate the tunnel mode, pass the value as `tunnel: true` and provide the name of your tunnel as `tunnelName: NewTunnel` |
| enableBluetooth <RealDeviceTag value="Real Device" />| Boolean | Used to enable the bluetooth functionality during the session. Example: `enableBluetooth: true`|
| resignApp <br /> <br />Not supported in **Virtual Devices** | Boolean | Set this to `false` if you want to to prevent the apps from being re-signed. The app should be built for enterprise distribution. |
| testRemarks <br /> <br />| Boolean | Set to `true` to surface failure remarks at the top of the dashboard when a test fails. Has no effect on passing tests. **Default**: `false`. |
| retries <br /> <br /> | Integer |Defines the number of times a test should automatically retry if it fails. Maximum allowed value: 5.|
| testRemarks <br /> <br /> <RealDeviceTag value="Real Device" />| Boolean| Set to `true` to surface failure remarks at the top of the dashboard when a test fails. Has no effect on passing tests. **Default**: `false`. |
| retries <br /> <br /> <RealDeviceTag value="Real Device" />| Integer |Defines the number of times a test should automatically retry if it fails. Maximum allowed value: 5.|

:::note
Ensure that the latitude is between -90 and 90, and the longitude is between -180 and 180. Otherwise, an error will occur like "Invalid GPS location: Latitude must be between -90 and +90, Longitude must be between -180 and +180."
Expand Down
3 changes: 3 additions & 0 deletions docs/xcui-xml-report.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ slug: xcui-report/

import CodeBlock from '@theme/CodeBlock';
import {YOUR_LAMBDATEST_USERNAME, YOUR_LAMBDATEST_ACCESS_KEY} from "@site/src/component/keys";
import RealDeviceTag from '../src/component/realDevice';
import VirtualDeviceTag from '../src/component/virtualDevice';

<script type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify({
Expand All @@ -44,6 +46,7 @@ import {YOUR_LAMBDATEST_USERNAME, YOUR_LAMBDATEST_ACCESS_KEY} from "@site/src/co
})
}}
></script>
<RealDeviceTag value="Real Device" /> <VirtualDeviceTag value="Virtual Device" />
XML reports provide a detailed summary of test execution, allowing you to better understand your test outcomes. This document aims to guide you through the process of retrieving XML reports for XCUI tests executed on the LambdaTest platform.

> This feature is also supported for [Virtual Devices](/support/docs/app-automation-on-emulators-simulators/)
Expand Down
Loading