No-code test automation solution for end-to-end testing

Overview

Parroteer_Banner_1640x410

License Version_Badge Contributions

No-code test automation tool for end-to-end testing

Table of Contents

About Parroteer

Parroteer allows you to generate end-to-end tests simply by using your website. Pick the elements you want to watch for changes, interact with your page just as a user would, and have Puppeteer scripts generated for you with built in test assertions using Jest!

Features

  • Select specific elements on the page to observe for changes
  • Record user interactions and changes that occur in tracked elements
  • Auto-generation of Jest-Puppeteer tests
  • View, edit, and copy or download generated code

Installation

You can find our extension in the Chrome Web Store and click "Add to Chrome". Then just pin Parroteer to your extension toolbar and you're ready to go!

Usage

Creating tests

1. Pick elements to watch

Begin by navigating to the page you want to test, then click the Parroteer icon and select "Pick Elements". Now you can highlight and click the elements on the page that you want to watch for changes.

2. Record!

Once you're ready, you can go forward and start recording! Parroteer will begin tracking your clicks and key-presses on the page, and as any watched elements change, Parroteer will store these changes and create corresponding tests.

If say a new element appears on the page that you want to watch or maybe you realized you forgot one, just click the pause button in the extension popup and go back to pick more elements, then resume recording!

3. View and save tests

When you're all set, just find that friendly little parrot again in your extension bar and click the stop button. From there you can view, edit, and copy or export the Puppeteer scripts and Jest tests that are generated for you!

4. Rinse and repeat

When you're ready to start a new recording session or if at any point you want to cancel your current one, all you need to do is click the restart button in the top right.

Running generated tests

Configurations for running Jest-Puppeteer tests may vary, but for a basic setup, we recommend the following:

  1. Add the generated code as a [filename].test.ts file in your project's __tests__ directory
  2. Install Jest, Puppeteer, and Jest-Puppeteer via npm
  3. In your project's package.json, add the jest-puppeteer preset:
{
  ...
  "jest": {
    "preset": "jest-puppeteer"
  }
}
  1. Add a package.json script to run jest, or use npx jest to run the tests!

Roadmap

There's a lot we'd love to (and plan to!) do with Parroteer! Here's what we've thought of so far:

  • Buttons to deselect picked elements and remove recorded events
  • Keep all selected elements highlighted while picking elements
  • In-browser recording replays via the extension
    • Replay controls such as pausing & stepping forward/back
  • Saving and loading of previous tests using Chrome storage
  • User settings such as:
    • Allowing custom properties to be specified for observation
    • Customization in how selectors are generated
    • Toggle to watch for all DOM changes instead of specific elements
    • Add additional DOM events that users can opt to listen for
    • Toggle to include delays between user inputs in generated scripts (and replays)

We also know there are further improvements we can make in how element changes are tracked and how the corresponding tests are generated, as well as our codebase as a whole, so we'll keep making adjustments and smoothing things out wherever we can!

Our Team


Alex Rokosz
GitHub
LinkedIn

Alina Gasperino
GitHub
LinkedIn

Eric Wells
GitHub
LinkedIn

Erin Zhuang
GitHub
LinkedIn

Contributions

We welcome any and all contributions! If you would like to help out by adding new features or fixing issues, please do the following:

  1. Fork and clone our repository
  2. Run npm install to install the necessary dependencies
  3. Run npm run build-watch to build the project and watch for changes
  4. Follow the instructions on loading unpacked extensions in Chrome
  5. Make changes locally on a feature- or bugfix- branch
  6. Write unit tests for any new features or components that you create
  7. Use npm test during development to ensure changes are non-breaking
  8. Finally when you're done, push your branch to your fork and create a pull request!

Whenever you make changes to your code while running the build-watch script, Webpack will automatically rebuild the project. However, in order to see these changes in your extension you must reload the extension in Chrome, then refresh any pages you wish to use it with so that the content scripts are reloaded as well.

We use a custom eslint configuration and would greatly appreciate that all contributors adhere to the defined styling rules, and please try to follow similar coding patterns as those you may see in this repository 🙂

License

This software is provided under the MIT License.

You might also like...

AREX: It is a “Differential Testing” and “Record and Replay Testing” Tool.

AREX: It is a “Differential Testing” and “Record and Replay Testing” Tool. Test restful API by record, replay and stub request/response. Differential

Nov 1, 2022

Code Playground is a online application for testing and showcasing user-created and collaborational HTML, CSS and JavaScript code snippets

Code Playground is a online application for testing and showcasing user-created and collaborational HTML, CSS and JavaScript code snippets

