Robot Framework [Python]
AIO Tests supports importing Robot results through its support for JUnit reports. Robot Framework, an open-source automation framework, is a widely popular framework. It uses the keyword-driven testing technique approach and test cases are written in a tabular format. Several output files are created when tests are executed in Robot, one of them is an xUnit-compatible report.
The JUnit XML file can then be imported into AIO Tests, to report results from Robot runs to AIO Tests. This document provides an overview of how you can generate the Junit report from Robot runs and upload it to AIO Tests. The demo example is based on SeleniumLibrary, which is a web testing library for Robot Framework that utilizes the Selenium Webdriver tool internally
In this documentation, you’ll understand:
Required Robot + Webdriver Setup
pip install robotframework
pip install --upgrade robotframework-seleniumlibrary
Install the browser driver and set it in PATH OR
pip install webdrivermanager
Mapping Cases with AIO Tests
The below is just a sample test file, which opens Google and queries for a topic.
AIO Tests supports creating tests using the reports as well as mapping existing cases.
Mapping Existing AIO Tests to Automated Robot Tests
AIO Tests generates a unique key for each test created in AIO Test, for example, SCRUM-TC-1. To map an automated case to an existing AIO Test, the test name can take the test case key generated in its description. e.g.AT-TC-299: Login with existing user
.
In the example below, one existing AIO Test has been mapped to a Robot test.
*** Settings ***
Documentation Simple AIO Test Integration example using SeleniumLibrary.
Library SeleniumLibrary
*** Variables ***
${LOGIN URL} https://yourcompany.atlassian.net
${BROWSER} Chrome
${VALID USERNAME} yourusername
${VALID PASSWORD} yourpassword
${INVALID USERNAME} nothing@noasdf.com
*** Test Cases ***
AT-TC-299 Login with existing user
Open Browser To Jira Login Page
Input Text id:username ${VALID USERNAME}
Click Button id:login-submit
Wait Until Element is Visible id:password
Input Password id:password ${VALID PASSWORD}
[Teardown] Close Browser
Login with user not existing
Open Browser To Jira Login Page
Input Text id:username ${INVALID USERNAME}
Click Button id:login-submit
Wait Until Element is Visible id:displayName1
[Teardown] Close Browser
*** Keywords ***
Open Browser To Jira Login Page
Open Browser ${LOGIN URL} ${BROWSER}
This would pull AT-TC-299 in the execution cycle and mark the result AT-TC-299 as passed i.e.
”Login with existing user
” against AT-TC-299.
Creating New Cases in AIO Tests from Automated Robot Tests
If no new key is specified in the spec, then new cases can be created using the results of the tests.
In the above code example, the second test has no key mapped and hence this would create a new test in AIO Tests.
While importing results, if the Create New Case selection is true, then AIO Tests will use the classname.methodname
e.g. in the above case, from the Junit results file as a unique automation key to identify the test to AIO Tests.
In the above example, second test would be created with
Test1.Login with user not existing.
AIO Tests key would still be generated of the format SCRUM-TC-xyz, which can then be added to the test name. This would ensure that changes to the description do not end up creating cases where new cases were not intended.
Configuration and Running ROBOT tests with the Junit option
Since Robot has added native support for JUnit, no new dependencies need to be added to generate the JUnit report. Tests can be triggered as below with the -x option and the name, that you would like for your results file
robot -x junitresult.xml tests/test1.robot
Sample report file
The spec file runs and generates a test-output file under the results folder. A sample JUnit results file looks like below:
<?xml version="1.0" encoding="UTF-8"?>
<testsuite tests="2" errors="0" name="Test1" skipped="0" time="16.137" failures="1">
<testcase classname="Test1" name="AT-TC-299 Login with existing user" time="5.228">
</testcase>
<testcase classname="Test1" name="Login with user not existing" time="10.713">
<failure message="Element 'id:displayName1' not visible after 5 seconds." type="AssertionError"></failure>
</testcase>
</testsuite>
Importing Results
Post execution of a JUnit suite, the TEST-<xxx>.xml file can be uploaded either via
AIO Tests REST API calls using multipart form data to upload file
Please follow the above links to continue to import results using either of the options.
Importing the above file will mark AT-TC-299 as Passed in the cycle.
A new case would be created with the title Login with user not existing
and added to the cycle with a result of Failed.
For further queries and suggestions, feel free to reach out to our customer support via help@aiotests.com.