diff --git a/SUMMARY.md b/SUMMARY.md index 6cdcc24..6cf3488 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -7,12 +7,6 @@ * [Run a test](getting-started/running-tests.md) * [Share test reports](getting-started/share-test-reports.md) -## Core Concepts - -* [Cross Browser Testing](/core-concepts/cross-browser-testing.md) -* [How Targeting Works in UIlicious](core-concepts/how-targeting-works-in-uilicious.md) -* [Automatic waits](core-concepts/automatic-waits.md) - ## How to Guides * Running a test @@ -35,16 +29,26 @@ * [Auto-commits using Github Actions](/how-to-guides/github/saving-projects-to-github.html#auto-commits-using-github-actions) * [Running tests using Github Actions](how-to-guides/github/running-tests-using-github-actions.md) +## Core Concepts + +* [Cross Browser Testing](/core-concepts/cross-browser-testing.md) +* [How Targeting Works in UIlicious](core-concepts/how-targeting-works-in-uilicious.md) +* [Automatic waits](core-concepts/automatic-waits.md) + +## Network Access + +* [Uilicious IP address ranges](reference/configurations/cloud-ip-list.md) + ## Test Scripting Tutorials * [How to test Slider Components](test-scripting-tutorials/testing-slider-components.md) * [How to test iFrames](test-scripting-tutorials/testing-iframes.md) * [How to test Browser Alerts](test-scripting-tutorials/testing-browser-alerts.md) +* How to test 2FA Logins + * [Generating time-based OTPs](plugins/topt-plugin.md) ## Test Commands * [List of commands](reference/commands-list.md) -* Configurations - * [Uilicious IP List](reference/configurations/cloud-ip-list.md) * Page Navigation * [Go to a URL](reference/page-navigation/go-to-a-url.md) * [Refresh / Reload Page](reference/page-navigation/refresh-page.md) @@ -83,10 +87,7 @@ * [Making HTTP Requests](reference/making-http-requests.md) * [Handling downloaded files](reference/handling-downloaded-files.md) * [Taking Screenshots](reference/taking-screenshots.md) -* Custom Reporting - * [Info Logs](reference/custom-reporting/info-logs.md) - * [Success status Logs](reference/custom-reporting/success-status-logs.md) - * [Failure status Logs](reference/custom-reporting/failure-status-logs.md) +* [Custom Reporting](reference/custom-reporting/custom-logs.md) * Dynamic Test Data * [Load test data from File](reference/dynamic-test-data/load-test-data-from-file.md) * [Generate Sample Data](reference/dynamic-test-data/generate-sample-data.md) diff --git a/netlify-dist/_redirects_base b/netlify-dist/_redirects_base index b1d34d4..ba28923 100644 --- a/netlify-dist/_redirects_base +++ b/netlify-dist/_redirects_base @@ -10,8 +10,12 @@ /v3 /v3/ 302 /index.html /v3/ 302 +# Redirect specific /v3 pages +/v3/reference/custom-reporting/info-logs.html /v3/reference/custom-reporting/custom-logs.html 302 +/v3/reference/custom-reporting/failure-status-logs.html /v3/reference/custom-reporting/custom-logs.html 302 +/v3/reference/custom-reporting/success-status-logs.html /v3/reference/custom-reporting/custom-logs.html 302 + # Redirecting /v1/ URL /v1 https://docs-v1.uilicious.com/ 302 /v1/ https://docs-v1.uilicious.com/ 302 -/v1/* https://docs-v1.uilicious.com/:splat 302 - +/v1/* https://docs-v1.uilicious.com/:splat 302 \ No newline at end of file diff --git a/reference/commands-list.md b/reference/commands-list.md index 9ad0ad8..eeaae96 100644 --- a/reference/commands-list.md +++ b/reference/commands-list.md @@ -179,9 +179,10 @@ description: A list of all commands available in UIlicious | Command | Description | | -------------------------------------------------------------------------- | ------------------------------------------ | -| [`TEST.log.info`](./custom-reporting/info-logs.html#testloginfo) | Log a message to report | -| [`TEST.log.pass`](./custom-reporting/success-status-logs.html#testlogpass) | Log a message to report with `pass` status | -| [`TEST.log.fail`](./custom-reporting/failure-status-logs.html#testlogfail) | Log a message to report with `fail` status | +| [`TEST.log.info`](./custom-reporting/custom-logs.md) | Print an informational message to the test report | +| [`TEST.log.pass`](./custom-reporting/custom-logs.md) | Print a message to the test report, with a **success** status | +| [`TEST.log.fail`](./custom-reporting/custom-logs.md) | Print a message to the test report, with a **failure** status | +| [`TEST.assert`](./custom-reporting/custom-logs.md) | Validates a `condition`, and prints a message to the test report, with a **success** or **failure** status depending whether `condition` returns true or false. | ## Limiting Test Scope diff --git a/reference/configurations/cloud-ip-list.md b/reference/configurations/cloud-ip-list.md index 660b1dd..fb9306e 100644 --- a/reference/configurations/cloud-ip-list.md +++ b/reference/configurations/cloud-ip-list.md @@ -1,15 +1,17 @@ --- # Write a short description about the page. This will be displayed on google search results. -description: List of IP that UIlicious uses when running tests. +description: List of IP to whitelist that UIlicious uses when running tests. --- -# Uilicious Cloud IP List +# Whitelisting IP addresses for UI-licious Cross-Browser Testing {% hint style="info" %} -**Good to know:** This is applicable only to UI-licious Cloud users. If you are using UI-licious On Premise, please check with your System Administrator. +This guide is only for UI-licious cloud customer. If you are using a self-hosted installation of UI-licious, please contact your system administrator. {% endhint %} -If you want to filter traffic from the UI-licious test servers (e.g. to disabling Sign In 2FA, or to exclude UI-licious traffic from analytics), here are the list of static IP addresses that UI-licious will run your tests from: +If you are using UI-licious for cross-browser testing, you may need to whitelist our IP addresses to ensure the test browsers can access your application, or to to disable ReCapcha, Two-Factor Authentication (2FA), or analytics specifically for traffic originating from the UI-licious testing grid. + +Here's the list of static IP addresses from which UI-licious will run your tests: ``` 104.248.143.86 @@ -31,3 +33,12 @@ If you want to filter traffic from the UI-licious test servers (e.g. to disablin 188.166.156.193 64.227.33.68 ``` + +## Troubleshooting: 502 Bad Gateway Errors + +If you encounter **502 Bad Gateway** errors when the test browser attempts to navigate to your application, it could indicate that the application is inaccessible due to network restrictions. To resolve this: + +1. **Check Network Access Rules**: If your website is behind a firewall, ensure that the IP addresses provided are whitelisted in your network access rules. +2. **Check Public Accessibility**: If your website is not behind a firewall, check that your website is publicly accessible on the internet. + +If the 502 errors persist even after whitelisting the IP addresses or if your website is publicly accessible, please contact [our support team](mailto:support@uilicious.com) for further assistance. diff --git a/reference/custom-reporting/custom-logs.md b/reference/custom-reporting/custom-logs.md new file mode 100644 index 0000000..b6f1ecb --- /dev/null +++ b/reference/custom-reporting/custom-logs.md @@ -0,0 +1,79 @@ +--- +# Write a short description about the page. This will be displayed on google search results. +description: Learn how to print custom information or validation messages to the UI-licious test report. +--- + +# Custom validation and log messages + +This article covers commands that allow you to print custom informational or validation messages to the test report. + +Thera are 4 useful commands for printing custom messages: +- `TEST.log.info` - Print an information message to the test report +- `TEST.log.pass` - Print a message to the test report, with a **success** status +- `TEST.log.fail` - Print a message to the test report, with a **failure** status, causing the whole test run to fail +- `TEST.assert` - Checks a condition, and prints either a **success** or **failure** status message depending on the condition + +## Usage + +```javascript +// TEST.log methods accept a single parameter: +// - message: the message to print to the test report +TEST.log.info(message) +TEST.log.pass(message) +TEST.log.fail(message) + +// TEST.assert accept two parameters: +// - condition : condition to validate, this should be an expression that evaluates to a boolean value +// - message: the validation message to print to the test report +// - errorMessage: (optional) the error message to print if the condition fails +TEST.assert(condition, message) +TEST.assert(condition, message, errorMessage) +``` + +## Using TEST.log for custom logging + +Here's an example showing how custom logs can be used to perform custom validation. + +```javascript +TEST.log.info("Test Case #102 : Catalog should show at least 10 products") + +let count = I.getCount(".product-card") + +if (count >= 10) { + TEST.log.pass("Catalog has at least 10 products.") +} else { + TEST.log.fail("Catalog has less than 10 products!") +} +``` + +In this example above, the test script uses `TEST.log.info` to print a reference to a test case number. It then counts the number of `.product-card` elements on the page, validates if there is at least 10 elements, and prints either a success or failure message using `TEST.log.pass` and `TEST.log.fail` respectively. + + +{% tabs %} +{% tab title="Demo" %} + + +[View source](https://snippet.uilicious.com/test/public/LTXpHdGsnScXhi8EiKqN9a?step=5) +{% endtab %} +{% endtabs %} + + +## Using TEST.assert for custom validation and logging + +This previous test script can be simplified using the `TEST.assert` command to replace the if-else block: + +```javascript +TEST.log.info("Test Case #102 : Catalog should show at least 10 products") + +let count = I.getCount(".product-card") + +TEST.assert(count >= 10, "Catalog has at least 10 products.", "Found only " + count + "products in the catalog") +``` + +{% tabs %} +{% tab title="Demo" %} + + +[View source](https://snippet.uilicious.com/test/public/AE3iRxPSQNQw7Jw5HAWZqa?step=7) +{% endtab %} +{% endtabs %} \ No newline at end of file diff --git a/reference/custom-reporting/failure-status-logs.md b/reference/custom-reporting/failure-status-logs.md index 34bb534..67ad8a0 100644 --- a/reference/custom-reporting/failure-status-logs.md +++ b/reference/custom-reporting/failure-status-logs.md @@ -3,30 +3,8 @@ description: Learn how to use the TEST.log.fail command to log a failing custom report in your UIlicious test. --- -# Failure status Logs + # Failure status logs -Log a message to report with `fail` status using `TEST.log.fail`. This adds to the error count and will result in the overall test failing. - -## Example - -```javascript -if(I.amAt('/notFound')){ - TEST.log.fail("Product page is unavailable") -} -``` - -If the current url is at `/notFound`, prints "Product page is unavailable" to report as a failed validation. - -## Reference - -**Usage** - -```javascript -TEST.log.fail(message) -``` - -**Parameters** - -| Parameter | Type | Remarks | -| --------- | ------ | ------------------------ | -| message | string | Message to log to report | +{% hint style="info" %} +This page has been [moved](./custom-logs.md). +{% endhint %} \ No newline at end of file diff --git a/reference/custom-reporting/info-logs.md b/reference/custom-reporting/info-logs.md index b8c1346..e75f17e 100644 --- a/reference/custom-reporting/info-logs.md +++ b/reference/custom-reporting/info-logs.md @@ -5,41 +5,6 @@ description: Learn how to use the TEST.log.info command to log a custom report i # Info Logs -Log a message to report - -## Example - -{% tabs %} - -{% tab title="Example" %} - -```javascript -I.goTo("https://en.wikipedia.org/wiki/Main_Page") - -// extract text from the ID -var sampleInfo = I.getText("#Welcome_to_Wikipedia") -// Report the extracted text using TEST.log.info -TEST.log.info("The extracted text is: "+ sampleInfo) -``` - -Gets the text from the element with the id "Welcome_to_Wikipedia" and prints it to the report. - -{% endtab %} -{% tab title="Result" %} - - - -{% endtab %} -{% endtabs %} - -**Usage** - -```javascript -TEST.log.info(message) -``` - -**Parameters** - -| Parameter | Type | Remarks | -| --------- | ------ | ------------------------ | -| message | string | Message to log to report | +{% hint style="info" %} +This page has been [moved](./custom-logs.md). +{% endhint %} \ No newline at end of file diff --git a/reference/custom-reporting/success-status-logs.md b/reference/custom-reporting/success-status-logs.md index 7fbfe82..d83ccc3 100644 --- a/reference/custom-reporting/success-status-logs.md +++ b/reference/custom-reporting/success-status-logs.md @@ -5,35 +5,6 @@ description: Learn how to use the TEST.log.pass command to log a passing custom # Success status Logs -Log a message to report with `pass` status using `TEST.log.pass` command. - -## Example - -{% tabs %} - -{% tab title="Example" %} - -```javascript -I.click("Clear all") -var numTodos = I.getCount(".todo") -if(numTodos === 0){ - TEST.log.pass("No more todos!") -} -``` - -Clears all items in a todo list, and count the number of elements with the "todo" class. If there's no more todos, prints "No more todos!" as a passed validation. - -{% endtab %} -{% endtabs %} - -**Usage** - -```javascript -TEST.log.pass(message) -``` - -**Parameters** - -| Parameter | Type | Remarks | -| --------- | ------ | ------------------------ | -| message | string | Message to log to report | +{% hint style="info" %} +This page has been [moved](./custom-logs.md). +{% endhint %} \ No newline at end of file