https://github.com/gwuhaolin/chrome-tester
web page automatic tester
https://github.com/gwuhaolin/chrome-tester
autotest chrome
Last synced: about 1 year ago
JSON representation
web page automatic tester
- Host: GitHub
- URL: https://github.com/gwuhaolin/chrome-tester
- Owner: gwuhaolin
- Created: 2017-06-24T09:40:38.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2018-04-13T08:09:36.000Z (about 8 years ago)
- Last Synced: 2025-04-01T01:51:08.411Z (about 1 year ago)
- Topics: autotest, chrome
- Language: JavaScript
- Homepage:
- Size: 8.79 KB
- Stars: 5
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
[](https://www.npmjs.com/package/chrome-tester)
[](https://travis-ci.org/gwuhaolin/chrome-tester)
[](https://npmjs.org/package/chrome-tester)
[](https://www.npmjs.com/package/chrome-tester)
# chrome-tester
Web page auto tester with headless chrome
## Use
```js
const Tester = require('chrome-tester');
const tester = new Tester();
await tester.init();
const job = {
url: 'https://ke.qq.com',
tests: [
{
des: 'succ test',
script: `return true`
},
{
des: 'fail test',
script: `throw 1`
}
]
}
const executor = await tester.exec(job);
executor.on('test-pass', (test, value) => {
console.log('test-pass');
assert.equal(test.des, 'succ test');
assert.equal(value, true);
});
executor.on('test-failed', (test, exceptionDetails) => {
console.log('test-failed');
assert.equal(test.des, 'fail test');
assert.equal(exceptionDetails.exception.value, 1);
});
await executor.wait();
const dom = await executor.getDOM();
await tester.destroy();
```
- `tester.init()`: await tester be ready
- `tester.exec(job)`: run a test job, this will return a `executor` used to listen on some events
- `await executor.wait()`: await until all unit tests job has done
- `await executor.getDOM()`: get page current dom node
- `tester.destroy()`: destroy this tester, close chrome, release resource
### tester.exec options
- url {string}: required, web page url
- referrer {string}: http request referrer header
- cookies {Object}: http request cookies
- headers {Object}: http request headers
- injectScript {string}: inject script to exec after domContentEventFired
- tests {Array}: unit tests will run after injectScript has been inject, tests will be run one by one in order
element in tests should be:
```js
{
script {string}: unit test script content,
... other props
}
```
### executor events table
- log: chrome console out
- error: window.onerror | unhandledrejection
- test-pass: unit test exec complete
- test-failed: unit test exec complete
- done: exec complete
- pageload-failed: page cant load
- network-failed: Network.loadingFailed event
- network-received: Network.loadingFailed event
see [unit test](./test/tester.test.js) for more use case.