https://github.com/crowdstrike/faltest
A different take on WebDriver browser testing
Science Score: 26.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (9.0%) to scientific vocabulary
Keywords from Contributors
Repository
A different take on WebDriver browser testing
Basic Info
- Host: GitHub
- Owner: CrowdStrike
- License: mit
- Language: JavaScript
- Default Branch: main
- Size: 3.92 MB
Statistics
- Stars: 29
- Watchers: 5
- Forks: 13
- Open Issues: 73
- Releases: 0
Metadata Files
README.md
FalTest
A different take on WebDriver browser testing
Requirements
Make sure Node.js 14.15+ is installed.
Setup
Run the following command to install FalTest globally.
npm install --global @faltest/cli
Usage
Here are a couple examples of using the FalTest CLI.
-
faltest --tag admin !smoke --filter "^Visit .*" -
faltest --env dev --tag smoke --share-session --headless
Default Options
Options:
--help Show help [boolean]
--version Show version number [boolean]
--browser Type of browser to run
[string] [choices: "chrome", "firefox", "edge"] [default: "chrome"]
--browsers Number of browsers to run [default: 1]
--port Port for WebDriver [string] [default: "0"]
--headless Run browser in headless mode
[boolean] [default: false]
--retries When all else fails, try again! [default: 0]
--target Run against a different UI server/URL
[string] [choices: "default"] [default: "default"]
--env, --environment Run against a different data source
[string] [choices: "default"] [default: "default"]
--share-webdriver Keep the WebDriver process open between test
runs [boolean] [default: true]
--keep-browser-open Keep the browser open between test runs (sets
--share-webdriver) [boolean] [default: false]
--share-session Keep the session (login, etc.) between test
runs (sets --share-webdriver and
--keep-browser-open)[boolean] [default: false]
--size Override the browser size. ex. "--size 1024
768"
--throttle-network Slow down the network so you can see the
loading states better
[boolean] [default: false]
--tag Filter groups of tests using the #hash tagging
system (hashes are optional). Prefix with ! to
negate. [array] [choices: ] [default: []]
--filter Filter the tests by name using a pattern
[string] [default: ".*"]
--duplicate Run the same test concurrently to simulate
multiple users running tests at once
[default: 0]
--random Randomise test order[boolean] [default: false]
--seed Set the random seed to reproduce test order
[string]
--timeouts-override Override all Mocha timeouts for debugging
purposes
--disable-timeouts Disable all Mocha timeouts for debugging
purposes [boolean] [default: false]
--disable-cleanup Disables all browser cleanup. Run
`faltest-kill-orphans` to clean up manually.
[boolean] [default: false]
--failure-artifacts Save screenshots, html, and logs on test
failure [boolean] [default: false]
--failure-artifacts-output-dir Location to save failure artifacts [string]
--reporter Change the Mocha reporter [string]
--reporter-options Supply Mocha reporter options [string]
--dry-run List the tests that would have run instead of
actually running them
[boolean] [default: false]
Filtering
There are a couple ways to filter tests, --tag and --filter. Tags are predefined categories you can add to narrow down your test run. This includes filtering by roles. You can also prefix a ! to a tag (ex. --tag !smoke) if you want to exclude it. If you are using Bash, you may need to escape the exclamation mark (ex. --tag \!smoke). The filter is a regular expression that can match test names. You can combine both these options.
Filtering by tags is a little different between roles and other tags. Since a test only ever has one role at a time attached to it, --tag role1 role2 would never match any tests, since tags function as a logical AND and not an OR. On the other hand, tests can be attached to more than one tag. In this case, --tag tag1 tag2 would target those tests only, and exclude the tests focusing on either tag exclusively.
Duplicating
You can duplicate you test suite to run concurrently with --duplicate 1. This is a good way to ensure that your tests work when multiple people are running them at the same time. If you wanted to run three suites at once, you would use --duplicate 2 to run two copies of your original run.
Logging
Logging can be accomplished via the DEBUG environment variable (https://github.com/visionmedia/debug). Supported variables are:
-
@faltest/remote,@faltest/lifecycle,...- basic logging -
@faltest/remote:verbose,...- verbose logging only -
@faltest*- all logging
An example use would be DEBUG=@faltest* faltest --tag smoke.
Failure Artifacts
Using the options --failure-artifacts and --failure-artifacts-output-dir, you can get screenshots, html, and browser logs of test failures.
Browser Versions
To override the ChromeDriver and EdgeDriver version to match your Chrome and Edge version, follow the guide here or here or here. For example:
DETECT_CHROMEDRIVER_VERSION=true DETECT_EDGEDRIVER_VERSION=true npm install
Real-world Examples
Contributing
If you need to change FalTest, see Contributing Guide.
Owner
- Name: CrowdStrike
- Login: CrowdStrike
- Kind: organization
- Email: github@crowdstrike.com
- Location: United States of America
- Website: https://www.crowdstrike.com
- Repositories: 183
- Profile: https://github.com/CrowdStrike
GitHub Events
Total
- Delete event: 15
- Member event: 1
- Issue comment event: 12
- Push event: 150
- Pull request review event: 10
- Pull request review comment event: 8
- Pull request event: 50
- Create event: 24
Last Year
- Delete event: 15
- Member event: 1
- Issue comment event: 12
- Push event: 150
- Pull request review event: 10
- Pull request review comment event: 8
- Pull request event: 50
- Create event: 24
Committers
Last synced: over 1 year ago
Top Committers
| Name | Commits | |
|---|---|---|
| Kelly Selden | k****n@g****m | 777 |
| Renovate Bot | b****t@r****m | 193 |
| renovate[bot] | 2****] | 175 |
| dependabot[bot] | 4****] | 45 |
| Kelly Selden | 6****n | 4 |
| NathanJCBernhardt | 1****t | 1 |
| Edward Pfremmer | e****r | 1 |
| Prasad Bonasu | s****u@h****m | 1 |
| Michal Bryxí | m****i@c****m | 1 |
| Edward Pfremmer | e****r@c****m | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 11 months ago
All Time
- Total issues: 8
- Total pull requests: 936
- Average time to close issues: 3 months
- Average time to close pull requests: 28 days
- Total issue authors: 3
- Total pull request authors: 6
- Average comments per issue: 0.25
- Average comments per pull request: 0.07
- Merged pull requests: 713
- Bot issues: 1
- Bot pull requests: 588
Past Year
- Issues: 0
- Pull requests: 29
- Average time to close issues: N/A
- Average time to close pull requests: 3 days
- Issue authors: 0
- Pull request authors: 3
- Average comments per issue: 0
- Average comments per pull request: 0.17
- Merged pull requests: 16
- Bot issues: 0
- Bot pull requests: 22
Top Authors
Issue Authors
- kellyselden (2)
- akfernun (1)
- renovate[bot] (1)
Pull Request Authors
- renovate[bot] (271)
- kellyselden (93)
- dependabot[bot] (42)
- sbonasu (3)
- NathanJCBernhardt (2)
- akfernun (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 9
-
Total downloads:
- npm 5,697 last-month
-
Total dependent packages: 31
(may contain duplicates) -
Total dependent repositories: 45
(may contain duplicates) - Total versions: 646
- Total maintainers: 1
npmjs.org: @faltest/remote
A wrapper for the WebdriverIO remote call
- Homepage: https://github.com/CrowdStrike/faltest/blob/main/packages/remote#readme
- License: MIT
-
Latest release: 12.0.64
published 11 months ago
Rankings
Maintainers (1)
npmjs.org: @faltest/utils
Shared utils for FalTest packages
- Homepage: https://github.com/CrowdStrike/faltest/blob/main/packages/utils#readme
- License: MIT
-
Latest release: 8.0.6
published 11 months ago
Rankings
Maintainers (1)
npmjs.org: @faltest/lifecycle
A Mocha environment for the @faltest/remote project
- Homepage: https://github.com/CrowdStrike/faltest/blob/main/packages/lifecycle#readme
- License: MIT
-
Latest release: 10.0.7
published 11 months ago
Rankings
Maintainers (1)
npmjs.org: @faltest/browser
A new browser object for WebdriverIO
- Homepage: https://github.com/CrowdStrike/faltest/blob/main/packages/browser#readme
- License: MIT
-
Latest release: 7.0.4
published 11 months ago
Rankings
Maintainers (1)
npmjs.org: @faltest/page-objects
A page object system using @faltest/browser
- Homepage: https://github.com/CrowdStrike/faltest/blob/main/packages/page-objects#readme
- License: MIT
-
Latest release: 8.0.7
published 11 months ago
Rankings
Maintainers (1)
npmjs.org: @faltest/mocha
A test runner for the @faltest/lifecycle project
- Homepage: https://github.com/CrowdStrike/faltest/blob/main/packages/mocha#readme
- License: MIT
-
Latest release: 9.0.8
published 11 months ago
Rankings
Maintainers (1)
npmjs.org: @faltest/chai
A Chai plugin for @faltest/page-objects
- Homepage: https://github.com/CrowdStrike/faltest/blob/main/packages/chai#readme
- License: MIT
-
Latest release: 7.0.4
published 11 months ago
Rankings
Maintainers (1)
npmjs.org: @faltest/cli
The CLI for the FalTest system
- Homepage: https://github.com/CrowdStrike/faltest/blob/main/packages/cli#readme
- License: MIT
-
Latest release: 7.0.1
published over 2 years ago
Rankings
Maintainers (1)
npmjs.org: eslint-plugin-faltest
ESLint rules for FalTest
- Homepage: https://github.com/CrowdStrike/faltest/blob/main/packages/lint#readme
- License: MIT
-
Latest release: 6.0.0
published almost 3 years ago
Rankings
Maintainers (1)
Dependencies
- actions/checkout v4 composite
- actions/setup-node v3 composite
- actions/upload-artifact v3 composite
- @faltest/cli ^6.0.0 development
- @faltest/lifecycle ^9.0.0 development
- @faltest/chai ^6.0.0 development
- @faltest/cli ^6.0.0 development
- @faltest/lifecycle ^9.0.0 development
- @faltest/mocha ^8.0.0 development
- @faltest/page-objects ^7.0.0 development
- chai ^4.2.0 development
- chai-as-promised ^7.1.1 development
- config ^3.2.2 development
- @faltest/lifecycle ^9.0.0 development
- mocha ^7.0.1 development
- @faltest/cli ^6.0.0 development
- @faltest/lifecycle ^9.0.0 development
- @faltest/cli ^6.0.0 development
- @faltest/lifecycle ^9.0.0 development
- @faltest/cli file:../../packages/cli
- @faltest/lifecycle file:../../packages/lifecycle
- 378 dependencies
- @crowdstrike/commitlint ^7.0.0 development
- chai ^4.2.0 development
- chai-as-promised ^7.1.1 development
- chai-fs ^2.0.0 development
- chai-string ^1.5.0 development
- connect ^3.7.0 development
- cross-env ^7.0.0 development
- eslint ^8.0.0 development
- eslint-config-crowdstrike 10.1.0 development
- eslint-config-crowdstrike-node 3.0.1 development
- eslint-plugin-faltest ^5.0.0 development
- eslint-plugin-json-files ^3.0.0 development
- eslint-plugin-mocha ^10.0.0 development
- eslint-plugin-node ^11.0.0 development
- execa ^5.0.0 development
- mocha ^10.0.0 development
- mocha-helpers ^8.0.0 development
- monorepo-next ^10.0.0 development
- p-all ^5.0.0 development
- remark-cli ^12.0.0 development
- remark-preset-lint-crowdstrike ^3.0.0 development
- renovate-config-standard ^2.0.0 development
- serve-static ^1.14.1 development
- sinon ^16.0.0 development
- sinon-chai ^3.7.0 development
- stoppable ^1.1.0 development
- tmp 0.2.1 development
- yargs-help-output ^4.0.0 development
- mocha ^10.0.0 development
- tmp 0.2.1 development
- @faltest/utils ^7.0.0
- verror-extra ^5.0.0
- mocha ^10.0.0 development
- sinon ^16.0.0 development
- execa ^5.0.0 development
- @faltest/mocha ^8.0.0
- @faltest/remote ^11.0.0
- @faltest/utils ^7.0.0
- mocha ^10.0.0
- threads ^1.6.1
- yargs ^17.0.0
- yn ^4.0.0
- mocha ^10.0.0 development
- sinon ^16.0.0 development
- tmp 0.2.1 development
- @faltest/remote ^11.0.0
- @faltest/utils ^7.0.0
- events-async ^1.2.1
- mocha-helpers ^8.0.0
- eslint ^8.0.0 development
- @faltest/chai ^6.0.0
- requireindex ^1.2.0
- mocha ^10.0.0 development
- sinon ^16.0.0 development
- tmp 0.2.1 development
- @faltest/utils ^7.0.0
- choma ^1.2.1
- filenamify ^6.0.0
- glob ^10.0.0
- mocha-helpers ^8.0.0
- mocha ^10.0.0 development
- sinon ^16.0.0 development
- tmp 0.2.1 development
- @faltest/browser ^6.0.0
- verror-extra ^5.0.0
- mocha ^10.0.0 development
- sinon ^16.0.0 development
- @faltest/utils ^7.0.0
- browser-webdriver-downloader ^2.0.1
- chromedriver 116.0.0
- events-async ^1.2.1
- execa ^5.0.0
- fkill ^8.0.0
- geckodriver 4.2.1
- get-port ^7.0.0
- ps-list ^8.0.0
- webdriverio 7.32.4
- yn ^4.0.0
- mocha ^10.0.0 development
- sinon ^16.0.0 development
- tmp 0.2.1 development
- callsites ^4.0.0
- debug ^4.1.1
- 1064 dependencies