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: 6 additions & 3 deletions docs/apis-for-app-testing.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ 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';
import VirtualDeviceTag from '../src/component/virtualDevice';

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

<RealDeviceTag value="Real Device" /> <VirtualDeviceTag value="Virtual Device" />
In this documentation, we look at some APIs that will help you optimize your mobile app testing workflow. If you are performing live or automated app testing, you can use these APIs in your scripts to perform various actions.

## Fetching The Devices Available for Testing

<RealDeviceTag value="Real Device" />
To fetch the Devices that are available for running Tests.

<div className="lambdatest__codeblock">
Expand Down Expand Up @@ -86,7 +88,8 @@ Shown below is the response to the above cURL request.
```

## Generate publicly shareable build and test links

<RealDeviceTag value="Real Device" />
<VirtualDeviceTag value="Virtual Device" />
To generate public **shareable build link**, run the below cURL command.

<div className="lambdatest__codeblock">
Expand Down
4 changes: 2 additions & 2 deletions docs/appium-firebase-app-upload.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ url: https://www.lambdatest.com/support/docs/appium-firebase-app-upload/
site_name: Uploading app via Firebase
slug: appium-firebase-app-upload/
---

<script type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify({
"@context": "https://schema.org",
Expand Down Expand Up @@ -47,11 +46,12 @@ 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';

---

## Tutorial to test an app uploaded on Firebase

<RealDeviceTag value="Real Device" />
**Firebase** is a platform developed by **Google** for creating mobile and web applications. **LambdaTest cloud platform** provides you various methods to upload your files on a real device like from playstore and appstore. Uploading an app through Firebase is one such method.

## How to Start with Firebase
Expand Down
2 changes: 1 addition & 1 deletion docs/appium-flutter-integration.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ After preparing your Flutter app with this integration (refer to the setup docum

---

## Native Flutter Integration Driver vs Appium Flutter Integration Driver <RealDeviceTag value="Real Device" /> <VirtualDeviceTag value="Virtual Device" />
## Native Flutter Integration Driver vs Appium Flutter Integration Driver

| Feature / Use Case | Native Flutter Driver | Appium Flutter Integration Driver |
|----------------------------------------------------|----------------------|----------------------------------|
Expand Down
6 changes: 6 additions & 0 deletions docs/appium-install-uninstall-hook.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,12 @@ 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';


<RealDeviceTag value="Real Device" />
<VirtualDeviceTag value="Virtual Device" />

## Introduction

Expand Down
5 changes: 5 additions & 0 deletions docs/appium-lambdaHooks.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,13 @@ 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';


<RealDeviceTag value="Real Device" />
<VirtualDeviceTag value="Virtual Device" />


This document will help you provide lambdahooks which can be used to improve your test scripts to easily debug your test cases for **App Automation on Real Devices** on **LambdaTest Cloud**.

Expand Down
3 changes: 3 additions & 0 deletions docs/appium-uploading-retrieving-files.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';

<RealDeviceTag value="Real Device" />

<script type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify({
Expand Down
79 changes: 74 additions & 5 deletions docs/application-setup-via-api.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,11 @@ import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import {YOUR_LAMBDATEST_USERNAME, YOUR_LAMBDATEST_ACCESS_KEY} from "@site/src/component/keys";
import CodeBlock from '@theme/CodeBlock';
import RealDeviceTag from '../src/component/realDevice';
import VirtualDeviceTag from '../src/component/virtualDevice';

<RealDeviceTag value="Real Device" />
<VirtualDeviceTag value="Virtual Device" />

<script type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify({
Expand Down Expand Up @@ -64,20 +69,47 @@ The maximum size for application should not exceed 1GB.

### Using App File

<Tabs className="docs__val">

<TabItem value="real" label="Real Device" default>
<div className="lambdatest__codeblock">
<CodeBlock className="language-bash">
{`curl -u "${ YOUR_LAMBDATEST_USERNAME()}:${ YOUR_LAMBDATEST_ACCESS_KEY()}" -X POST "https://manual-api.lambdatest.com/app/upload/realDevice" -F "appFile=@"/Users/macuser/Downloads/Appname.apk"" -F "name="appname""
`}
{`curl -u "${ YOUR_LAMBDATEST_USERNAME()}:${ YOUR_LAMBDATEST_ACCESS_KEY()}" -X POST "https://manual-api.lambdatest.com/app/upload/realDevice" -F "appFile=@"/Users/macuser/Downloads/Appname.apk"" -F "name="appname""`}
</CodeBlock>
</div>
</TabItem>

<TabItem value="virtual" label="Virtual Device">
<div className="lambdatest__codeblock">
<CodeBlock className="language-bash">
{`curl -u "${ YOUR_LAMBDATEST_USERNAME()}:${ YOUR_LAMBDATEST_ACCESS_KEY()}" -X POST "https://manual-api.lambdatest.com/app/upload/virtualDevice" -F "appFile=@"/Users/macuser/Downloads/Appname.apk"" -F "name="appname""`}
</CodeBlock>
</div>
</TabItem>

</Tabs>

### Using App URL

<Tabs className="docs__val">

<TabItem value="real" label="Real Device" default>
<div className="lambdatest__codeblock">
<CodeBlock className="language-bash">
{`curl -u "${ YOUR_LAMBDATEST_USERNAME()}:${ YOUR_LAMBDATEST_ACCESS_KEY()}" -X POST "https://manual-api.lambdatest.com/app/upload/realDevice" -F "url=https://prod-mobile-artefacts.lambdatest.com/assets/docs/proverbial_android.apk" -F "name=Proverbial_App" -F "custom_id=sampleName" -F "storage=url" -F "visibility=individual"`}
</CodeBlock>
</div>
</TabItem>

<TabItem value="virtual" label="Virtual Device">
<div className="lambdatest__codeblock">
<CodeBlock className="language-bash">
{`curl -u "${ YOUR_LAMBDATEST_USERNAME()}:${ YOUR_LAMBDATEST_ACCESS_KEY()}" -X POST "https://manual-api.lambdatest.com/app/upload/virtualDevice" -F "url=https://prod-mobile-artefacts.lambdatest.com/assets/docs/proverbial_android.apk" -F "name=Proverbial_App" -F "custom_id=sampleName" -F "storage=url" -F "visibility=individual"`}
</CodeBlock>
</div>
</TabItem>

</Tabs>

- Response of above cURL will be a **JSON** object containing the `App URL` of the format - ``lt://APP123456789123456789``

Expand Down Expand Up @@ -131,8 +163,9 @@ Shown below is the response to the above cURL request.

## Deleting your Application

To delete your uploaded apps, run the below cURL command.
<Tabs className="docs__val">

<TabItem value="real" label="Real Device" default>
<div className="lambdatest__codeblock">
<CodeBlock className="language-bash">
{`curl --location --request DELETE "https://${ YOUR_LAMBDATEST_USERNAME()}:${ YOUR_LAMBDATEST_ACCESS_KEY()}@manual-api.lambdatest.com/app/delete" \
Expand All @@ -143,6 +176,22 @@ To delete your uploaded apps, run the below cURL command.
`}
</CodeBlock>
</div>
</TabItem>

<TabItem value="virtual" label="Virtual Device">
<div className="lambdatest__codeblock">
<CodeBlock className="language-bash">
{`curl --location --request DELETE "https://${ YOUR_LAMBDATEST_USERNAME()}:${ YOUR_LAMBDATEST_ACCESS_KEY()}@manual-api.lambdatest.com/app/delete" \
--header 'Content-Type: application/json' \
--data-raw '{
"appIds" : "APPID1,APPID2"
}'
`}
</CodeBlock>
</div>
</TabItem>

</Tabs>

Shown below is the response to the above cURL request.

Expand All @@ -154,13 +203,14 @@ Shown below is the response to the above cURL request.

## Processing check for your Application

To unlock features such as network logs, image injection, and screenshotunblock feature for your application, app needs to undergo a processing phase. This processing takes a few minutes after the application is uploaded. You can verify if the processing is complete before running your automation script using the following API.
<Tabs className="docs__val">

<TabItem value="real" label="Real Device" default>
<div className="lambdatest__codeblock">
<CodeBlock className="language-bash">
{`curl --location --request POST 'https://mobile-api.lambdatest.com/mobile-automation/api/v1/fetchpatchedapkurl' \
--header 'Authorization: Basic c2hhbnRhbnV3OkFPOEh3NHJtV2hxUlJZSVl3OEk1elMzajhCS0c2ZHl3SVBZeXNNSDJPakdtbFVheXZC' \
--header 'Content-Type: application/json' \y
--header 'Content-Type: application/json' \
--data-raw '{
"appId": "APP10160161171698993659206876",
"networkLogsEnabled": true,
Expand All @@ -169,6 +219,25 @@ To unlock features such as network logs, image injection, and screenshotunblock
}'`}
</CodeBlock>
</div>
</TabItem>

