pip install testit-adapter-robotframework
| Description | File property | Environment variable | CLI argument |
|---|---|---|---|
| Location of the TMS instance | url | TMS_URL | tmsUrl |
| API secret key How to getting API secret key? | privateToken | TMS_PRIVATE_TOKEN | tmsPrivateToken |
| ID of project in TMS instance How to getting project ID? | projectId | TMS_PROJECT_ID | tmsProjectId |
| ID of configuration in TMS instance How to getting configuration ID? | configurationId | TMS_CONFIGURATION_ID | tmsConfigurationId |
| ID of the created test run in TMS instance. It's necessary for adapterMode 0 or 1 |
testRunId | TMS_TEST_RUN_ID | tmsTestRunId |
| Parameter for specifying the name of test run in TMS instance (It's optional). If it is not provided, it is created automatically | testRunName | TMS_TEST_RUN_NAME | tmsTestRunName |
| Adapter mode. Default value - 0. The adapter supports following modes: 0 - in this mode, the adapter filters tests by test run ID and configuration ID, and sends the results to the test run 1 - in this mode, the adapter sends all results to the test run without filtering or with filtering CLI 2 - in this mode, the adapter creates a new test run and sends results to the new test run |
adapterMode | TMS_ADAPTER_MODE | tmsAdapterMode |
| It enables/disables certificate validation (It's optional). Default value - true | certValidation | TMS_CERT_VALIDATION | tmsCertValidation |
| Mode of automatic creation test cases (It's optional). Default value - false. The adapter supports following modes: true - in this mode, the adapter will create a test case linked to the created autotest (not to the updated autotest) false - in this mode, the adapter will not create a test case |
automaticCreationTestCases | TMS_AUTOMATIC_CREATION_TEST_CASES | tmsAutomaticCreationTestCases |
| Mode of automatic updation links to test cases (It's optional). Default value - false. The adapter supports following modes: true - in this mode, the adapter will update links to test cases false - in this mode, the adapter will not update link to test cases |
automaticUpdationLinksToTestCases | TMS_AUTOMATIC_UPDATION_LINKS_TO_TEST_CASES | tmsAutomaticUpdationLinksToTestCases |
| Mode of import type selection when launching autotests (It's optional). Default value - true. The adapter supports following modes: true - in this mode, the adapter will create/update each autotest in real time false - in this mode, the adapter will create/update multiple autotests |
importRealtime | TMS_IMPORT_REALTIME | tmsImportRealtime |
| Url of proxy server (It's optional) | tmsProxy | TMS_PROXY | tmsProxy |
| Name (including extension) of the configuration file If it is not provided, it is used default file name (It's optional) | - | TMS_CONFIG_FILE | tmsConfigFile |
| Sync storage port (It's optional, 49152 by default) | syncStoragePort | TMS_SYNC_STORAGE_PORT | syncStoragePort |
Add [testit] block to your pyproject.toml or create connection_config.ini file in the root directory of the project:
[testit]
URL = URL
privateToken = USER_PRIVATE_TOKEN
projectId = PROJECT_ID
configurationId = CONFIGURATION_ID
testRunId = TEST_RUN_ID
testRunName = TEST_RUN_NAME
adapterMode = ADAPTER_MODE
certValidation = CERT_VALIDATION
automaticCreationTestCases = AUTOMATIC_CREATION_TEST_CASES
automaticUpdationLinksToTestCases = AUTOMATIC_UPDATION_LINKS_TO_TEST_CASES
importRealtime = IMPORT_REALTIME
# This section are optional. It enables debug mode.
[debug]
tmsProxy = TMS_PROXY
Launch with a pyproject.toml or connection_config.ini file in the root directory of the project:
$ robot -v testit TEST_DIRECTORY
Launch with command-line parameters (parameters are case-insensitive):
$ robot -v testit -v tmsUrl:URL -v tmsPrivateToken:USER_PRIVATE_TOKEN -v tmsProjectId:PROJECT_ID -v tmsConfigurationId:CONFIGURATION_ID -v tmsTestRunId:TEST_RUN_ID -v tmsTestRunName:TEST_RUN_NAME -v tmsAdapterMode:ADAPTER_MODE -v tmsProxy:'{"http":"http://localhost:8888","https":"http://localhost:8888"}' -v tmsConfigFile:<optional file> -v tmsCertValidation:CERT_VALIDATION -v tmsAutomaticCreationTestCases:AUTOMATIC_CREATION_TEST_CASES -v tmsAutomaticUpdationLinksToTestCases:AUTOMATIC_UPDATION_LINKS_TO_TEST_CASES -v tmsImportRealtime:IMPORT_REALTIME TEST_DIRECTORY
If you want to enable debug mode then see How to enable debug logging?
To create filter by autotests you can use the Test IT CLI (use adapterMode 1 for run with filter):
$ export TMS_TOKEN=<YOUR_TOKEN>
$ testit autotests_filter
--url https://tms.testit.software \
--configuration-id 5236eb3f-7c05-46f9-a609-dc0278896464 \
--testrun-id 6d4ac4b7-dd67-4805-b879-18da0b89d4a8 \
--framework robotframework \
--output tmp/filter.txt
$ robot -v testit -v tmsTestRunId:6d4ac4b7-dd67-4805-b879-18da0b89d4a8 -v tmsAdapterMode:1 $(cat tmp/filter.txt) TEST_DIRECTORY
Tags can be used to specify information about autotest. Tags are space sensitive, use only one space between words.
Description of tags:
testit.workItemsId- a method that links autotests with manual tests. Receives the array of manual tests' IDstestit.displayName- internal autotest name (used in Test IT)testit.externalId- unique internal autotest ID (used in Test IT)testit.title- autotest name specified in the autotest card. If not specified, the name from the displayName method is usedtestit.description- autotest description specified in the autotest cardtestit.links- links listed in the autotest cardtestit.labels- labels listed in the autotest cardtestit.tags- tags listed in the autotest cardtestit.nameSpace- directory in the TMS system (default - file's name of test)testit.className- subdirectory in the TMS system (default - class's name of test)
Description of scenario methods:
Add Links- links in the autotest resultAdd Link- add one link in the autotest resultAdd Attachments- uploading files in the autotest resultAdd Attachment- upload given content with given filename in the autotest resultAdd Message- information about autotest in the autotest result
Description of methods:
testit.addWorkItemIds- a dynamic method that links autotests with manual tests. Receives the array of manual tests' IDstestit.addDisplayName- a dynamic method for adding internal autotest name (used in Test IT)testit.addExternalId- a dynamic method for adding unique internal autotest ID (used in Test IT)testit.addTitle- a dynamic method for adding autotest name specified in the autotest card. If not specified, the name from the displayName method is usedtestit.addDescription- a dynamic method for adding autotest description specified in the autotest cardtestit.addLabels- a dynamic method for adding labels listed in the autotest cardtestit.addTags- a dynamic method for adding tags listed in the autotest cardtestit.addLinks- links in the autotest resulttestit.addAttachments- uploading files in the autotest resulttestit.addMessage- information about autotest in the autotest resulttestit.addNameSpace- a dynamic method for adding directory in the TMS system (default - file's name of test)testit.addClassName- a dynamic method for adding subdirectory in the TMS system (default - class's name of test)testit.addParameter- a dynamic method for adding parameter in the autotest resulttestit.step- usage in the "with" construct to designation a step in the body of the test
You can also run your test in parallel with Pabot.
$ pabot --pabotlib -v testit <test directory>
All other settings are the same as for standard execution.
*** Settings ***
Documentation Main Suite with examples
Library testit_adapter_robotframework.TMSLibrary
*** Variables ***
&{SIMPLE_LINK} url=http://google.com
&{FULL_LINK} url=http://google.co.uk title=Google type=Related description=just a link
@{LINKS} ${SIMPLE_LINK} ${FULL_LINK}
*** Test Cases ***
Simple Test
[Setup] Setup
Do Something
Do Another Thing
Log I'am a step
[Teardown] Teardown
Simple Test with link as variable
[Tags] testit.links:${SIMPLE_LINK}
[Setup] Setup
Do Something
Do Another Thing
Log I'am a step
[Teardown] Teardown
Simple Test with link as dict
[Tags] testit.links:${{{'url': 'http://google.com', 'type':'Issue'}}}
[Setup] Setup
Do Something
Do Another Thing
Log I'am a step
[Teardown] Teardown
Simple Test with WorkitemId as string
[Tags] testit.workitemsID:123
[Setup] Setup
Do Something
Do Another Thing
Log I'am a step
[Teardown] Teardown
Simple Test with WorkitemId as list
[Tags] testit.workitemsID:${{[123, '456']}}
[Setup] Setup
Do Something
Do Another Thing
Log I'am a step
[Teardown] Teardown
Simple Test with Title or Description or DisplayName with simple formatting
[Documentation] Tags are space sensitive, use only one space between words
[Tags] testit.displayName:This works testit.title:'This also works'
... testit.description:"This works too"
[Setup] Setup
Do Something
Do Another Thing
Log I'am a step
[Teardown] Teardown
Test With All Params
[Documentation] It's better to use this kind of formatting for different data types in tags
[Tags] testit.externalID:123 testit.title:${{'Different title'}} testit.displayName:${{'Different name'}}
... testit.description:${{'Different description'}} testit.workitemsID:${{[123, '456']}}
... testit.links:${{{'url': 'http://google.com', 'type':'Issue'}}} testit.labels:${{['smoke', 'lol']}}
[Setup] Setup
Log Something
Log Another
[Teardown] Teardown
Test With Add Link
[Setup] Setup
Do Something
Do Another Thing
Add Links @{LINKS}
# You can also add one link (default type is Defect)
Add Link http://ya.ru
Add Link http://ya.ru type=Issue
Add Link ${SIMPLE_LINK}[url]
[Teardown] Teardown
Test With Add Attachment
[Setup] Setup
Do Something
Do Another Thing
${V} Get Variables
Add Attachment '${V}' file.txt
Add Attachments images/banner.png images/icon.png
[Teardown] Teardown
Test With Add Message
[Setup] Setup
Do Something
Do Another Thing
Add Message Wow, it's my error message!
Fail
[Teardown] TeardownWarning
When linking a parameterized autotest to a parameterized test case, please consider the problematic points:
- In TMS test cases have a table with parameters, but autotests do not. They are not equal entities, so there may be incompatibility in terms of parameters
- Running a parameterized test case, TMS expects the results of all related autotests with all the parameters specified in the test case table
- In TMS, the parameters are limited to the string type, so the adapter transmits absolutely all the autotest parameters as a string. This implies the following problematic point for the test case table
- TMS expects a complete textual match of the name and value of the parameters of the test case table with the autotest parameters
*** Variables ***
${NUMBER} 1
${VALUE} String01
Parametrized test success
[Tags] testit.externalID:parametrized_test_${NUMBER}_${VALUE}_success
... testit.displayName:parametrized_test_${NUMBER}_${VALUE}_success_display_name
... testit.title:parametrized_test_${NUMBER}_${VALUE}_success_title
... testit.description:parametrized_test_${NUMBER}_${VALUE}_success
Get Parameters ${NUMBER} ${VALUE}
Return TrueYou can help to develop the project. Any contributions are greatly appreciated.
- If you have suggestions for adding or removing projects, feel free to open an issue to discuss it, or directly create a pull request after you edit the README.md file with necessary changes.
- Please make sure you check your spelling and grammar.
- Create individual PR for each suggestion.
- Please also read through the Code Of Conduct before posting your first idea as well.
Distributed under the Apache-2.0 License. See LICENSE for more information.
