Web recorder for k6 load testing tool using chrome.
- Chrome browser.
- Nodejs version 7.6+ installed. Download from here.
or use nvm to install and manage multiple node version.
- yarn (optional). Fast package manager for node.
Make sure you have git installed. Go to command prompt and do
git clone https://github.com/rupeshmore/k6-web-recorder.git
or download zip.
Go inside the directory
cd k6-web-recorder
if yarn
is installed
yarn
or
npm install
node app.js --url=https://github.com/rupeshmore
or
npm start --url=https://github.com/rupeshmore
url
is required parameter. Specify it in command line or in config.json
;
This will start an instance of chrome.
edit config.json
to record added data.
{
"url": "https://github.com/rupeshmore",
"recordThinkTime": true,
"assignRequestToVariable": false,
"recordHeaders": [
"Content-Type"
]
}
-
url
: is required for the app. This can be defined inconfig.json
or passed as an argument via command line. -
recordThinkTime
: This will record think time between requests. Think time greater than 1 seconds are only recorded. Iffalse
it will not capture think time. Default valuetrue
. -
assignRequestToVariable
: This will assign the http requests to a variable.
Example:
assignRequestToVariable: true
let req = http.get(https://github.com/rupeshmore);
assignRequestToVariable: false
http.get(https://github.com/rupeshmore);
recordHeaders
: This is an array of values to be recoded for headers. values it can take to match the http headers. https://en.wikipedia.org/wiki/List_of_HTTP_header_fields#Request_fields
All scripts are recorded under the scripts
folder.
-
Records all http traffic and convert them to k6 load testing tool.
-
Filters out the request based on the domain of url to be recorded.
-
Records think-time for the script.
-
Options to record specific headers in the scripts.
All requests with multipart/form-data
are not recorded. As the k6 tool will not be able to playback the same request as a browser does.
Close the browser to close recording or close the app.