Advance Query Reports

Note

QMetry Insight module is visible only if you have View and Modify rights for QMetry Insight.

Advance Query Reports of QMetry Insight is designed for technical users with SQL knowledge who can write SQL queries and generate custom reports. The Advance Query view gives more power and flexibility to the users by providing them the ability to create custom reports by writing basic to complex SQL statements.

The interface is divided into two main sections. The left panel contains a list of tables and their fields, representing consolidated QMetry data needed for reporting.

Understanding Screen Layout

The QMetry Insight module consists of the Query Builder.

The screen is divided into four parts:

A. View Report Schema DB Tables

B. Query Builder

C. Filter panel

D. Result panel

QPro_Reports_AQR_Layout.png

Report Database Schema or Entity Relationship Diagram

The following is the database schema to view the entity-relationship diagram for advanced query reports.

QMetry Insight lists tables and their fields on the left panel. The panel contains the consolidated QMetry data in 15 tables which are synced in real-time. For making the query creation easier, the names of the tables have resemblance with QMetry test assets and different modules.

Note

In Requirements and Issues tables, field names having "Jira" as prefix are renamed with “Ext” prefix.

varchar.png

Fields with this icon indicate the Type - varchar.

bigint.png

Fields with this icon indicate the Type - bigint or int.

text1.png

Fields with this icon indicate the Type - text.

datetime.png

Fields with this icon indicate the Type - datetime.

Expanding the table displays all associated fields in it. Hover over the fields to display the field's Type and Size.

Here is a quick overview of tables available as part of the report schema and the kind of data stored on it:

Table Name

Details

issues

Details of QMetry and external issues.

issuecycle

Details of cycles associated with issues.

issueextudf

Details of custom fields of external tracker mapped with the Issue module. The table is available only if you have opted for the Advanced Reports App.

requirementissue

Details of issues linked with requirements.

requirementextudf

Details of custom fields of external tracker mapped with the Requirement module. The table is available only if you have opted for the Advanced Reports App.

requirementreleasecycle

Details of release and cycle associated with a requirement version.

requirements

Details of QMetry and Jira requirements.

requirementtestcase

Details of Testcases linked to requirements.

testcaseissue

Details of issues linked with test cases without execution.

testcasereleasecycle

Details of release and cycle associated with a test case version.

testcases

All the test case details.

testcasetestsuite

Details of test cases linked with test suites.

testexecutionissue

Details of issues found during executions.

testexecutions

Testcase execution details.

teststepexecution

Execution details of a Test case - steps.

teststeps

All the details of test case - steps.

testsuitereleasecycle

Details of release and cycle associated with test suites.

testsuites

All the test suites details.

users

All the details of users.

All ids like createdBy, owner, executed by, etc will be mapped with `users` table to get the username, userAlias, fisrtname, lastname etc.

If you have opted for the Advanced Reports App

Custom Fields (of Requirements and Issue modules) mapped to Jira or Azure, appears in QMetry Insight tables when the Sync fields to Reports feature is enabled on the Integrations tab within the Integration module. Additional tables related to User-Defined Fields (UDFs) will also be displayed.

  • External custom fields mapped to the Issue module are included in the issueextudf table.

  • External custom fields mapped to the Requirement module are included in the requirementextudf table.

For example, an external custom field "Release Reference" is mapped to the Requirement module in the Integrations tab under Projects, and the sync feature is enabled, it is displayed as “ext_release_reference" in the requirementextudf table.

QPro_AQR_External_Custom_Fields.png

If you have not opted for the Advanced Reports App

The system does not display Custom Fields (of Requirements and Issue modules) mapped with Jira and Azure in QMetry Insight tables. Only synced QMetry Fields data and external tracker System Fields data are available for reports.

Control Custom Fields Synced to Advanced Query Reports

System Admins can control Jira or Azure custom fields synchronized with QMetry Insight Advanced Query Reports. With this, admins can manage which external custom fields are available for reporting and prevents unnecessary data synchronization.

Limiting synced fields improves reporting performance, data reliability, and control over reporting data.

Configure Custom Fields for Reporting

Admins can select the Jira or Azure custom fields that are available in Advanced Query Reports.

Note

The custom fields must be enabled in the project configuration for reporting.

Sync_Fields_to_Report_New_Screen.png

To configure custom fields for reporting, perform these steps:

  1. Go to Integration.

  2. Select the Jira or Azure integration.

  3. Locate Sync fields to Reports.

  4. Select the Configure icon.

  5. Select the custom fields for reporting.

  6. Click Save.

Only the fields selected become available in Advanced Query Reports. You can enable additional fields later by updating the configuration.

Query Builder

Query Builder lets you create SQL queries such as SELECT statements. While writing a query, it automatically suggests field names when you type a table name followed by a dot (.).

QPro_Reports_AQR_QueryBuilder.png

If a query contains a syntax error, Query Builder helps you identify it using the SQL Syntax Validator.

Note

  • The system does not accept SELECT * clause. You must mention specific column names in the select statement.

  • The system does not accept UPDATE and DELETE queries.

  • Apply Group By to custom fields and system fields of type text, which includes lookup, multi-lookup, etc. Custom fields include QMetry custom fields and external tracker fields synced with QMetry Insights.

QPro_Reports_AQR_SelectQuery.png
  • You can generate gadgets, apart from tables, on upto 500 records.

  • During execution the query returns first 500 records. However, all data is available in the exported reports.

  • By default, the latest test execution status for uncovered test cases is "null." To display a status other than "null" for uncovered test cases, use the COALESCE function in the query with the following syntax:

COALESCE (<fieldname>,'<statusvalue>')

