v1.0.45
Documentation for version:puppa
Javascript test framework based on node.js and google puppeteer: https://github.com/GoogleChrome/puppeteer
Requirements :
Node with Async/Await Support, check version with latest features here:
Run two tests on separate tabs:
Quick start example tests:
git clone https://github.com/stokilo/puppa
cd puppa
npm install
node run.js tests
Integrated with jQuery and jQuery-Expect framework. All test steps are executed sequentially using async/await syntax. Framework supports parallel test execution on multiple browser tabs.
Example, see 'tests' directory for more examples:
{ // enter term 'test', wait max 15 seconds for element, repeat selector search every 200 ms await ; // search await ; // wait for 10 rows with results await ; // assert text content on the result list await ; // check wikipedia heading text await ;}
Example test runner configuration that defines parallel test execution on 2 tabs.
"profile": "dev-profile.json" "chromeConfig": "flags": "--window-size=1280,720" "browserConfig": "viewport": "width": 1280 "height": 1024 "timeout": 60000 "headless": false "dumpio": false "devtools": false "closeTab": "onFailure": false "onSuccess": true "globalInject": "file": "tests/google.js" "instrumented": true "file": "tests/pdf-test.js" "instrumented": true "file": "tests/expectations/pdf-expect.js" "instrumented": false "testSuite": "suite1": "tab1": "${google.com}.testGoogleSearch" "${google.com}.testGoogleSearch" "tab2": "${graduateland.com}.testPdfTextContent" "${graduateland.com}.testPdfTextContent" "suite2": "tab1": "${google.com}.testGoogleSearch" "tab2": "${graduateland.com}.testPdfTextContent"
You can create your own test suite and use puppa npm module to run them. Run test cases using npm module:
mkdir mytests
cd mytests
npm install puppa
Copy https://github.com/stokilo/puppa/tests/ into mytests/tests Create mytests/run.js
const puppa = ;puppa
Run all test cases using npm module
node run.js tests
or run test cases grouped in test suite with name 'devSuite'
node run.js tests -s=devSuite
Libraries included:
-
[Puppeteer] - https://github.com/GoogleChrome/puppeteer https://github.com/GoogleChrome/puppeteer/blob/master/LICENSE
-
[JQuery] - https://github.com/jquery/jquery Copyright JS Foundation and other contributors, https://js.foundation/ https://github.com/jquery/jquery/blob/master/LICENSE.txt
-
[JQuery-Expect] - https://github.com/Codecademy/jquery-expect MIT License. Copyright (c) 2012 Amjad Masad amjad@codecademy.com Ryzac, Inc.
-
[PDF.js] - https://mozilla.github.io/pdf.js/ https://github.com/mozilla/pdf.js/blob/master/LICENSE