Queries (QQL, Qase Query Language)
What are queries in software testing?
Queries help you make analytical requests to get specific data from your Qase projects.
Queries are available in Business and Enterprise subscriptions.
Queries are based on Qase Query Language (QQL). You can access Queries from the top-left menu.
From this page, you can manage saved queries and create new ones.
Saved Queries can be used with the QQL widget.
QQL widget allows you to leverage advanced query searches, and pin frequently used or preferred QQL searches to your dashboards to facilitate quicker and more comprehensive monitoring of testing activities.
Create a new query
You can click on either one of the two buttons to create a new query.
Here, you can: 1. Select the entity from the drop down
2. Write your query
3. Search the query
4. Save the query
5. Choose the fields to be displayed in the table.
QQL Structure
QQL consists of two parts: "Entity" + "Query". Both are required to perform a search.
Here are a few examples:
Entity can be selected from the drop-down, and Projects, by default, include all projects available to a user.
If your expression contains a syntax error, the erroneous element will be highlighted in red, as well as you will see a red "x" icon appearing in the expression field:
Entities
Below are the available entities. Click on an entity to skip to the attributes available for it.
Expressions
Currently, QQL supports seven expression types. They are listed here in the decreasing priority order:
Expression Type | Example |
---|---|
Parenthesis | |
Negation | |
Logical Expression | or |
Logical AND | |
Logical OR | |
Checking the attribute value | |
Sorting by field |
Supported operands:
Operand | Meaning | Works With |
< | less than | integer |
<= | less than or equal to | integer |
> | greater than | integer |
>= | greater than or equal to | integer |
=, is | equal to | integer, bool |
!= | not equal to | integer, bool |
~ | includes | string, text |
in | includes (array) | array |
not in | does not include (array) | array |
is empty | no value | |
is not empty | value exists |
Data types:
Data type | Possible values | Supported operands |
Integer | 110 | >, >=, <, <=, =, != |
String | Some text | ~ |
Boolean | True or False | is |
Array | ['value 1', 'value 2'] ; ('value 1', 'value 2') ; [ ] | in |
Null | null |
Functions:
Name | Return type | Arguments | Description |
---|---|---|---|
currentUser() | integer | - | Returns an ID of current user |
now() | integer | "+Nd" / "-Nd"- modifies returned value, adding/subtracting N days. In "+Nd", replace d with w for weeks; m for months.
| Returns current timestamp |
startOfDay() | integer | 'YYYY-mm-dd' - modifies returned value to the start of this input date.
| Returns timestamp of start of current day. |
startOfWeek() | integer | 'YYYY-mm-dd' - modifies returned value to the start of first day of the week (relative to the input date)
| Returns timestamp of start of current week. |
startOfMonth() | integer | 'YYYY-mm-dd' - modifies returned value to the start of first day of the month (relative to the input date)
| Returns timestamp of start of current Month. |
endOfDay() | integer | 'YYYY-mm-dd' - modifies returned value to the end of the input date.
| Returns timestamp of end of current day. |
endOfWeek() | integer | 'YYYY-mm-dd' - modifies returned value to the end of first day of the week (relative to the input date)
| Returns timestamp of end of current Week. |
endOfMonth() | integer | 'YYYY-mm-dd' - modifies returned value to the end of first day of the month (relative to the input date)
| Returns timestamp of end of current Month. |
Entity fields
Test case:
Attribute | Description | Examples |
identifier | ||
Test case title, Pre/postconditions, Description | ||
creator the test case. | ||
If a test case is created by a reporter app | Replace [name] with reporter name. Reporters: Playwright; cucumberjs; cypress; jest; newman; testcafe; cucumber3; cucumber4; cucumber5; junit4; jnuit5; testng; pytest; robotframework; xctest; phpunit; codeception. | |
Custom fields: a complex attribute with a specific syntax, see examples. | ||
Custom field values. (by all custom fields) | ||
Time of case creation | ||
The user who created the case | ||
Last modified date | ||
Check whether the case has been deleted or not | ||
Check whether the case has been flagged as flaky | ||
By default, search is performed across all projects. If required, you can specify a project code. | ||
Test case's suite title | ||
Test case's milestone title | ||
Test case's tags |
Defects:
Attribute | Description | Examples |
identifier | ||
Defect title | ||
Actual result | ||
Project | ||
Statuses open; resolved; in progress; invalid | ||
Severity undefined; blocker; critical; major; normal; minor; trivial | ||
The user who created the defect | ||
If a defect has been created by a reporter app | Replace [name] with reporter name. Reporters: Playwright; cucumberjs; cypress; jest; newman; testcafe; cucumber3; cucumber4; cucumber5; junit4; jnuit5; testng; pytest; robotframework; xctest; phpunit; codeception. | |
The user who created the defect | ||
Time of creation | ||
Time of update | ||
Time of resolution | ||
Whether the defect is deleted | ||
Whether the defect is resolved | ||
Defect's milestone title | ||
Custom field values (by all custom fields) | ||
Custom fields: a complex attribute with a specific syntax, see examples. | ||
Defect's tags |
Test run:
Attribute | Description | Examples |
Identifier | ||
Title | ||
Description | ||
Project | ||
Title of the plan used | ||
Status | ||
The user who created the run | ||
If a test run has been created by a reporter app | Replace [name] with reporter name. Reporters: Playwright; cucumberjs; cypress; jest; newman; testcafe; cucumber3; cucumber4; cucumber5; junit4; jnuit5; testng; pytest; robotframework; xctest; phpunit; codeception. | |
The user who created the run | ||
Time of start | ||
Time of finish | ||
Time of removal | ||
Whether the run is deleted | ||
Whether the run is started | ||
Whether the run is ended | ||
Whether the run has a public link | ||
Whether the run is automated | ||
Run's milestone title | ||
Custom field values (by all custom fields) | ||
Custom fields: a complex attribute with a specific syntax, see examples. | ||
Run's tags |
Test run results:
Attribute | Description | Examples |
Identifier | ||
Comment | ||
Test Run Result's case title | ||
Test Run title | ||
Project | ||
Status Passed; Failed; Blocked; Retest; Skipped; Deleted; In progress; Invalid | ||
The user who created the result | ||
If a test run result has been created by a reporter app | Replace [name] with reporter name. Reporters: Playwright; cucumberjs; cypress; jest; newman; testcafe; cucumber3; cucumber4; cucumber5; junit4; jnuit5; testng; pytest; robotframework; xctest; phpunit; codeception. | |
The user who created the run | ||
Time of finish | ||
Whether the result is deleted | ||
Time spent (in milliseconds) |
Test plan:
Attribute | Description | Examples |
Identifier | ||
Title | ||
Plan's description | ||
Project | ||
Time of creation | ||
Time of the last update | ||
Time of deletion | ||
Whether the plan is deleted |
Requirement:
Attribute | Description | Examples |
Identifier | ||
Parent requirement's title | ||
Project | ||
The user who created the requirement | ||
The user who created the requirement | ||
Title | ||
Description | ||
Status valid; draft; review; rework; finish; implemented; not-testable; obsolete. | ||
Type epic; user-story; feature. | ||
Time of creation | ||
Time of last update | ||
Time of deletion | ||
Whether the requirement is deleted |
Examples of Queries
Last updated