{"id":22421722,"url":"https://github.com/theoutlander/testerbot-public","last_synced_at":"2025-08-01T05:32:28.921Z","repository":{"id":46260161,"uuid":"111962006","full_name":"theoutlander/testerbot-public","owner":"theoutlander","description":"Automatic Front-End Testing","archived":false,"fork":false,"pushed_at":"2022-12-06T19:14:09.000Z","size":556,"stargazers_count":10,"open_issues_count":7,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2023-06-07T22:15:34.449Z","etag":null,"topics":["automatic-testing","testing","ui-testing","ui-tests"],"latest_commit_sha":null,"homepage":"http://testerbot.io","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/theoutlander.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-11-24T23:13:59.000Z","updated_at":"2023-06-07T22:15:34.449Z","dependencies_parsed_at":"2023-01-23T12:15:22.187Z","dependency_job_id":null,"html_url":"https://github.com/theoutlander/testerbot-public","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theoutlander%2Ftesterbot-public","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theoutlander%2Ftesterbot-public/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theoutlander%2Ftesterbot-public/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theoutlander%2Ftesterbot-public/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/theoutlander","download_url":"https://codeload.github.com/theoutlander/testerbot-public/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228339330,"owners_count":17904513,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automatic-testing","testing","ui-testing","ui-tests"],"created_at":"2024-12-05T17:09:14.157Z","updated_at":"2024-12-05T17:09:14.633Z","avatar_url":"https://github.com/theoutlander.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# testerbot\n\nAutomatic Front-End Testing\n\n[![Maintainability](https://api.codeclimate.com/v1/badges/601a270d008a7c4d7d19/maintainability)](https://codeclimate.com/github/theoutlander/testerbot-public/maintainability)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/601a270d008a7c4d7d19/test_coverage)](https://codeclimate.com/github/theoutlander/testerbot-public/test_coverage)\n[![CircleCI](https://img.shields.io/circleci/project/github/theoutlander/testerbot-public.svg)](https://circleci.com/gh/theoutlander/testerbot-public)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n[![npm version](https://badge.fury.io/js/testerbot.svg)](https://badge.fury.io/js/testerbot)\n[![npm](https://img.shields.io/npm/dt/testerbot.svg)](https://www.npmjs.com/package/testerbot)\n[![NSP Status](https://nodesecurity.io/orgs/theoutlander/projects/7e583a80-3e24-4a83-b280-9c81550f9048/badge)](https://nodesecurity.io/orgs/theoutlander/projects/7e583a80-3e24-4a83-b280-9c81550f9048)\n[![license](https://img.shields.io/github/license/theoutlander/testerbot.svg)](https://github.com/theoutlander/testerbot/blob/master/LICENSE)\n[![Join the chat at https://gitter.im/theoutlander/testerbot](https://badges.gitter.im/theoutlander/testerbot.svg)](https://gitter.im/theoutlander/testerbot?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n\n\n## Purpose\n\nDuring 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.\n\nWe created *Testerbot* to automatically test web-applications during the development process via [Puppeteer](https://github.com/GoogleChrome/puppeteer/) which talks to [Headless Google Chrome](https://developers.google.com/web/updates/2017/04/headless-chrome).\n\nThe basic framework is ready and we have implemented a few test-cases, but we need help in adding more reusable test-cases.\n\nNote: 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*.\n\n## Install\n\n```\nnpm i testerbot -g\n```\n\n\n[![NPM](https://nodei.co/npm/testerbot.png)](https://npmjs.org/package/testerbot)\n\n## Quick Start\n\n#### Running testerbot without any arguments defaults to http://localhost:3000\n```\ntesterbot \n```\n\n#### Specify a url via the *--url* argument\n```\ntesterbot --url http://localhost:5000\n```\n\n#### Specify multiple comma seoparated urls via the *--urls* argument\n```\ntesterbot --urls http://localhost:5000,http://localhost:5000/toc.html\n```\n\nHere is what the output looks like:\n\n\u003cimg width=\"1005\" alt=\"screenshot 2018-01-01 16 18 21\" src=\"https://user-images.githubusercontent.com/749084/34472122-6e273c1e-ef0f-11e7-9d83-c2361199ad4a.png\"\u003e\n\n\n\n## Command Line Options\n\n```\n  Usage: testerbot [options]\n\n\n  Options:\n\n    -c, --config \u003cpath\u003e  Specify Testerbot Config file\n    -d, --dash           Display results in dashboard\n    -n, --no-verbose     Hide verbose output (default: true)\n    -s, --silent         Hide console output from tests\n    -u, --url \u003curl\u003e      Url to run tests against\n    -U, --urls \u003curls\u003e    Url to run tests against\n    -v, --version        Output the version number\n    -h, --help           output usage information\n```\n\n\n### Configuration File\n\nFor better configuration control, you can run *Testerbot* by providing a config file which allows you to skip or run specific tests.\n\n#### By default, Testerbot looks for *testerbot.config.js* in your project root:\n\n```\n// Testerbot Run Configuration\n\nmodule.exports = [{\n  url:\n    'http://localhost:5000',\n\n  tests: {\n  \n    // Test name(s) go here\n    // These tests will be skipped\n    skip: [\n      'Open Graph'\n    ],\n\n    // Test name(s) go here\n    // These are the only tests to be run\n    filter: [\n      'Viewport' \n    ]\n  }\n}]\n```\n\n#### You can also specify a path to the config file via:\n\n```\ntesterbot --config ./config/testerbot.config.js\n```\n\n\n# Basic Features\n\n- A comprehensive set of pre-defined test cases\n- Support for multiple URL's in a test run\n- Ability to skip tests or run only specific tests\n- Integrated dashboard\n- Platform and language agnostic\n- Ability to run in CI build process\n\n\n# Todo\n\n- [ ] Authentication\n\n- [ ] Custom Scenarios (workflows)\n\n- [ ] Support for filtering and skipping tests by Tags\n\n- [ ] Custom Reporter\n\n- [X] Automatic Crawling\n\n- [ ] Filling Forms\n\n\n# Contribution\n\nThis is a work-in-progress and we would like your help. Please consider contributing to this project on one of the following:\n\n- Framework Improvements\n\n- Dashboard Improvements\n\n- [Test Cases](https://github.com/theoutlander/testerbot/issues?q=is%3Aissue+is%3Aopen+label%3A%22Test+Case%22)\n\n- [Provide User Feedack / Bug Reports](https://github.com/theoutlander/testerbot/issues/new)\n\n\n# License\n\nMIT License\n\n# FAQ\n\nWhy does installation fail sometimes with an EACCES error?\n\nThis is an npm permissions related issue. You will need to change the directory where npm is installed. You can follow instructions at https://docs.npmjs.com/getting-started/fixing-npm-permissions.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheoutlander%2Ftesterbot-public","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftheoutlander%2Ftesterbot-public","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheoutlander%2Ftesterbot-public/lists"}