Welcome to QANotebook
Simplify Testing Reporting
Effortlessly generate and store comprehensive software testing reports directly in your browser.
Key features
- Use dynamic checklists, decision tables and other blocks to create test report documents
- Generate test data using data-generator block
- Export reports to markdown format or print as PDF
- Produce and store software testing reports directly on your browser or hard disk
About
QANotebook is a notebook app for tracking notes and producing reports on testing efforts.
It was created to facilitate test reporting activities, which sometimes can be tedious task and take a lot of time.
Your data does not leave your PC when storing documents on the browser or local disk.
Get in touch via email to raise issues or feature requests.
Get in touch on github to raise issues or feature requests.
Release history
- v1.0.0 - initial version, 2023-11-16
Load data from local storage
Load and store documents from browser storage.
No data is sent outside. Data might be lost if browser cache gets cleared.
Existing documents
Load data from browser storage
Load and store documents from browser storage.
No data is sent outside. Data might be lost if browser cache gets cleared.
Existing documents
Load data from computer storage
Load and store documents directly from your PC.
No data is sent outside.
Existing documents
Documentation
Introduction
QANotebook is a web application designed to help testers and QA engineers to produce software testing reports. You can store results locally on your browser or file system.
It is possible to produce nicely looking reports using various components - images, tables, text, graphs and others. This page shows how to use the website step by step.
Website can run on any device (desktop, laptop, tablet, phone or any other computer), but for the best comfort, we recommend having a big screen, a mouse/touch-pad and a keyboard.
Application runs completely in your browser. It does not upload any of your files to the internet as files are stored either on your browser or file system. None of your files ever leaves your computer.
Quick start
Website will create a new document.

② Once document is opened - you can add new blocks by using + button on the left.
By default - the first row acts as document title. You can only add blocks as rows.

③Once document contains at least one non-title row - you can add additional blocks such as rows, columns or child rows for the existing blocks.
In addition to this - Settings section allows moving or deleting blocks.

④If you want to save document - you can click Save button or use CTRL + ALT + S shortcut.
If this is a new document - you will be prompted where to save it - browser or disk.
Disk storage will not work if your browser does not support it. You can check which browsers support it at here.

⑤Once document is stored - you can use icons on the left to see the list of saved documents or navigate back to the last opened document.

If you need more help - please read other sections or raise an issue on Github.
Shortcuts
To make working easier, the following shortcuts can be used globally when working with documents:
- Ctrl + Alt + S - Save document
- Ctrl + Alt + L - Format input/code/text
- Ctrl + Enter - Execute code or generate action
Blocks
Website allows producing reports called documents. Each document can contain multiple rows, each row can include multiple columns and each column can contain multiple child rows, representing a unique block. There are multiple blocks supported, which are discussed below.
- Currently website supports the following blocks:
- Heading
- Text
- Tags
- Code diff
- Spreadsheet
- Checklist
- xCSV table
- JSONPath component
- Data generator
- REPL
- Decision table
- Graph
- Image
- Chart
Blocks can be added by using + button on the left side of each block. Blocks can be added as rows, columns and child rows with only exception for document title as it supports only adding rows.
Heading block
This component allows adding level 2 - 6 headings into your document.
You can copy content as text or markdown.
Text block
This component renders rich text editor and allows formatting text as well as adding images.
To switch between edit and view modes - please use ✎ button.
You can copy content as text or markdown.
Code difference block
This block allows comparing json, javascript, css, html and other textual content.
You can copy content as text or markdown.
Spreadsheet block
This block renders spreadsheet using x-spreadsheet library.
To switch between edit and view modes - please use ✎ button. You can also drag and drop csv files and they will be parsed and displayed.
You can copy content as text or markdown.
Checklist component
This component can be used to create checklists with status or text columns to the right. For example, you can track test cases which need execution or document them.
To add a new row you can use Add row button or CTRL + Shift + Enter shortcut. Rows can be deleted/moved by hovering on the row and clicking the appropriate buttons.
Columns are added using Add col button. Columns can be deleted/moved by hovering on the column in the first row and clicking the appropriate buttons.
- Columns can be of status, badge or text type:
- Text columns contain textual content.
- Status columns render TBC/OK/FAILED/NA buttons. Their color and value can be changed by double clicking on the button.
- Badges are similar to status values, however their text content is editable. Their color can be changed by double clicking on the element.
You can copy content as text or markdown.
xCSV table block
This component facilitates formatting delimited information into tables.
For example, you can copy JMeter Summary results and easily remove redundant columns from the rendered output.
You can update separator and data in the input area and get formatted table output by hitting ⟳ button or using CTRL + Enter shortcut. To switch between edit and view modes - please use ✎ button.
In addition to this, it is possible to merge multiple block outputs to a single output by checking the checkbox and merging/diffing from the toolbar menu in the bottom of the page.
You can copy content as text, markdown or csv.
JSon/xPath block
This component allows to search and test JSONPath, JMESPath, regex and a few javascript (atob,btoa) expressions.
If you change search or input values you can get results either hitting ⟳ button or using CTRL + Enter shortcut.
Supported JS functions are atob and btoa. They allow converting to/from base64 values.
You can copy output content as text.
Data generation block
This block allows generating fake data by specifying data generation rules. Data is generated using chancejs library.
Each row in a table represents a generator for a single column. For every row you can alter column name, type of the generator, data type and additional options.
Four data types are available: number, boolean, varchar and fixed. Fixed value is useful when you want to force a concrete output for a column, for example value -1.
In options column - you can check the checkbox to specify that NULL value should be outputed for that column or additional options which will be passed for the generator. You can read more on supported value at chancejs website.
To add a new row you can either hit Add or use CTRL + Shift + Enter shortcut. Data can be generated either by clicking ⟳ button or using Ctrl + Enter shortcut.
You can select required configuration manually or import delimited row text content with required column names or SQL CREATE statement in the Advanced settings section reachable by hitting Advanced button.
You can copy output content as text or csv.
REPL
This component allows dynamic javascript and/or HTML execution. Please use it carefully. Script can be executed either by clicking ⟳ button or using Ctrl + Enter shortcut.
You can copy output content as text only.
In script - you can use await loadScript('https://cdn.jsdelivr.net/npm/danfojs@1.1.1/lib/bundle.min.js');
function to load external scripts using script tag.
Decision table
This block allows to model complex logic and see all possible combinations of specified conditions.
Current implementation supports text, T/F conditions and independent actions in note, status and badge forms. If you edit text condition - same values are updated automatically. Note, badge status values can be only updated separately. T/F values can not be updated.
You can copy output content as text or markdown.
Graph block
This component allows to quickly render graph output using mermaid.js library.
You can copy ouput as base64 or png image.
In addition to this, it is possible to perform a few image operations, for example merge this block with other image based blocks (chart, image and graph) from the toolbar menu in the bottom of the page.
Image block
In this component you can either draw on the canvas or import an image and draw on it highlighting image using mouse.
You can copy ouput as base64 or png image.
In addition to this, it is possible to perform a few image operations, for example merge this block with other image based blocks (chart, image and graph) from the toolbar menu in the bottom of the page.
Chart block
This block renders charts using Chart.js library.
You can update data in the input area and get formatted output by hitting ⟳ button or using CTRL + Enter shortcut. To switch between edit and view modes - please use ✎ button.
You can copy content as base64 or png image .
In addition to this, it is possible to perform a few image operations, for example merge this block with other image based blocks (chart, image and graph) from the toolbar menu in the bottom of the page.
Error...
We are sorry, unexpected error occurred. Maybe you would like to:
- Home page
- Browser storage page - allows