Code Playground About Code Playground is a online application for testing and showcasing user-created and collaborational HTML, CSS and JavaScript cod

Dec 17, 2022

A quickstart AWS Lambda function code generator. Downloads a template function code file, test harness file, sample SAM deffiniation and appropriate file structure.

Welcome to function-stencil 👋 A quickstart AWS Lambda function code generator. Downloads a template function code file, test harness file, sample SAM

Jun 20, 2022

Basic Express methood solution with mongodb and Client & Server site code example

Express with MongoDB Tutorial (Basic) React Tutorial React Inastallation React Fundamental Concepts React Advanced concepts let start Express Starter

Oct 28, 2022

A list of helpful front-end related questions you can use to interview potential candidates, test yourself or completely ignore.

A list of helpful front-end related questions you can use to interview potential candidates, test yourself or completely ignore.

Front-end Developer Interview Questions This repository contains a number of front-end interview questions that can be used when vetting potential can

Jan 4, 2023

10lift Applicant Test Senior Front End Development

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: ya

Sep 27, 2021

Font-end app to test the transformer model translation from Cape Verdian Creole to English

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

Sep 28, 2022

Sample project to demonstrate Playwright Test usage, pointing to ServeRest API and Front-end

demo-playwright-test This is a sample project to demonstrate Playwright Test usage, running tests against ServeRest API and Front-end. Pre-requisites

Oct 24, 2022

SAP Community Code Challenge: This repository contains an empty OpenUI5 application and end-to-end tests written with wdi5. Take part in the challenge and develop an app that passes the tests.

SAP Community Code Challenge - UI5 The change log describes notable changes in this package. Description This repository is the starting point for the

Oct 24, 2022
Owner
OSLabs Beta
OSLabs Beta
Grupprojekt för kurserna 'Javascript med Ramverk' och 'Agil Utveckling'

JavaScript-med-Ramverk-Laboration-3 Grupprojektet för kurserna Javascript med Ramverk och Agil Utveckling. Utvecklingsguide För information om hur utv

Svante Jonsson IT-Högskolan 3 May 18, 2022
Hemsida för personer i Sverige som kan och vill erbjuda boende till människor på flykt

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

null 4 May 3, 2022
Kurs-repo för kursen Webbserver och Databaser

Webbserver och databaser This repository is meant for CME students to access exercises and codealongs that happen throughout the course. I hope you wi

null 14 Jan 3, 2023
A testing focused Remix Stack, that integrates E2E & Unit testing with Playwright, Vitest, MSW and Testing Library. Driven by Prisma ORM. Deploys to Fly.io

Live Demo · Twitter A testing focused Remix Stack, that integrates E2E & Unit testing with Playwright, Vitest, MSW and Testing Library. Driven by Pris

Remix Stacks 18 Oct 31, 2022
Service Installer for VMware Tanzu is a one-click automation solution that enables VMware field engineers to easily and rapidly install, configure, and operate VMware Tanzu services across a variety of cloud infrastructures.

Service Installer for VMware Tanzu Service Installer for VMware Tanzu seeks to provide a one-click automation solution to enable our VMware engineers

VMware Tanzu 42 Dec 1, 2022
This repository contains a basic example on how to set up and run test automation jobs with CircleCI and report results to Testmo.

CircleCI test automation example This repository contains a basic example on how to set up and run test automation jobs with CircleCI and report resul

Testmo 2 Dec 23, 2021
Boilerplate project to run MOBILE Test Automation with WebdriverIO v7, Mocha, Appium, Allure reporting and Momentum Suite cloud device farm support

WebdriverIO Mocha Appium Momentumsuite WebdriverIO Integration with local or Momentum Suite real mobile farm devices Supports Native or Hybrid Android

Momentum Suite 21 Dec 5, 2022
Jester is a test-generation tool to create integration test code.

Code Generator for Integration Tests Introduction Welcome to Jester: An easy-to-use web application that helps you create and implement integration te

OSLabs Beta 54 Dec 12, 2022
A Web end-to-end testing framework.

一款舒适的自动化测试框架 文档 XBell 站点 特性 基于 playwright 的异步测试框架 基于 TypeScript 提供多功能装饰器 多套数据环境支持 快速开始 # 初始化一个项目 $ npm create xbell # 进入项目 $ cd <your-project-name> #

X-Bell 10 Dec 15, 2022
Javascript-testing-practical-approach-2021-course-v3 - Javascript Testing, a Practical Approach (v3)

Javascript Testing, a Practical Approach Description This is the reference repository with all the contents and the examples of the "Javascript Testin

Stefano Magni 2 Nov 14, 2022