Where, fieldname=testcases.latestExecutionStatus and status = value to print instead of "null"

For example,

COALESCE (testcases.latestExecutionStatus,'UnCovered')

The following query shows the usage of the COALESCE function in the query.

QPro_AQR_Query for Coalesce.png

The system does not display Custom Fields (of Requirements and Issue modules) mapped with Jira and Azure in QMetry Insight tables. Only QMetry Fields data and Jira System Fields data which are synced are available for generating reports.

The test asset key becomes clickable on the report if the column name contains the keyword (i.e. Entity Key), in any of the formats like - "entity key" or "entityKey" or "entity-key" or "entity_key" in it.

QPro_Reports_AQR_EntityKey.png

Adding Filters

Filter reports based on projects and folders. The system-pre-defined folder browse option allows you to filter custom reports based on folder structure, supporting both parent and subfolder selection. This feature is available for Requirements, Test Cases, and Test Suites, and functions only when a single project is selected.

  • To fetch data from a specific folder, use the equal (=) operator. For example:

SELECT requirements.entityKey, requirements.folderPath FROM requirements
WHERE requirements.projectID = @filter.Project
AND requirements.rqFolderID = @filter.RequirementFolder
  • To retrieve data from subfolders, the IN operator should be applied. For example:

SELECT requirements.entityKey, requirements.folderPath 
FROM requirements
WHERE requirements.projectID = `@filter.Project` 
AND requirements.rqFolderID IN (`@filter.RequirementFolder`)

Scenario 1: Single Project Selection:

Select a single project in the project filter. The folder filtering option remains available, allowing further refinement of the report based on the folder structure.

QPro_Reports_AQR_SingleProject.png

Scenario 2: Multi-project Selection

Select multiple projects. The system disables the folder filtering option, preventing further filtering based on folder structure.

QPro_Reports_AQR_MultipleProject.png

Refer to the attached link for more details on - System Filters Available For Query .

Gadget Charts

On the Result panel, select the report type to preview the report.

Saving Gadgets

Write a query and run it to generate the report. You can generate different types of charts and add as a report to dashboard using Add Gadget button.

QPro_Reports_AQR_AddGadget.png

The system adds the gadget to QMetry Custom Gadget section.

Modify Chart Colors

Advance SQL Query provides an ability to generate custom reports with the required fields or values.

Let’s take an example of a Stacked Bar Chart report.

Step 1: Create a Custom Report

Report: Generate a bar chart that displays the Count of the test cases by status over priority.

SQL Query

Count Of Test Cases by Status Over Priority
SELECT
count(1) as "Test Case Count",
COALESCE(testcases.priority, 'No Priority') as "Test Case Priority",
COALESCE(testcases.testCaseStatus, 'No Status') as "Test Case Status"
FROM testcases
WHERE testcases.projectID in (`@filter.project`)
GROUP BY testcases.priority, testcases.testCaseStatus

Query Output

By default, it gives you output in tabular format. You can modify the output format by switching to the available chart types from the table.

Adjust the Columns based on the requirement to Label, Data and Cross Tab sections.

  • Label always holds a single Test entity field with any value.

  • Multiple Test entity field on Data creates a stacked chart; Data always contain fields with numeric values.

  • Cross Tab field will help to create a Group Stacked chart.

QPro_Reports_AQR.png

Step 2: Modify Chart Colors

The Chart Settings allows you to customize the appearance of the graph. You can customize the chart colors based on legends used in the chart along with a feature to enable/disable the legends as required; here’s how you can do it.

  1. Click the Cog icon on the graph. It opens the Chart Settings panel.

  2. Customize the color of the legends as per your requirement.

  3. Show or hide the legends on the graph by enabling or disabling the Visible settings.

  4. Show or hide the axis labels on the legends by enabling or disabling the Visible settings.

  5. Click on the “Reset All” option under the Colors section to revert the changes (it will reset the colors to system-defined colors).

QPro_ARQ_Modify_Chart_Colors.png

Colors of Execution Status used as legends appear as set in Customizations. You can not modify the colors from chart settings as the option remains grayed out for execution status (refer to the attached screenshot).

Edit Gadgets

The gadgets created under Advance Query Reports can be edited from the QMetry Custom Gadget.

1. Open the My Gadget tab.

2. Click on the Edit icon for the gadget that you want to edit. It navigates you to the Advance Query Reports (SQL query builder view) of the QMetry Insight module.

QPro_AQR_Edit_Gadgets.png

Exporting Gadget Data

The excel file can contain maximum 1000000 records in one time export. You can export individual gadget data into CSV with the same limit.

You can download the chart image in PNG, JPEG, SVG Vector, and PDF formats.

  • Export All Data: Schedules the Export Report task. You can see the scheduled job in the Scheduled Task section and download the report in CSV.

  • Export column Data in XLS: Downloads the details of the Chart Data Table in XLS.

QPro_AQR_Exporting_Gadget_Data.png

You can export all the custom dashboard gadgets through the API call.

Best Practices

  1. Only users with knowledge of SQL queries shall have rights to write custom queries and can access QMetry data, as there is direct access to all QMetry data in Report Schema DB.

  2. The custom SQL queries must always include a project filter specified as : @FILTER.PROJECT. This prevents the recipients of the shared report gadgets from inadvertently viewing data from other projects that they do not have access to.

  3. The custom SQL report queries after creation must be run and saved against a Sample Project, so that the report does not load with the data of an un-intended project.

  4. The Report DB has tables like testcase, testexecutions, etc. which have user IDs instead of the actual information of the users. This information should be queried by writing an SQL Join with user IDs from `users` table now available in the Report DB schema.

Publication date: