A lightweight Chrome extension that automatically detects JavaScript errors during testing and creates Qase defect reports with contextual information.
- Automatic Error Detection: Captures JavaScript errors, promise rejections, and console errors
- Error Queue Management: View and manage all captured errors in one place
- Qase Integration: Directly create defect reports in your Qase project
- Customizable Reports: Edit title, severity, and details before submitting
- Non-intrusive: Badge notification system shows error count without disrupting your workflow
- Clone or download this repository
- Open Chrome and navigate to
chrome://extensions/ - Enable "Developer mode" (toggle in top-right corner)
- Click "Load unpacked"
- Select the extension directory (the folder containing
manifest.json) - The Qase Testing Assistant extension should now appear in your extensions list
- Clone or download this repository
- Open Firefox and navigate to
about:debugging#/runtime/this-firefox - Click "Load Temporary Add-on"
- Navigate to the extension directory and select the
manifest.jsonfile - The extension will be loaded temporarily
- Click the extension icon in your browser toolbar
- Go to the Settings tab
- Enter your Qase API credentials:
- API Token: Get this from your Qase account settings (https://app.qase.io/user/api/token)
- Project Code: Your Qase project code (e.g., "DEMO", "QA")
- Click Validate to check credentials (optional)
- Click Save Settings
- Open the included
test-page.htmlin your browser (or serve it via HTTP server) - Click any of the error trigger buttons
- Check the extension icon - it should show a red badge with the error count
- Click the extension icon to view captured errors
- Configure your Qase credentials in Settings
- Browse websites/applications you're testing
- The extension automatically captures any JavaScript errors
- When an error occurs, a badge appears on the extension icon
- Click the icon to review errors
- Click Report to Qase on any error to create a defect
- Edit the title, severity, and details as needed
- Click Submit to Qase to create the defect in your project
- JavaScript Errors: Runtime errors, type errors, reference errors
- Promise Rejections: Unhandled promise rejections
- Console Errors: Errors logged via console.error()
Each error captures:
- Error message
- Stack trace
- Page URL
- Timestamp
- Browser information
You can customize:
- Title: Defaults to first 100 characters of error message
- Severity: Choose from trivial, minor, major, critical, or blocker
- Actual Result: Full error details (read-only, automatically populated)
qase-testing-assistant/
├── manifest.json # Extension manifest (Manifest V3)
├── background.js # Service worker for error monitoring
├── popup/
│ ├── popup.html # Extension popup UI
│ ├── popup.js # Popup logic and event handlers
│ └── popup.css # Styling
├── content/
│ └── content-script.js # Injected script for error detection
├── utils/
│ ├── api.js # Qase API wrapper
│ └── storage.js # Chrome storage helpers
├── icons/ # Extension icons
│ ├── icon-16.png
│ ├── icon-48.png
│ └── icon-128.png
├── test-page.html # Demo page for testing
└── README.md # This file
GET /v1/project/{code}- Validate credentialsPOST /v1/defect/{code}- Create defect
storage- Store credentials and error queueactiveTab- Access current tab informationscripting- Inject content scripts<all_urls>- Monitor errors on any webpage
- Make changes to the extension files
- Go to
chrome://extensions/ - Click the refresh icon on the Qase Testing Assistant card
- Test your changes
python -m http.server 5000Then open http://localhost:5000/test-page.html in your browser.
- Make sure the extension is enabled in
chrome://extensions/ - Check that the page has fully loaded before triggering errors
- Verify content scripts are being injected (check Developer Console)
- Verify your API token is valid
- Check that your project code is correct
- Ensure you have permissions to create defects in the project
- Check the browser console for error messages
- Reload the extension
- Check that background service worker is active
- Restart the browser
The Qase API has a rate limit of 600 requests per minute. The extension includes automatic rate limit checking to prevent exceeding this limit.
- Error filtering (ignore specific error types or domains)
- Screenshot capture on error
- Duplicate error detection
- Error log export as CSV
- AI-powered severity classification
- Integration with Qase webhooks
MIT
For issues with the extension, please create an issue in the repository.
For Qase API questions, visit https://developers.qase.io/