Advance Query Reports

Introduction

Advance Query Reports of QMetry Insight is designed for technical users with the 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 an ability to create custom reports by writing basic to complex SQL statements. The view majorly divided into two sections. On the left side, there is a list of tables and their fields that has the consolidated QMetry data required for reports and are made available to users in just 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 & different modules.

Required Permissions

QMetry Insight module will only be visible if the user has the View and Modify rights for QMetry Insight.

Understanding Screen Layout

The QMetry Insight module consists of the Query Builder. The query builder is used to create custom queries and add filters to generate reports accordingly. This document includes details about how to create Custom Reports using SQL query.

The screen is divided into four parts:

A. View Report Schema DB Tables

B. Query Builder

C. Filter panel

D. Result panel



Database Schema / Entity Relationship Diagram

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

In QMetry Insight, you can see the list of tables and their fields on the left panel. The panel contains the consolidated QMetry data in just 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.  



Fields with this icon indicate the Type - varchar.
Fields with this icon indicate the Type - bigint/int.
Fields with this icon indicate the Type - text.
Fields with this icon indicate the Type - datetime.



On expanding the table, you will find all the associated fields in it. It will give you the details of the field's `Type` and `Size` when hovering the mouse over any of the fields.


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


Table NameDetails
issuesDetails of QMetry and Jira issues.
requirementissueDetails of issues linked with requirements.
requirementreleasecycleDetails of release and cycle associated with a requirement version. 
requirementsDetails of QMetry and Jira requirements.
requirementtestcaseDetails of Testcases linked to requirements.
testcasereleasecycleDetails of release and cycle associated with a test case version.
testcasesAll the test case details.
testcasetestsuiteDetails of test cases linked with test suites.
testexecutionissueDetails of issues found during executions.
testexecutionsTestcase execution details.
teststepexecutionExecution details of a Test case - steps.
teststepsAll the details of test case - steps.
testsuitereleasecycleDetails of release and cycle associated with test suites. 
testsuitesAll 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.


Query Builder

Query Builder allows you to write SQL statements like SELECT statements. While writing a query the query builder auto-suggest field names when the user inserts the table name and enters a dot (.), the field names of that tables are auto-suggest.



In case of a syntax error in a query, the query builder provides an ability to identify the error through the SQL Syntax Validator as shown in the below image.

Note:

  • SELECT *  clause is not allowed. Column names need to be specified in the select statement.
  • UPDATE and DELETE queries are not allowed.
  • GROUP BY on text column is restricted. QMetry reporting tables store custom/udf fields of type lookup & multi-lookup as text fields. Hence GROUP BY on these fields are not possible.
  • The gadgets other than table are generated on the 500 records.
  • While creating queries, during execution the query will return just the first 500 records. However all data is available in the reports export.


Note: Custom Fields (of Requirements and Issue modules) which are mapped with Jira will not be displayed in QMetry Insight tables. Only QMetry Fields data and Jira System Fields data which are synced will be available for generating reports.


The test asset key will become 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.








Adding Filters

Once you edit the query using required fields, click Run Query to generate the report.

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

Gadget Charts

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

Here is an explanation on - Types of Gadget Charts supported along with examples.

Saving Gadgets

You can write a query and run it to generate the report. Different types of charts can be generated and then added as a report to dashboard using Add Gadget button.


The gadget will be added to QMetry Custom Gadget section.

Modify Chart Colors

In QMetry, the Advance SQL Query provides an ability to generate custom reports with the required fields/values; let’s understand how to customize/modify colors on your custom report charts.

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


Apply the Filter

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. In our case, we will switch it to the Bar Chart.



You can 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.



Step 2 : Modify Chart Colors

The Chart Settings icon is provided with each type of chart that allows you to customize the appearance of the graph. You can customize the chart colors of your choice 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 on the cog icon on the graph. It opens the Chart Settings panel.

  2. You can customize the color of the legends as per your requirement.

  3. You can show/hide the legends on the graph by enabling/disabling the Visible settings.

  4. You can also show/hide the axis labels on the legends by enabling/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).



Note: Colors of Execution Status used as legends appear as they set under Customization > Execution Status. 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.

Exporting Gadget Data

The excel file can contain maximum 1000000 records in one time export. Individual Gadget data can be exported into CSV with the same limit.

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

  • Export All Data: It will schedule the Export Report task. You can see the scheduled job in the Scheduled Task section and download the report in CSV. This will be a detailed report.

  • Export column Data in XLS: It will immediately download the details of the Chart Data Table (tabular details) in XLS.


You can also export all the custom dashboard gadgets through the API call. Refer to the link - API for Reports for more details.

Best Practices

  1. Rights to write custom queries must be provided only to those users who have knowledge of writing SQL queries and can access any 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 will prevent 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 now only 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.