<TabItem value="virtual" label="Virtual Device">
<div className="lambdatest__codeblock">
<CodeBlock className="language-bash">
{`curl --location --request POST 'https://mobile-api.lambdatest.com/mobile-automation/api/v1/fetchpatchedapkurl/virtualDevice' \
--header 'Authorization: Basic c2hhbnRhbnV3OkFPOEh3NHJtV2hxUlJZSVl3OEk1elMzajhCS0c2ZHl3SVBZeXNNSDJPakdtbFVheXZC' \
--header 'Content-Type: application/json' \
--data-raw '{
"appId": "APP10160161171698993659206876",
"networkLogsEnabled": true,
"imageInjectionEnabled": true,
"screenshotUnblockEnabled": true
}'`}
</CodeBlock>
</div>
</TabItem>

</Tabs>

The payload allows you to check the processing status for specific features. If the **patched_url** is empty, the processing is still in progress. To check if the processing for image injection or screenshot unblock is complete, pass either **imageInjectionEnabled** or **screenshotUnblockEnabled** as `true` based on the feature you are testing.

Expand Down
20 changes: 19 additions & 1 deletion docs/application-setup-via-gui.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,11 @@ import TabItem from '@theme/TabItem';
import {YOUR_LAMBDATEST_USERNAME, YOUR_LAMBDATEST_ACCESS_KEY} from "@site/src/component/keys";
import CodeBlock from '@theme/CodeBlock';
import NewTag from '../src/component/newTag';
import RealDeviceTag from '../src/component/realDevice';
import VirtualDeviceTag from '../src/component/virtualDevice';

<RealDeviceTag value="Real Device" />
<VirtualDeviceTag value="Virtual Device" />

<script type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify({
Expand Down Expand Up @@ -57,13 +62,26 @@ Wait for the file to upload and process. A success message will indicate when yo

<img loading="lazy" src={require('../assets/images/appium-app/application/real-device-upload.gif').default} alt="Image" className="doc_img"/>


> Learn how to [Upload Apps on LambdaTest’s Real Device Cloud](/support/docs/upload-apps-on-real-device-cloud/) in detail.

:::info
- You can access the [**Virtual Device Dashboard**](https://app.lambdatest.com/console/realtime/app).
- For **Virtual Devices**, the steps remain identical to those for Real Devices.
- The only difference is that for **iOS applications**, you must upload a **.zip** file instead of an `.ipa` file, as simulators accept `.zip` format.
:::

## Automation Dashboard
- **Access the App Automation Dashboard :** Log in to your LambdaTest account and navigate to the [App Automation Dashboard](https://appautomation.lambdatest.com/build).
- **Upload the Application :** Click the Browse File button in the App tab under the Real Device or Virtual Device section. Select your application file from your local system:
- **Android :** Upload a `.aab` or `.apk` file.
- **iOS :** Upload an `.ipa` file.
- **Copy the App URL :** After uploading, an `app_url` will be generated (format: `"lt://<app_url>"`). Copy this app_url and use it in your test scripts to identify your application.

<img loading="lazy" src={require('../assets/images/appium-app/application/automation-upload.gif').default} alt="Image" className="doc_img"/>
<img loading="lazy" src={require('../assets/images/appium-app/application/automation-upload.gif').default} alt="Image" className="doc_img"/>


:::info
- The **App Automation Dashboard** supports both **Real** and **Virtual Devices**.
- To perform testing on Virtual Devices, simply select the **Virtual Device** option during upload — the rest of the flow remains identical.
:::
3 changes: 3 additions & 0 deletions docs/desired-capabilities-in-appium.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,9 @@ import {YOUR_LAMBDATEST_USERNAME, YOUR_LAMBDATEST_ACCESS_KEY} from "@site/src/co
import RealDeviceTag from '../src/component/realDevice';
import VirtualDeviceTag from '../src/component/virtualDevice';

<RealDeviceTag value="Real Device" />
<VirtualDeviceTag value="Virtual Device" />

<script type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify({
"@context": "https://schema.org",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ import TabItem from '@theme/TabItem';
})
}}
></script>
<RealDeviceTag value="Real Device" /> <VirtualDeviceTag value="Virtual Device" />
<RealDeviceTag value="Real Device" />
Flutter, an open-source UI toolkit created by Google, is a popular choice among developers to build natively compiled applications for mobile, web, and desktop from a single codebase. With Dart as its programming language, Flutter enables fast development of beautiful apps with a highly productive, extensible and open-source set of features.

In this guide, we will explore how to run your first Flutter Dart test on an Android device using the LambdaTest Real Device Cloud. By combining the capabilities of Flutter Dart and LambdaTest, you can ensure the proper functioning of your app across different devices and make your app more reliable and robust.
Expand Down
2 changes: 1 addition & 1 deletion docs/getting-started-with-flutter-dart-ios-automation.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ import VirtualDeviceTag from '../src/component/virtualDevice';
}}
></script>

