glace-js v2.5.9
Glace (fr. glacé — ice, frozen) is a cold drink based on coffee with addition of ice cream.
glace-js is a nodejs quick-start testing framework for complex scenarios touching UI and API cases. It's based on glace-core and extended with plugins:
Killer features
- Interactive mode
- Test generating with machine learning
- Smart retries
- Universal fixtures
- Multiprocessing mode
Installation
- Be sure you have next software installed:
javafor local selenium server;chromebrowser for web tests (or any selenium supported browser);imagemagickunix only for images processing (on windows it will be installed together with framework);avconvorffmpegunix only for video processing (on windowsffmpegwill be installed together with framework);- compiler for native nodejs modules (on windows it can be installed with
npm i -g windows-build-tools);
- For usage call
npm:
npm i glace-js- For development:
git clone https://github.com/glacejs/glace-js.git
cd glace-js
npm iQuick start
Passed test to launch browser and open web page.
- Be sure that
glacecommand is in$PATHenv variable. Or add it:
PATH=$PATH:./node_modules/glace-js/bin- Save next test case to file
first-test.js:
"use strict";
test("It should launch browser and open web page", () => {
const url = "https://ya.ru";
chunk(`Open url "${url}"`, async () => {
await $.openUrl(url);
});
});- Call command to launch test:
glace first-test.js --web- Enjoy result:
suite: Session 2017-10-11 12:56:51
test: It should launch browser and open web page
✓ chunk: Open url "https://ya.ru"
✓ 1 passed test
1 executed chunk
Summary tests time is 0.664 sec
---------------------------------
Local report is /home/user/report- Save next test case to file
failed-test.js:
"use strict";
test("It should launch browser and open web page", () => {
const url = "https://www.ya.ru";
chunk(`Open url "${url}"`, async () => {
await $.openUrl(url);
});
});- Call command to launch test:
glace failed-test.js --web- Get failure:
suite: Session 2017-10-11 13:11:39
test: It should launch browser and open web page
✖ chunk: Open url "https://www.ya.ru"
✖ 1 failed test
1 executed chunk
Summary tests time is 1m 0.6s
TEST FAILURES:
test: It should launch browser and open web page
Open url "https://www.ya.ru"
message: Browser didn't navigate to https://www.ya.ru during 60000 ms
stack: Error: Browser didn't navigate to https://www.ya.ru during 60000 ms
at new WaitUntilTimeoutError (node_modules/webdriverio/build/lib/utils/ErrorHandler.js:149:12)
at /home/user/node_modules/webdriverio/build/lib/commands/waitUntil.js:29:19
at <anonymous>
---------------------------------
Local report is /home/user/reportMore examples
- See
glace-coree2e tests in order to explore basic examples. - See
glace-jse2e tests in order to explore plugin examples.
CLI options
Arguments
--config [path], -c- Path to JSON file with CLI arguments. Default iscwd/config.json(if it exists).
Note! All options below may be set via .json file (see option --config above).
Log
--stdout-log- Print log messages to stdout.--log [path]- Path to log file. Default iscwd/glace.log.--log-level [level]- Log level. Default isdebug.
Core
--user-config [path]- Path to JS file with configuration which will be merged with override default configuration. Default iscwd/config.js(if it exists).--session-name [name]- Tests run session name. Default value includes wordsessionand datetime.--grep <pattern>, -g- Filter tests by name or name chunk (by mocha).--include <sequence>- Sequence of test name chunks separated by|in order to choose tests for run.--exclude <sequence>- Sequence of test name chunks separated by|in order to exclude tests from run.--precise- Precise tests inclusion or exclusion (not substring pattern).--report [path]- Path to reports folder. Default iscwd/report.--dont-clear-report- Don't clear previous report on tests run.--dont-check-names- Don't check test names uniqueness (usually useful in unit testing).--failed-tests-path [path]- Path to save failed tests in JSON format. Default iscwd/report/failed-tests.json.--root-conftest <path>- Path to root conftest.js which will be loaded before all.--languages <sequence>- List of tested languages separated with comma.--retry [times]- Number of times to retry failed test. Default is0.--chunk-retry [times]- Number of times to retry failed chunk. Default is0.--chunk-timeout [sec]- Time to execute chunk or hook, sec. Default is180.--uncaught [type]- Strategy to process uncaught exceptions. Default value islog. Supported values arelog,fail,mocha. See details in https://glacejs.github.io/glace-core.--kill-procs <sequence>- List of process names separated with comma, which will be killed before tests run.--debug-on-fail- Enter to interactive debug mode on step failure. Incompatible with--slavesoption.--exit-on-fail- Finish test run on first failure.--dots- Print dots instead of test & chunk names.--errors-now- Print error message immediately when it happened.--deep-errors- Print deep objects structure in error message.--interactive, -i- Launch interactive mode to execute steps manually in terminal. Incompatible with--slavesoption.--slaves <number|auto>- Split tests by slaves and execute them in separated processes in parallel. If it isauto, slaves amount will be equal to process cores amount.
Plugins
--list-plugins- List installed plugins and exit.--plugins-dir [path]- Path to custom plugins folder. By default it searches plugins inside folder, whereglace-coreis installed.--disable-default-plugins- Disable default plugins.
xUnit
--xunit- Activate xUnit reporter.--xunit-path [path]- Path to xUnit report. Default iscwd/report/xunit.xml.--xunit-suite-name [name]- Tests suite name in xUnit report. By default it's the same as session name.
Allure
--allure- Activate Allure reporter.--allure-dir [path]- Path to allure reports folder. Default iscwd/report/allure.
TestRail
--testrail- Activate testrail reporter.--testrail-host <host>- TestRail host.--testrail-user <user>- TestRail username or email.--testrail-token <token>- TestRail token.--testrail-project-id <id>- TestRail project id.--testrail-suite-id <id>- TestRail suite id.--testrail-run-name <name>- TestRail run name.--testrail-run-desc <description>- TestRail run description.
Tools
--testrail-check- Check TestRail cases consistency with implemented tests.--list-steps [filter]- List available steps and exit.--list-tests [filter]- List collected tests and exit.--list-fixtures [filter]- List available fixtures and exit.
Image
--screenshot-on-fail- Capture screenshot on chunk fail.
Proxy
--http-proxy- Use http proxy.--http-proxy-port [number]- Port for http proxy. Default israndom. Incompatible with--slavesoption.--global-proxy- Use transparent global proxy.--global-proxy-port [number]- Port for transparent global proxy. Default israndom. Incompatible with--slavesoption.--cache- Enable middleware to cache proxy responses to disk.--existing-cache- Use existing cache if it exists.--cache-folder [folder]- Folder to put cached server responses. Default iscwd/report/.proxy-cache.--speed <value>- Proxy speed, kb/s.--install-certificate- Install global proxy certificate as trusted. Requires administrator permissions.--ssl-ca-dir [folder]- Folder to put generated self-signed SSL certificates. Default iscwd/report/.certificats.--reconnect [number]- Number of proxy reconnects on request error. Default is2.
Test-gen
--gen-steps-filter <chunk>- Chunk of step name to filter tests.--gen-steps-uniq [number]- Number of steps in unique sequence to filter tests. Default isunlimited.--gen-steps-limit [number]- Maximum amount of steps per test. Default isunlimited.--gen-steps-usage <number>- Number of steps usage in test case.--gen-steps-files <sequence>- Space-separated sequence of paths to steps file (yaml or json format). As alternate to specify path to steps file in plugin mode.--gen-tests-limit [number]- Maximum amount of generated tests per iteration. Default is1000000.--gen-tests-max <number>- Maximum amount of final tests.--gen-tests-files <sequence>- Space-separated sequence of paths to files with pregenerated tests (yaml or json format).--gen-tests-only- Flag to exclude other found tests and launch only generated tests in plugin mode.--gen-tests-shuffle- Shuffle tests during generating. Provides more steps sequence randomization, but tests will be different in generating runs.--gen-load-train <path>- Path to file with pretrained model, which will be loaded before generating.--gen-train-before <path>- Path to file with tests for training before generating.--gen-names-only- Flag to print only step names.
Video
--video- Capture video of executed tests. Video will be removed if test is passed.--video-save- Capture video of executed tests. Video will be saved even if test is passed.
Selenium
--web- Flag to launch tests in browser.--web-url <URL>- Web URL which will be used for web tests.--web-resolution <widthxheight>- Browser viewport size (pcplatform only).--selenium-address <host:port>- Connect to launched selenium server with this address.--platform [type]- Specify platform type where tests will be executed. Default ispc. Supported values arepc,android,ios.--browser <name>- Name of browser where web tests will be executed. Default value is platform specific.
Appium
--device <name>- Mobile device name.--os-version <value>- Mobile operating system version.--ios-engine <name>- iOS automation engine name.--udid <value>- Mobile device UDID.
Chrome
--chrome-incognito- Launch chrome in incognito mode.--chrome-headless- Launch chrome in headless mode.--chrome-options- Provide space-separated chrome options withkey=valuestyle.
Virtual display
--xvfb [<width>x<height>]- Use xvfb for headless testing.
Common
--version- Show version number.-h, --help- Show help.
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago