@dbouckaert/zephyr-scale-cloud-reporter
Version:
ZH Cloud, or zephyr helpers is a Node JS framework that implements test suites with Zephyr scale for Jira. It uses a soft-assert function to absorb failing assertions and translate them to a true/false value.
101 lines (75 loc) • 3.81 kB
Markdown
## What is ZH Cloud?
ZH Cloud, or zephyr helpers is a Node JS framework that implements test suites with [Zephyr scale](https://marketplace.atlassian.com/apps/1213259/zephyr-scale-test-management-for-jira?tab=overview&hosting=cloud) for Jira.
It uses a soft-assert function to absorb failing assertions and translate them to a true/false value.
## Installing
[](https://badge.fury.io/js/@dbouckaert%2Fzh)
Install ZH Cloud for Mac, Linux, or Windows
```bash
npm install /zephyr-scale-cloud-reporter --save-dev
```
## License
[](https://github.com/cypress-io/cypress/blob/master/LICENSE)
This project is licensed under the terms of the [MIT license](/LICENSE).
## Getting started
Include the module into your test suite.
`const zh = require('/zephyr-scale-cloud-reporter')`
### Initiation
The first thing you'll want to do is to call the function `init()`
It populates the framework with critical information.
One option is to do this inside of the `before` block.
```js
before(async function () {
// FIRST: setting variables for zephyrHelpers (without the project ID)
await zephyrHelpers.init({
zephyrURL: 'https://<url.to.your.jira.env>',
jiraURL: 'https://<url.to.smartbear>',
zephyrApiToken: ,
jiraApiToken: ,
zephyrProjectKey: 'TEST01',
zephyrFolderName: 'My_test_cases',
environment: 'TEST4',
jiraDisplayName: 'My Name'
defaultJiraId: 'JIRAUSER123',
});
});
```
_Note: don't store clear text passwords in your repository._
### Example use case
Explenation:
There are 2 variables defined to store the result of the GET call: `payloadResult` & `responseCodeResult`.
A varable `testName` is created that holds the exact name of the test case in Zephyr Scale.
Another variable `testrunId` is being created, it's value is set by calling the function `createNewTestrun`, 2 parameters are passed (as an object):
- testcaseArray: the test case array (from our before block)
- name: the test case name
Then the REST call is executed, and afterwards (.then) the value of `payloadResult` & `responseCodeResult` are being set.
Using the `softAssert` method:
- `responseCodeResult` `softAssert.equals()` is comparing if two parameters are an exact match and returns `true` or `false`.
- `payloadResult` `softAssert.includes()` is checking if the value of parameter 'B' is included in parameter 'A' and returns `true` or `false`.
Next up: calling the `updateTestResult()` function. This sends the result over to Zephyr Scale, making it visible in the test case (tab executions).
Finally: calling the `softAssert.assertAll()` function. This function checks if any error were absorbed during the soft-asserts. If there are, the errors are logged in the console, and the test runner will mark the test as failed.
_**Note: your CI system will also mark the job/run as failed**_
```js
it('Call /users without authorisation header', async function () {
let payloadResult, responseCodeResult;
const testName = 'GET /users without authorisation header (Sad flow)';
await request(baseURL)
.get(
`/users?id=${getUser.id}&userIdentification=${getUser.userIdentification}&username=${getUser.username}`
)
.then((res) => {
responseCodeResult = zephyrHelpers.softAssert.equals(res.statusCode, 401);
payloadResult = zephyrHelpers.softAssert.includes(
res.body.error,
'Unauthorized'
);
});
zephyrHelpers.createNewTestExecution(
status,
env,
folderName,
testName,
testCycleName
);
await zephyrHelpers.softAssert.assertAll();
});
```