• Stars
    star
    169
  • Rank 217,182 (Top 5 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created almost 8 years ago
  • Updated almost 7 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Chrome extension that allows to develop and run automation tests right in browser

Autotester

Status GitHub version Build Status Build status Sauce Test Status

Autotester is Chrome extension that allows to develop and run automation tests right in browser.
Tests are written in Javascript and can be executed over another tab of the same Chrome or any remote browser.

Tested in:
Sauce Test Status

Contents

Demo

Features

  • Zero setup
    The setup is just drag-n-drop extension in chrome. No other stuff like Selenium, Node.js or Chromedriver is needed.

  • Convenient development
    Developing tests right in browser has some advantages. You can edit tests in first tab and check results in second. You can easily run particular test to debug. You can keep tab open after tests to inspect with devtools.

  • Selenium compatible syntax
    Tests syntax is compatible with Selenium Javascript API so it can be executed ether in nodejs and visa-versa (except custom commands).

  • Custom commands
    Because tests are executed via extension all of rich chrome extensions API are available. You can define custom commands to work with cookies, downloads, tabs, history etc and use it in your tests.

  • Capture network requests
    Capturing network requests is working out of box. You can capture page loads, resources (img, script, etc), xhr/fetch requests and new tabs. No proxy needed. Please see example.

  • Load tests from anywhere
    Tests can be stored right in browser, local directory or loaded from any local/remote http server (for example GitHub).

  • Run tests on remote servers
    Besides running tests in the same chrome instance it is possible to route commands to any selenium server. It can be localhost, Sauce Labs, BrowserStack, etc.

  • Test other chrome extensions
    With Autotester it is possible to attach to other extensions background pages for testing. Please see example.

Project status

Autotester is under active development now. Not all webdriver commands are supported. Yet. And there can be bugs. But feel free to try it and share your feedback or ideas in issues - help us to make it better!

Installation

  1. Download and unpack latest autotester.zip
  2. Drag-n-drop unpacked autotester directory on chrome://extensions page

Getting started

Click extension button A in browser panel to open Autotester app. Select google_search in dropdown and press Run to execute test. Look at the report. Next, you can change test code or create new file and re-run again.

Usage

Autotester supports Selenium Javascript API for writing tests. Have a look on Autotester self tests.
Also there are some pre-defined globals available in tests for conveniency:

  • Driver
  • By
  • until
  • Key
  • webdriver
  • console
  • require

More detailed tutorial is coming..

How does Autotester work?

When executing tests in the another tab of the same browser Autotester is utilizing Chrome Debugging Protocol available via chrome.debugger.* extensions API. It intercepts http requests going from Selenium Javascript package to W3C Webdriver endpoints and loops them back to browser.
When executing tests over remote browser Autotester does not intercept http requests letting them reach remote Selenium Server and waits for the results.

Roadmap

There are many directions to grow. The current plan is following:

  • implement rest of webdriver commands
  • improve docs and tutorials
  • add capabilities manager to visually configure targets
  • integrate with other webdriver implementations (webdriverio, nightwatchjs, codeceptJS, spectron)
  • integrate with Appium
  • run tests in parallel
  • improve tests editor: autocomplete, breakpoints, etc
  • create tests automatically via recording user actions
  • ...your idea?

Contribution

If you have an idea how to fix bug or implement new feature - you are welcome to contribute.
Please see CONTRIBUTING.md. Thanks for your support!

FAQ

What if I get error "Unsupported route command"? This error means that some Webdriver command is not implemented in Autotester yet. The workaround sometimes can be using `driver.executeScript` to achive the goal directly. For example, if `driver.getTitle()` is not implemented, you can retrieve title as:
 driver.executeScript(() => document.title);

Also please search issues for the same unsupported route and vote or create new one to let us know which commands you need most of all.

Where to store tests?
  1. You can create as many tests as you like and store them right in browser as snippets. This is the easiest way but less reliable: if you occasionally remove extension tests will be lost.
  2. For more serious things it is recommended to serve tests from local or remote http server and keep them under version control.
  3. The third option is to load tests from local directory without http server. For that you should create tests inside /tests directory of unpacked extension.

Links

License

MIT @ Vitaliy Potapov

More Repositories

1

x-editable

In-place editing with Twitter Bootstrap, jQuery UI or pure jQuery
JavaScript
6,477
star
2

react-native-extended-stylesheet

Extended StyleSheets for React Native
JavaScript
2,915
star
3

github-trending-repos

Track GitHub trending repositories in your favorite programming language by native GitHub notifications!
HTML
2,619
star
4

angular-xeditable

Edit in place for AngularJS
HTML
1,915
star
5

checklist-model

AngularJS directive for list of checkboxes
HTML
1,053
star
6

awesome-smart-tv

⚡A curated list of awesome resources for building Smart TV apps
1,019
star
7

websocket-as-promised

A Promise-based API for WebSockets
JavaScript
571
star
8

bootstrap-editable

This plugin no longer supported! Please use x-editable instead!
JavaScript
558
star
9

await-timeout

A Promise-based API for setTimeout / clearTimeout
JavaScript
428
star
10

combodate

Dropdown date and time picker
JavaScript
208
star
11

playwright-bdd

BDD testing with Playwright runner
TypeScript
195
star
12

clockface

Clockface timepicker for Twitter Bootstrap
CSS
168
star
13

awesome-browser-extensions-and-apps

⚡A curated list of awesome resources for building browser extensions and apps
125
star
14

babel-plugin-runtyper

⚡️ Runtime type-checker for JavaScript
JavaScript
117
star
15

x-editable-yii

Yii extension for creating editable elements
JavaScript
112
star
16

docker-tizen-webos-sdk

Docker image with Samsung Tizen CLI and LG webOS CLI
Dockerfile
82
star
17

bro-fs

Promise-based HTML5 Filesystem API similar to Node.js fs module
JavaScript
43
star
18

tinkoff-invest-api

Node.js SDK для работы с Tinkoff Invest API
HTML
42
star
19

yii-bootstrap-editable

Yii extension for Bootstrap-editable plugin
JavaScript
31
star
20

alice-renderer

Node.js библиотека для формирования ответов в навыках Яндекс Алисы.
JavaScript
29
star
21

alice-workshop

Воркшоп по разработке навыка для Алисы на Node.js
JavaScript
28
star
22

js-testrunners-bench

JavaScript test-runners benchmark
JavaScript
27
star
23

groupgridview

Yii extension to group data in your grid
PHP
24
star
24

lazy-model

AngularJS directive that works like `ng-model` but accept changes only when form is submitted (otherwise changes are cancelled)
JavaScript
21
star
25

chnl

JavaScript event channels compatible with Chrome extensions API
JavaScript
19
star
26

tinkoff-robot

Пример торгового робота для Tinkoff Invest API (Node.js)
TypeScript
19
star
27

playwright-bdd-example

Example project that uses playwright-bdd to run BDD tests
TypeScript
19
star
28

docker-stack-wait-deploy

A script waiting for docker stack deploy command to complete.
Shell
18
star
29

alice-tester

Библиотека для автоматического тестирования навыков Алисы на Node.js.
JavaScript
14
star
30

promise-controller

Advanced control of JavaScript promises
JavaScript
13
star
31

controlled-promise

Advanced control of JavaScript promises
JavaScript
13
star
32

mocha-es6-modules

Running Mocha tests in the browser with ES6 Modules support
JavaScript
12
star
33

yandex-cloud-deploy-fn

CLI для деплоя функций в Yandex Cloud на Node.js
TypeScript
11
star
34

tinkoff-local-broker

Локальный сервер для тестирования торговых роботов на Tinkoff Invest API
TypeScript
9
star
35

alice-cloud-proxy

Готовая облачная функция для развертывания своего прокси-навыка для Алисы
JavaScript
9
star
36

ydb-sdk-lite

Lightweight implementation of Yandex Database SDK for Node.js
JavaScript
5
star
37

throw-utils

Helpers for error throwing
TypeScript
5
star
38

wait-for-cmd

A pure shell script waiting for provided command to exit with zero code
Shell
5
star
39

selgridview

Yii extension to keep selected rows in CGridView when sorting and pagination
JavaScript
5
star
40

alice-protocol

JSON схемы запросов и ответов в навыках Алисы
JavaScript
5
star
41

alice-skill-starter

Быстрый старт навыка для Алисы на Node.js
JavaScript
5
star
42

flat-options

One-level options with default values and validation
JavaScript
4
star
43

yandex-cloud-fn

Хелперы для функций в Yandex Cloud (Node.js)
TypeScript
4
star
44

alice-testing-example

Пример функционального тестирования навыка для Яндекс Алисы на Node.js.
JavaScript
4
star
45

page-object

A Page Object pattern implementation library for JavaScript
JavaScript
4
star
46

fetchers

Semantic RESTful Fetch API wrappers
JavaScript
3
star
47

early-errors

A tiny script to catch webpage errors earlier.
JavaScript
3
star
48

json-micro-schema

Minimal JSON schema validation format
JavaScript
3
star
49

loggee

Zero-dependency JavaScript logger with namespaces
JavaScript
3
star
50

yc-serverless-live-debug-original

Live debug of Yandex cloud functions with local code on Node.js
TypeScript
3
star
51

npxd

Run NPX commands inside Docker container
Shell
2
star
52

selenium-fileserver

Public website serving Selenium self-test static pages
JavaScript
2
star
53

alice-types

Тайпинги для протокола Алисы.
TypeScript
2
star
54

marusya-types

Тайпинги для протокола Маруси.
TypeScript
2
star
55

micro-schema

JavaScript implementation of json-micro-schema validation format
JavaScript
2
star
56

sheeva

Concurrent Automation Test Runner
JavaScript
2
star
57

uni-skill

Универсальный интерфейс для разработки навыков голосовых ассистентов.
TypeScript
2
star
58

alice-asset-manager

Node.js API для загрузки изображений и звуков в навык Алисы.
JavaScript
2
star
59

pendings

[DEPRECATED] Better control of promises
JavaScript
2
star
60

skill-afisha-moscow

TypeScript
1
star
61

qrlink

HTML
1
star
62

yandex-cloud-fn-internals

Roff
1
star
63

retry

Retry async function with exponential delay, timeouts and abort signals
TypeScript
1
star
64

alice-dev

Инструменты разработчика для навыков Алисы
JavaScript
1
star
65

promised-map

A map of promises that can be resolved or rejected by key
TypeScript
1
star
66

logger

Pure typescript logger with levels and prefix support
TypeScript
1
star
67

skill-dev-proxy

Навык для Алисы, позволяющий отлаживать другие навыки прямо на устройстве
TypeScript
1
star
68

yandex-cloud-lite

Минимальный Node.js клиент для доступа к API сервисов Yandex Cloud по GRPC
JavaScript
1
star