<RealDeviceTag value="Real Device" /> <VirtualDeviceTag value="Virtual Device" />
<RealDeviceTag value="Real Device" />
Flutter, an open-source UI toolkit created by Google, is a popular choice among developers to build natively compiled applications for mobile, web, and desktop from a single codebase. With Dart as its programming language, Flutter enables fast development of beautiful apps with a highly productive, extensible and open-source set of features.

In this guide, we will explore how to run your first Flutter Dart test on an iOS device using the LambdaTest Real Device Cloud. By combining the capabilities of Flutter Dart and LambdaTest, you can ensure the proper functioning of your app across different devices and make your app more reliable and robust.
Expand Down
3 changes: 3 additions & 0 deletions docs/supported-appium-plugins.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,9 @@ slug: supported-appium-plugins/
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import NewTag from '../src/component/newTag';
import RealDeviceTag from '../src/component/realDevice';

<RealDeviceTag value="Real Device" />

<script type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify({
Expand Down
18 changes: 16 additions & 2 deletions docs/supported-appium-versions.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,11 @@ slug: supported-appium-versions/
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import NewTag from '../src/component/newTag';
import RealDeviceTag from '../src/component/realDevice';
import VirtualDeviceTag from '../src/component/virtualDevice';

<RealDeviceTag value="Real Device" />
<VirtualDeviceTag value="Virtual Device" />

<script type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify({
Expand Down Expand Up @@ -54,13 +59,22 @@ To configure the Appium version for your tests on LambdaTest, use the `appiumVer

| Platform Versions | Supported Versions | Default Version | Latest Version |
|-------------------|--------------------|-----------------|----------------|
| Android (All) | 1.21.0, 1.22.0, 1.22.3, 2.0.0, 2.1.3, 2.2.1, 2.3.0, 2.4.1, 2.5.4, 2.6.0, 2.10.3, 2.11.2, 2.11.4, 2.12.1 | 2.2.1 | 2.3.0 |
| Android (All) | 1.21.0, 1.22.0, 1.22.3, 2.0.0, 2.1.3, 2.2.1, 2.3.0, 2.4.1, 2.5.4, 2.6.0, 2.10.3, 2.11.2, 2.11.4, 2.12.1, 3.0.2 | 2.2.1 | 2.3.0 |
| iOS (12, 13, 14) | 1.22.3, 2.0.0, 2.1.3, 2.2.1 | 2.2.1 | 2.2.1 |
| iOS (15, 16, 17, 18) | 1.22.3, 2.0.0, 2.1.3, 2.2.1, 2.3.0, 2.4.1, 2.5.4, 2.6.0, 2.10.3, 2.11.2, 2.11.4, 2.12.1 | 2.2.1 | 2.3.0 |
| iOS (15, 16, 17, 18) | 1.22.3, 2.0.0, 2.1.3, 2.2.1, 2.3.0, 2.4.1, 2.5.4, 2.6.0, 2.10.3, 2.11.2, 2.11.4, 2.12.1, 3.0.2 | 2.2.1 | 2.3.0 |
| fireos | 1.21.0, 1.22.0, 1.22.3, 2.0.0, 2.1.3, 2.2.1, 2.3.0 | 2.2.1 | 2.3.0 |
| tvos | 1.22.3, 2.2.1 | 1.22.3 | 1.22.3 |

:::info

**For Virtual Devices:**
- LambdaTest currently supports the following Appium versions:
- **Android Devices:** `1.21.0`, `1.22.3`, `2.0.0`, `2.1.3`, `2.16.2`
- **iOS Devices:** `1.22.3`, `2.0.0`, `2.1.3`, `2.16.2`
- We also provide Support for Appium 3.0.2
- **Android Devices:** `13`, `15`, `16`
- **iOS Devices:** `16`, `17`, `18`, `26`
:::
**Java Example:**
```java
// Java code for configuring Appium version in tests on LambdaTest
Expand Down
5 changes: 4 additions & 1 deletion docs/supported-timezone.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ slug: supported-timezone/

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({
Expand All @@ -47,7 +49,8 @@ import TabItem from '@theme/TabItem';
></script>

# Setting up timezone on Real Devices

<RealDeviceTag value="Real Device" />
<VirtualDeviceTag value="Virtual Device" />
In automated testing with Appium on LambdaTest, configuring the timezone accurately is crucial for precise testing scenarios. LambdaTest provides support for various timezones, allowing users to customize their testing environments to meet specific requirements.

By default, the timezone for Appium testing on LambdaTest is selected based on the device's default settings. However, users have the flexibility to explicitly specify the timezone using the **timezone** capability in their desired capabilities.
Expand Down
Loading