testerbot
Automatic Front-End Testing
Purpose
During development, there isn't enough time to write tests, so our only option is manual testing. We don't need a reminder of how inefficient, time-consuming, error-prone and boring that can get. When we get around to writing test-automations, we spend a lot of time writing tests from scratch. However, most of the test-cases for testing web-applications can be automated and reused.
We created Testerbot to automatically test web-applications during the development process via Puppeteer which talks to Headless Google Chrome.
The basic framework is ready and we have implemented a few test-cases, but we need help in adding more reusable test-cases.
Note: I started this project several months ago and built a SaaS product, but realized that an open-source test automation package will help catch issues quickly during development. I recently stumbled upon https://frontendchecklist.io/ and created github issues to automate as many of those tests as possible into Testerbot.
Install
npm i testerbot -D
Quick Start
# Without any arguments the url defaults to http://localhost:3000
testerbot
# Specify a url via the *--url* argument
testerbot --url http://localhost:5000
# Specify multiple comma seoparated urls via the *--urls* argument
testerbot --urls http://localhost:5000,http://localhost:5000/toc.html
Here is what the output looks like:
Command Line Options
Usage: testerbot [options]
Options:
-c, --config <path> Specify Testerbot Config file
-d, --dash Display results in dashboard
-n, --no-verbose Hide verbose output (default: true)
-s, --silent Hide console output from tests
-u, --url <url> Url to run tests against
-U, --urls <urls> Url to run tests against
-v, --version Output the version number
-h, --help output usage information
Configuration File
For better configuration control, you can run Testerbot by providing a config file which allows you to skip or run specific tests.
- By default, Testerbot looks for testerbot.config.js in your project root:
// Testerbot Run Configuration
module.exports = [{
url:
'http://localhost:5000',
tests: {
// Test name(s) go here
// These tests will be skipped
skip: [
'Open Graph'
],
// Test name(s) go here
// These are the only tests to be run
filter: [
'Viewport'
]
}
}]
- You can also specify a path to the config file via:
testerbot --config ./config/testerbot.config.js
Basic Features
- A comprehensive set of pre-defined test cases
- Support for multiple URL's in a test run
- Ability to skip tests or run only specific tests
- Integrated dashboard
- Platform and language agnostic
- Ability to run in CI build process
Todo
[ ] Authentication
[ ] Custom Scenarios (workflows)
[ ] Support for filtering and skipping tests by Tags
[ ] Custom Reporter
[ ] Automatic Crawling
[ ] Filling Forms
Contribution
This is a work-in-progress and we would like your help. Please consider contributing to this project on one of the following:
-
Framework Improvements
-
Dashboard Improvements
License
MIT License