Get the environments for test results for specific releases
The following flow demonstrates how to get a list of test results for specific releases and environment categories. Examples of environment categories could be Application Under Test environments, browsers, or operating systems.
Entity relationship diagram
We need to access the following entities for this flow, and understand the relationships between these entities.
The following shows the relations in the flow.
Entity | Relationships in this flow | Description of relationship | Reference / relationship fields |
---|---|---|---|
Run | Taxonomy_Item_Node |
Each run is associated with 0 or more environments. The Taxonomy_Item_Node represents the types of environments, including browsers or operating systems. |
taxonomies |
Run | Release |
Each run must be associated with a release. |
release |
Release | Run | Releases can be associated with runs. | run |
Flow
Let's create the REST API call step-by-step.
-
We start with a basic query that lists all runs in the workspace, 1002.
GET .../api/shared_spaces/<space_id>/workspaces/<workspace_id>/runs
-
We now modify the API Call to only return certain fields using the fields parameter. In this case, we only want to see taxonomy field values.
GET .../api/shared_spaces/<space_id>/workspaces/<workspace_id>/runs?fields=taxonomies
-
Let's now start building our query_clause.
This query has two sets of criteria: The release, and the environments (taxonomies). We will separate each set with a semicolon (;), which represents the And operator.
In this step, we are only interested in the run results that are associated with releases that begin with "732.". This means releases 731 and lower will not be listed, and releases 733 and higher will not be listed. We use the release reference field using the name field to specify the release and the * wildcard symbol to accept multiple values.
GET .../api/shared_spaces/<space_id>/workspaces/<workspace_id>/runs?fields=taxonomies&query="release EQ {name EQ ^732.*^}"
-
We want to access only those runs with associated with specific environments. One of the available lists is taxonomies, and we want to compare the run's environment with the taxonomies list's value Chrome.
GET .../api/shared_spaces/<space_id>/workspaces/<workspace_id>/runs?fields=taxonomies&query="release EQ {name EQ ^732.*^};taxonomies EQ {name EQ ^Chrome^}"
The complete REST API call for this flow is:
GET .../api/shared_spaces/<space_id>/workspaces/<workspace_id>/runs?fields=taxonomies&query="release EQ {name EQ ^732.*^};taxonomies EQ {name EQ ^Chrome^}"
Javascript example
/** * Flow: How to get test results in a release filtered by an environment {AUT Env, Browser, or OS} * @param requestor */
function getTestResultsFilteredByEnvironment(requestor) { // change for correct release name var releaseName = '732.'; // environment taxonomy var browser = 'Chrome'; requestor.get('/runs?fields=taxonomies&query="release EQ {name EQ ^' + releaseName + '^};' + 'taxonomies EQ {name EQ ^' + browser + '^}"', function(error, message, runs) { console.info(runs); }); } exports.getTestResultsFilteredByEnvironment = getTestResultsFilteredByEnvironment;
See also: