%%
Last Updated:
- [[]]
Related
- [[Load Testing Tool]] [[Tricentis]] [[Flood (company)]] [[Browser-based testing]] [[Book/Mine/Browser-based Load Testing]] [[Software Testing]] [[Test Automation]]
%%
Flood Element is an [[Open source|open-source]] [[Browser-based testing|browser-based]] [[Load Testing Tool|load testing tool]] based on [[Puppeteer]] and released by [[Tricentis]] [[Flood (company)|Flood]]. It adds a load testing-focused wrapper around [[Playwright]] (originally [[Puppeteer]]) and uses a syntax and terminology familiar to [[Selenium WebDriver]] users.
Flood Element can be scaled up for load testing on [[flood.io]]
[Website](https://element.flood.io)
[Repo](https://github.com/flood-io/element)
## Using Element
### Installing Element
Install the latest version of [[NodeJS]] [from here](https://nodejs.org/).
```bash
# Using yarn
yarn global add element-cli
# Using npm
npm i -g element-cli
# Verify install
element --version
```
or, on macOS and without NodeJS: `brew install flood-io/taps/element`
### Upgrading Element
![[sources/Article/Mine/What's new in Element 1.3.0#^ccdfe7]]
![[sources/Article/Mine/What's new in Element 1.3.0#^eb3295]]
[[Flood Element conditional steps]]
[[Flood Element Setup and Teardown Options]]
[[Allowing camera or mic access on Element]]
[[Troubleshooting Flood Element]]
## Key features of a load testing tool
## Scripting
### Creating a script
- [ ] [[Recorder]]
- [ ] [[Exclude third-party or configured domains]]
- [x] [[Sample script packaged in]]
- `element generate my-load-test.ts` to generate a new script with some nice commented instructions
- many sample scripts for different uses
- 
- [ ] [[GUI Test Builder]]
- [x] [[Code-based scripting]]
- [ ] [[Protocol-based load testing]]
- [x] [[Browser-based testing]]
### Making the script robust
- Protocols Supported
- [ ] [[HTTP/1.1]
- [ ] [[HTTP/2]
- [ ] [[WebSockets]]
- [ ] [[gRPC]
- [ ] [[Citrix ICA]
- [ ] [[LDAP]
- [ ] [[Modify headers]]
- [x] [[Response assertions]]
- [[Error handling]]
- [x] [[Output to log upon error]]
- [x] [[Screenshots]]
- [x] [[Continue on error or restart iteration]]
- [[Debugging]]
- [ ] [[See request and response headers and bodies on single iteration]]
- [x] [[Change log levels]]
- [x] [[Transaction groups]]
- Called "steps"
- [x] [[Custom functions or test fragments]]
- functions and modules
### Making the script realistic
- [[Correlation of dynamic values]]
- [x] [[JMeter Regular Expression Extractor]]
- [x] [[CSS Selector]]
- [x] [[JSON Extractor]]
- [x] [[Dynamic think time and pacing]]
- [x] [[Conditional logic]]
- [[Flood Element conditional steps]]
- [[Flood Element step.if()]]
- [ ] [[Parallel execution of requests]]
- [x] [[Download embedded resources]]
- [x] [[Follow redirects]]
- [ ] [[Network bandwidth throttling]]
- [x] [[Cache management]]
- [x] [[Startup and teardown thread groups]]
- [[Flood Element Setup and Teardown Options]]
- [[Flood Element before.all()]]
- [[Flood Element afterAll()]]
- [[Flood Element step.once()]]
### Test data
- [x] [[Static test data]]
- But not more than one CSV file at a time
- [ ] [[Unique data generation during runtime]]
- [ ] [[Virtual Table Server]]
### Collaborating on a script
- [x] [[Version Control System]]
- [x] [[Test Scaffolding]]
## Execution
### [x] [[Test Scenarios]]
### [x] [[Configurable Load profile]]
- [x] [[Number of virtual users]]
- [x] [[Duration]]
- [x] [[Origin or Region]]
- [x] [[Ramp-up]]
- [ ] [[Ramp down]]
- [x] [[Number of iterations]]
- [ ] [[Fully customizable load profile]]
### SLAs
- [ ] [[Set multiple thresholds]]
### [x] [[Execution Parameters]]
### Memory consumption benchmark
Up to 40 users per [[AWS]] m5.xlarge according to [[flood.io]]
## Analysis
### Dashboard
- [ ] [[Pre-generated reports]]
- [ ] [[Custom dashboard creation]]
- [ ] [[Reusable dashboards]]
- Easy error troubleshooting
- [x] [[Screenshots]]
- [x] [[Response bodies]]
- [x] [[Assertion success or failure]]
- [x] [[Log for transaction failure]]
### Metrics
- [x] [[Response time]]
- [x] [[Request throughput]]
- [x] [[Number of virtual users]]
- [x] [[Error rate]]
- [ ] [[Network throughput]]
- [ ] [[Load generator CPU]]
- [ ] [[Load generator memory]]
### Graphs
- [ ] [[Different Graph Types]]
- [ ] [[View by transaction]]
- [ ] [[View by load generator or region]]
- [ ] [[Custom views]]
### Results
- [x] [[Raw data]]
- [x] [[At least 1s granularity]]
- [x] [[Export as plain text]]
## Continuous Load Testing
- [x] [[Jenkins]]
- [x] [[Azure Pipelines]]
- [x] [[Travis CI]]
- [x] [[CircleCI]]