Before you get started, make sure you have installed the following:
The starting point is
LocalSelenium.java, a short Java script with Maven dependencies. The
pom.xml file is institutional here because it holds all configurations and dependencies. In its initial state, the file is very simple.
Note: We have simplified the script intentionally. It only serves the purpose of showing you how to connect to Perfecto.
The script accesses the Perfecto website and verifies the title.
To get started:
libsfolder of the project and update the
LocalSelenium.javaproject as TestNG Test.
In this step, we update the
pom.xml file with the required Perfecto dependencies and modify the script from Step 1 to add in security information, the Perfecto cloud name, driver details, Smart Reporting information, and test data. We also want to make sure that the script exits gracefully.
The updated script is called
PerfectoSelenium.java. The following procedure walks you through the configuration.
Expand a step to view its content.
Copy the dependencies in the
Generate your security token through the Perfecto UI. Then define your security token as a system variable called
This is the recommended way of including the security token, but you can also pass your security token from Maven or any CI tool, such as Jenkins, by passing the
Use capabilities to select a device from the Perfecto lab. You can be as generic or specific as needed. In our script, we have only included the
You can use the Manual Testing view in the Perfecto UI to generate a code snippet with device-specific capabilities that you can then copy-paste into your script.
To generate capabilities (for mobile or web devices) through the Perfecto UI:
As part of creating an instance of the RemoteWebDriver, you need to supply the URL of your Perfecto cloud. Define the name of your Perfecto cloud as a system variable by passing your cloud name as a
The general structure of the URL string is as follows:
Here are the respective lines from our sample script:
To get the most out of running your test in Perfecto, you need to create an instance of the Smart Reporting client (ReportiumClient). This will allow you to later retrieve and analyze the test report. The reporting client is responsible for gathering basic information about the test and transmitting it to the Smart Reporting system.
In our script, we show how to use the ReportiumClientFactory class' createPerfectoReportiumClient() method. Use the PerfectoExecutionContext class to supply the link to the factory class creating the client instance. Use the withWebDriver() method to supply the link of the driver instance.
Use the build() method to create the context object's instance and supply this to the createPerfectoReportiumClient() method when creating the ReportiumClient instance.
In addition to supplying the driver link, the context supports optional settings, such as adding:
Replace the existing test code in the
In our example, the test is separated into logical groupings of actions as logical steps. Each step is labeled and appears in the Execution Report together with the component actions. The beginning of each logical step is indicated with the stepStart() method,
To end the test, supply an indication of the final outcome of the test by generating a TestResult instance.
In our example, the createSuccess method notifies the reporting server that the test resulted in a successful status. The createFailure method notifies the reporting server that the test resulted in an unsuccessful status and supports adding a notification message that is displayed in the test report. Our script also provides a failure reason, but this is optional. To learn more about failure reasons in reporting, see Work with failure reasons.
Last, make sure to close and quit the RemoteWebDriver and retrieve the Smart Reporting URL for the generated test report.
Also in this section: