
* add checkNewBrokersTest * add manual cases and listeners * add manual cases and listeners * add manual cases and listeners * upd manual suite * upd listeners * add readme * upd template * upd naming * upd template * upd template * upd template * upd template * fix naming * fix MessagesTest * upd manual cases * upd comments
3.7 KiB
3.7 KiB
E2E integration with Qase.io TMS (for internal users)
Table of Contents
Intro
We're using Qase.io as TMS to keep test cases and accumulate test runs. Integration is set up through API using qase-api and qase-testng libraries.
Set up Qase integration
To set up integration locally add next VM option -DQASEIO_API_TOKEN='%s'
(add your Qase token instead of '%s') into your run configuration
Test case creation
All new test cases can be added into TMS by default if they have no QaseId and QaseTitle matching already existing
cases.
But to handle @Suite
and @Automation
we added custom QaseCreateListener. To create new test case for next sync with
Qase (see example kafka-ui-e2e-checks/src/test/java/com/provectus/kafka/ui/qaseSuite/Template.java
):
- Create new class in
kafka-ui-e2e-checks/src/test/java/com/provectus/kafka/ui/qaseSuite/suit
- Inherit it from
kafka-ui-e2e-checks/src/test/java/com/provectus/kafka/ui/qaseSuite/BaseQaseTest.java
- Create new test method with some name inside the class and annotate it with:
@Automation
(optional - Not automated by default) - to set one of automation states: NOT_AUTOMATED, TO_BE_AUTOMATED, AUTOMATED@QaseTitle
(required) - to set title for new test case and to check is there no existing cases with same title in Qase.io@Status
(optional - Draft by default) - to set one of case statuses: ACTUAL, DRAFT, DEPRECATED@Suite
(optional) - to store new case in some existing package need to set its id, otherwise case will be stored in the root@Test
(required) - annotation from TestNG to specify this method as test
- Create new private void step methods with some name inside the same class and annotate it with @io.qase.api.annotation.Step to specify this method as step.
- Use defined step methods inside created test method in concrete order
- If there are any additional cases to create you can repeat scenario in a new class
- There are two ways to sync newly created cases in the framework with Qase.io:
- sync can be performed locally - run new test classes with already [set up Qase.io integration](#Set up Qase.io integration)
- also you can commit and push your changes, then run E2E Manual suite on your branch
- No test run in Qase.io will be created, new test case will be stored defined directory in project's repository
- To add expected results into created test case edit in Qase.io manually
Test run reporting
To handle manual test cases with status Skipped
we added custom QaseResultListener. To create new test run:
- All test methods should be annotated with actual
@QaseId
- There are two ways to sync newly created cases in the framework with Qase.io:
- run can be performed locally - run test classes (or suites) with
already [set up Qase.io integration](#Set up Qase.io integration), they will be labeled as
Automation CUSTOM suite
- also you can commit and push your changes, then run E2E Automation suite on your branch
- All new test runs will be added into project's test runs with corresponding label using QaseId to identify existing cases
- All test cases from manual suite are set up to have
Skipped
status in test runs to perform them manually