Git Product home page Git Product logo

qape's Introduction

QApe

Build Status NPM NPM

QApe presentation

QApe is autonomous testing tool, which acts as a manual tester browsing your website, clicking anything it can and reporting any errors it finds with exact steps, how to reproduce it. It also automatically generates a script for regression test, which you can add to set of defined scenarios for QApe, so you will have regression test for every error it finds! The longer the QApe is testing your website, the more potentially problematic scenarios it knows and re-tests them with each run without any work from your side!

Give It a Try!

Take a look how QApe works!

npx qape --headless-mode-disabled -u https://www.example.com

Get Started

Install QApe as local dependency

npm install --save-dev qape

Than you can run it like this

node_modules/.bin/qape -u https://www.example.com

Pass --headless-mode-disabled argument to watch QApe in action.

Preview Results

By default, QApe saves all scenarios causing an error to report folder. Reproducible errors are saved in format *-minified.json. Non-reproducible errors are saved in format *-not-reproduced.json. You can replay any of these scenarios like this

node_modules/.bin/qape --preview-mode report/*

Run QApe in Docker

You can use pre-built QApe docker image. Just set volumes to your report dir and you can pass any QApe CLI arguments at the end of docker run command and it will be passed to QApe inside. See example below.

docker run -v report:/home/qape/report qape/qape:latest --url https://www.docker.com

Guides

Developers

qape's People

Contributors

crysadrak avatar filipoliko avatar lukaspan avatar marcel-veselka avatar mjancarik avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

qape's Issues

Chrome instance not closed properly after page crashed

When a page crashes with error "Page Crashed!", the browser instance is not closed properly even after the tester worker is respawned. It stucks the tester worker (it is respawned after 5 minutes of inactivity) and keeps open chrome instance hang forever.

Before navigation script

There is no way to set some script before navigating to the configured url. This means, that there is no way to set extra headers (i.e. authentication) before navigation.

We should implement beforeNavigationScript and afterNavigationScript configuration to be able to perform said actions.

Docker image seems built without support for ARM-based systems

Digest: sha256:714a07652e353d2c036f19723ad30d7f7d431124e7b131d46bb539e49aa3711d
Status: Downloaded newer image for qape/qape:latest
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
exec /usr/bin/dumb-init: exec format error

adding --platform=linux/amd64 did not help.

Puppeteer tends to run into "Page crashed!" error frequently

There are several issues with puppeteer running into "Page Crashed!" error.

QApe is running into the very same issues in longer test runs. When this error occurs during Random Scenario, it causes the test run to exit as a failure, even though no problem on the tested website has been detected. QApe is also able to recover from this error by itself. For this reason, we will be not failing the test run when Page Crashed! error occurs.

This topic should be revisited, once puppeteer is more stable. Or we can consider migrating to an alternative tool like playwright.

Reporter event names with worker name prefix

Update the structure of the reporter event names with worker name prefix.

Examples:

runner:start -> tester:runner:start
process:exit -> master:process:exit

This should make clearer, where do the events come from.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.