1.0.45 • Published 6 years ago

puppa v1.0.45

Weekly downloads
2
License
ISC
Repository
-
Last release
6 years ago
Documentation for version: v1.0.45

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:

https://nodejs.org/

Run two tests on separate tabs:

alt text

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:

testGoogleSearch = async function (config) {
    // enter term 'test', wait max 15 seconds for element, repeat selector search every 200 ms
    await elem("#lst-ib", elem => elem.val('test'), {pooling: 200, timeout: 15000});

    // search
    await elem("#tsf", elem => elem[0].submit());

    // wait for 10 rows with results
    await elem(".r", rows => $expect(rows).to.have.items(10));

    // assert text content on the result list
    await felem(() => elementByContent('span', 'Test - Wikipedia'), wiki => wiki.click());

    // check wikipedia heading text
    await elem(".firstHeading", heading => $expect(heading).to.have.text('Test'));
}

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 = require("puppa");
puppa.run(__dirname)

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:

1.0.45

6 years ago

1.0.44

6 years ago

1.0.43

6 years ago

1.0.42

6 years ago

1.0.41

6 years ago

1.0.40

6 years ago

1.0.39

6 years ago

1.0.38

6 years ago

1.0.37

6 years ago

1.0.36

6 years ago

1.0.35

6 years ago

1.0.34

6 years ago

1.0.33

6 years ago

1.0.32

6 years ago

1.0.31

6 years ago

1.0.30

6 years ago

1.0.29

6 years ago

1.0.28

6 years ago

1.0.27

6 years ago

1.0.26

6 years ago

1.0.25

6 years ago

1.0.24

6 years ago

1.0.23

6 years ago

1.0.22

7 years ago

1.0.21

7 years ago

1.0.20

7 years ago

1.0.19

7 years ago

1.0.18

7 years ago

1.0.17

7 years ago

1.0.16

7 years ago

1.0.15

7 years ago

1.0.14

7 years ago

1.0.13

7 years ago

1.0.12

7 years ago

1.0.11

7 years ago

1.0.10

7 years ago

1.0.9

7 years ago

1.0.8

7 years ago

1.0.7

7 years ago

1.0.6

7 years ago

1.0.5

7 years ago

1.0.4

7 years ago

1.0.3

7 years ago

1.0.2

7 years ago

1.0.1

7 years ago

1.0.0

7 years ago