Queries (QQL, Qase Query Language)
Last updated
Last updated
Queries help you make analytical requests to get specific data from your Qase projects.
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.
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 consists of two parts: "Entity" + "Query". Both are required to perform a search.
Here are a few examples:
entity = "defect" and status = "open"
entity = "case" and project = "DEMO" and title ~ "auth" order by id desc
entity = "result" and status = "failed" and timeSpent > 5000 and
milestone ~ "Sprint 12"
entity = "case" and isFlaky = false and automation = "To be automated"
Below are the available entities. Click on an entity to skip to the attributes available for it.
Currently, QQL supports seven expression types. They are listed here in the decreasing priority order:
Parenthesis
Negation
Logical Expression
or
Logical AND
Logical OR
Checking the attribute value
Sorting by field
<
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
Integer
110
>, >=, <, <=, =, !=
String
Some text
~
Boolean
True or False
is
Array
['value 1', 'value 2'] ; ('value 1', 'value 2') ; [ ]
in
Null
null
currentUser()
integer
-
Returns an ID of current user
activeUsers()
integer
-
Returns IDs of all active users
inactiveUsers()
integer
-
Returns IDs of all inactive users
now()
integer
"+Nd" / "-Nd"- modifies returned value, adding/subtracting N days.
In "+Nd", replace d with ​ w for weeks; ​ m for months. ​
N must be an integer
Returns current timestamp
startOfDay()
integer
'YYYY-mm-dd' - modifies returned value to the start of this input date.
"+/-N[d/w/m]"
- modifies returned value by N days/weeks/months.
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)
"+/-N[d/w/m]"
- modifies returned value by N days/weeks/months.
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)
"+/-N[d/w/m]"
- modifies returned value by N days/weeks/months.
Returns timestamp of start of current Month.
endOfDay()
integer
'YYYY-mm-dd' - modifies returned value to the end of the input date.
"+/-N[d/w/m]"
- modifies returned value by N days/weeks/months.
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)
"+/-N[d/w/m]"
- modifies returned value by N days/weeks/months.
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)
"+/-N[d/w/m]"
- modifies returned value by N days/weeks/months.
Returns timestamp of end of current Month.
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
updatedBy
Last modified by user
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
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
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
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)
Identifier
Title
Plan's description
Project
Time of creation
Time of the last update
Time of deletion
Whether the plan is deleted
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
entity = "case" and isDeleted is true
entity = "case" and created >= now("-3d")
entity = "case" and created <= now("-3d")
entity = "case" and isDeleted is true and project in ["QTC"]
project = "QTC" and automation = "Not automated"
project = "MR" and automation != "Automated"
project = "QTC" and status in ["Draft", "Actual"]
entity = "defect" and status !="Open" and severity = "Not set"
entity = "defect" and status !=1 and severity = 0
entity = "defect" and status !=1 and severity = 0 and cfv in ["1", "2"]
entity = "defect" and status !="Open" and severity != "Not set" and milestone is empty
entity = "defect" and status !="Open" and severity != "Not set" and cf["Defect URL"] is not null
entity = "case" and author != "CEO" and updated <= now("-1d") and isFlaky is false
entity = "case" and author != "CEO" and updated <= now("-1d") and project in ('QA
( expression )
not expression
true
false
expression and expression
expression or expression
attribute operand value
ORDER BY field ASC/DESC
id
id = 17
id != 20
id is 17
id in [1, 2, 10]
not id in [1, 2, 10]
title
preconditions
postconditions
description
title is "first test"
title = "first test"
title ~ "rst"
title in ["first test", "second test"]
author
author in ["user1", "user2"]
author = "user1" [or]
author = "user2"
author = group('name') [or]
author in [group('name1'), group('name2')]
author = activeUsers() [or]
author = inactiveUsers()
author
author = [name]-reporter
Eg: author = pytest-reporter
cf
cf["Epic"] = "Auth"
cf["Story"] in ["Story 1", "Story 2"]
cf["Epic"] is null
cf["Story"] = ["Auth", "Login"]
cfv
cfv = "Auth"
cfv in ["Story 1", "Story 2"]
status
type
behavior
automation
layer
priority
severity
status is "Actual"
status = "Actual"
status != "Deprecated"
status in ["Draft", "Actual"]
created
created >= now("-14d")
created >= startOfDay("-1m")
created < 1569430502709
createdBy
createdBy in ["user1", "user2"]
createdBy = "user1" or createdBy = "user2"
updated
updated >= now("-7d")
updated >= startOfDay()
updated < 1569430502709
updatedBy = currentUser()
updatedBy = group('group name')
updatedBy = 'User A'
isDeleted
isDeleted is false
isDeleted = true
isFlaky
isFlaky is false
isFlaky = true
project
project = 'DEMO'
project in ['DEMO', 'QTC']
project not in ['DEMO']
suite
suite ~ 'auth'
suite != 'auth'
milestone
milestone = 'Sprint 24'
tags
tags not in ['tag','tag2']
id
id = 17
id != 20
id is 17
id in [1, 2, 10]
not id in [1, 2, 10]
title
title is "first test"
title = "first test"
title ~ "rst"
title in ["first test", "second test"]
actual_result
actual_result is "first"
actual_result = "first"
actual_result ~ "rst"
actual_result in ["first", "second"]
project
project = 'DEMO'
project in ['DEMO', 'QTC']
project not in ['DEMO']
status
status is "Open"
status = "Resolved"
status != "Invalid"
status in ["Open", "Invalid"]
severity
severity is "blocker"
severity = "blocker"
severity != "blocker"
severity in ["blocker", "critical"]
author
author in ["user1", "user2"]
author = "user1"
author
author = [name]-reporter
Eg: author = pytest-reporter
createdBy
createdBy in ["user1", "user2"]
createdBy = "user1" or createdBy = "user2"
created
created >= now("-14d")
created >= startOfDay("-1m")
created < 1569430502709
updated
updated >= now("-14d")
updated >= startOfDay("-1m")
updated < 1569430502709
resolved
resolved >= now("-14d")
resolved >= startOfDay("-1m")
resolved < 1569430502709
isDeleted
isDeleted is false
isDeleted = true
isResolved
isResolved is false
isResolved = true
milestone
milestone = 'Milestone title'
cfv
cfv = "Auth"
cfv in ["Story 1", "Story 2"]
cfv is empty
cf
cf["Epic"] = "Auth"
cf["Story"] in ["Story 1", "Story 2"]
cf["Epic"] is null
tags
tags not in ['tag']
id
id = 17
id != 20
id is 17
id in [1, 2, 10]
id not in [1, 2, 10]
title
title is "first test"
title = "first test"
title ~ "rst"
title in ["first test", "second test"]
description
description is "first"
description = "first"
description ~ "rst"
description in ["first", "second"]
project
project = 'DEMO'
project in ['DEMO', 'QTC']
project not in ['DEMO']
plan
plan = 'Regression'
status
status is "passed"
status = "in progress"
status != "aborted"
status in ["failed", "aborted"]
author
author in ["user1", "user2"]
author = "user1" or createdBy = "user2"
author
author = [name]-reporter
Eg: author = pytest-reporter
createdBy
createdBy in ["user1", "user2"]
createdBy = "user1" or
createdBy = "user2"
started
started >= now("-14d")
started >= startOfDay("-1m")
started < 1569430502709
ended
ended >= now("-14d")
ended >= startOfDay("-1m")
ended < 1569430502709
deleted
deleted >= now("-14d")
deleted >= startOfDay("-1m")
deleted < 1569430502709
isDeleted
isDeleted is false
isDeleted = true
isStarted
isStarted is false
isStarted = true
isEnded
isEnded is false
isEnded = true
isPublic
isPublic is false
isPublic = true
isAutotest
isAutotest is false
isAutotest = true
Milestone
milestone = 'Milestone title'
cfv
cfv = "Auth"
cfv in ["Story 1", "Story 2"]
cfv is empty
cf
cf["Epic"] = "Auth"
cf["Story"] in ["Story 1", "Story 2"]
cf["Epic"] is null
tags
tags not in ['tag_name']
id
caseId = 17
caseId != 20
caseId is 17
caseId in [1, 2, 10]
not caseId in [1, 2, 10]
comment
comment is "first test"
comment = "first test"
comment ~ "rst"
comment in ["first test", "second test"]
case
case is "first"
case = "first"
case ~ "rst"
case in ["first", "second"]
run
run is "first"
run = "first"
run ~ "rst"
run in ["first", "second"]
project
project = 'DEMO'
project in ['DEMO', 'QTC']
project not in ['DEMO']
status
status is "Invalid"
status = "Invalid"
status != "Invalid"
status in ["Invalid", "Failed"]
author
assignee
author in ["user1", "user2"]
author = "user1" or createdBy = "user2"
author
assignee
author = [name]-reporter
Eg: author = pytest-reporter
createdBy
createdBy in ["user1", "user2"]
createdBy = "user1" or createdBy = "user2"
ended
ended >= now("-14d")
ended >= startOfDay("-1m")
ended < 1569430502709
isDeleted
isDeleted is false
isDeleted = true
timeSpent
timeSpent > 10000
id
id = 17
id != 20
id is 17
id in [1, 2, 10]
not id in [1, 2, 10]
title
title is "first test"
title = "first test"
title ~ "rst"
title in ["first test", "second test"]
description
description is "first test"
description = "first test"
description ~ "rst"
description in ["first test", "second test"]
project
project = 'DEMO'
project in ['DEMO', 'QTC']
project not in ['DEMO']
created
created >= now("-14d")
created >= startOfDay("-1m")
created < 1569430502709
updated
updated >= now("-14d")
updated >= startOfDay("-1m")
updated < 1569430502709
deleted
deleted >= now("-14d")
deleted >= startOfDay("-1m")
deleted < 1569430502709
isDeleted
isDeleted is false
isDeleted = true
id
id = 17
id != 20
id is 17
id in [1, 2, 10]
not id in [1, 2, 10]
parent
parent is "first test"
parent = "first test"
parent ~ "rst"
parent in ["first test", "second test"]
project
project = 'DEMO'
project in ['DEMO', 'QTC']
project not in ['DEMO']
author
author in ["user1", "user2"]
author = "user1" or
createdBy = "user2"
createdBy
createdBy in ["user1", "user2"]
createdBy = "user1" or
createdBy = "user2"
title
title is "first test"
title = "first test"
title ~ "rst"
title in ["first test", "second test"]
description
description is "first test"
description = "first test"
description ~ "rst"
description in ["first test", "second test"]
status
status = 'valid'
type
type = 'epic'
created
created >= now("-14d")
created >= startOfDay("-1m")
created < 1569430502709
updated
updated >= now("-14d")
updated >= startOfDay("-1m")
updated < 1569430502709
deleted
deleted >= now("-14d")
deleted >= startOfDay("-1m")
deleted < 1569430502709
isDeleted
isDeleted is false
isDeleted = true