Skip to content

Instantly share code, notes, and snippets.

@loadster
loadster / run-loadster-test-headless.sh
Created August 31, 2016 18:05
Script for running Loadster Workbench in headless mode
#!/bin/bash
##
# This is a sample bash script that shows how to run Loadster Workbench in "headless" mode
# for playing a load tests scenario from the command line. This may be useful in CI environments
# or any time you need to run tests on a schedule.
##
# Path to your Java Runtime Environment home
export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home"
@loadster
loadster / capture-current-year.js
Created September 10, 2014 23:25
Capture the current year with JavaScript
// Capture the current 4-digit year
function capture(response) {
var date = new Date();
return (date.getYear() + 1900).toFixed(0);
}
@loadster
loadster / capture-multi-line.js
Created July 1, 2014 03:39
Capture a multiline expression with JavaScript
function capture(response) {
var str = response.bodyAsString;
var lb = "<textarea name=\"description\">";
var rb = "</textarea>";
var startIndex = str.indexOf(lb) + lb.length;
var endIndex = str.indexOf(rb, startIndex);
return str.substring(startIndex, endIndex);
}
@loadster
loadster / validate-xml-response.js
Last active October 14, 2015 15:43
Validate a property in an XML document with JavaScript
// <cars>
// <car id="13"><make>Volkswagen</make><model>Thing</model></car>
// <car id="80"><make>Land Rover</make><model>Series IIA</model></car>
// </cars>
function capture(response) {
var xml = XML.parse(response.bodyAsString);
var cars = xml.childNamed('cars');
return cars && cars.childrenNamed('car').length > 0; // Validation is successful if there was at least 1 car
@loadster
loadster / validate-json-response.js
Last active August 29, 2015 14:02
Validate an array property in a JSON response
// {"books": [
// {"id": 4, "name": "Slaughterhouse Five"},
// {"id": 11, "name": "The Old Man and the Sea"},
// {"id": 25, "name": "Don Quixote"}
// ]}
function validate(response) {
var json = JSON.parse(response.bodyAsString);
return json.books && json.books.length > 0; // Make sure at least one book was returned
@loadster
loadster / validate-regular-expression.js
Created June 19, 2014 21:47
Validate a response contains a string that matches a regular expression
function validate(response) {
var regex = /Confirmation #AWB(\d{8})Z/gm;
var matched = regex.test(response.bodyAsString);
return matched; // Validation is successful if the regex matched
}
@loadster
loadster / validate-content-type-header.js
Created June 19, 2014 21:37
Iterate the response headers and check the Content-Type
function validate(response) {
var headers = response.getHeaders();
console.log("The response has " + headers.size() + " headers");
for (var i = 0; i < headers.size(); i++) {
var header = headers.get(i);
if (header.name == "Content-Type") {
if (header.value == "application/json") {
@loadster
loadster / capture-id-from-xml-by-full-name.js
Last active October 14, 2015 15:40
Parse and capture a value from an XML document by iterating elements
// <users>
// <user id="1"><fullName>Hank Hill</fullName></user>
// <user id="2"><fullName>Peggy Hill</fullName></user>
// <user id="3"><fullName>Bobby Hill</fullName></user>
// </users>
function capture(response) {
var xml = XML.parse(response.bodyAsString);
var users = xml.childrenNamed("user");
@loadster
loadster / parse-id-from-xml.js
Last active October 14, 2015 15:37
Parse and capture an attribute from an XML document
// <users>
// <user id="1"><fullName>Hank Hill</fullName></user>
// <user id="2"><fullName>Peggy Hill</fullName></user>
// <user id="3"><fullName>Bobby Hill</fullName></user>
// </users>
function capture(response) {
var users = XML.parse(response.bodyAsString);
return users.childrenNamed("user")[2].attr["id"];
@loadster
loadster / capture-full-name-from-xml.js
Last active October 14, 2015 15:41
Parse and capture a string from an XML document with Loadster
// <users>
// <user id="1"><fullName>Hank Hill</fullName></user>
// <user id="2"><fullName>Peggy Hill</fullName></user>
// <user id="3"><fullName>Bobby Hill</fullName></user>
// </users>
function capture(response) {
var users = XML.parse(response.bodyAsString);
return users.childrenNamed("user")[2].childNamed('fullName').val; // returns "Bobby Hill"