lc.variables

January 18, 2026 · View on GitHub

Dynamic variable generation for creating test data, unique identifiers, and random values.

Availability: Both (pre-request and post-response)

For the complete API reference, see Scripting API Reference.

Table of Contents


Overview

The lc.variables API generates dynamic data for:

  • Unique identifiers (UUIDs)
  • Timestamps in various formats
  • Random numbers, strings, and hex values
  • Fake user data (names, emails)
  • Boolean values

Perfect for creating test data without hardcoding values.


Quick Reference

MethodReturnsDescription
uuid()stringUUID v4
timestamp()numberUnix timestamp (seconds)
timestampMs()numberUnix timestamp (milliseconds)
isoTimestamp()stringISO 8601 timestamp
randomInt(min?, max?)numberRandom integer (default 0-100)
randomFloat()numberRandom float 0-1
randomString(length?)stringAlphanumeric string (default 16)
randomHex(length?)stringHex string (default 16)
randomEmail()stringRandom email address
randomFirstName()stringRandom first name
randomLastName()stringRandom last name
randomBoolean()booleanRandom true/false

Methods

uuid()

Generates a UUID v4 (universally unique identifier).

Returns: string - UUID in format xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx

var id = lc.variables.uuid();
// Returns: "550e8400-e29b-41d4-a716-446655440000"

timestamp()

Returns the current Unix timestamp in seconds.

Returns: number - Seconds since Unix epoch

var ts = lc.variables.timestamp();
// Returns: 1703145600

timestampMs()

Returns the current Unix timestamp in milliseconds.

Returns: number - Milliseconds since Unix epoch

var tsMs = lc.variables.timestampMs();
// Returns: 1703145600000

isoTimestamp()

Returns the current time as an ISO 8601 formatted string.

Returns: string - ISO 8601 timestamp

var iso = lc.variables.isoTimestamp();
// Returns: "2024-12-21T10:00:00.000Z"

randomInt(min?, max?)

Generates a random integer within a range.

ParameterTypeRequiredDefaultDescription
minnumberNo0Minimum value (inclusive)
maxnumberNo100Maximum value (inclusive)

Returns: number - Random integer

var num1 = lc.variables.randomInt();        // 0-100
var num2 = lc.variables.randomInt(1, 10);   // 1-10
var num3 = lc.variables.randomInt(100, 999); // 100-999

randomFloat()

Generates a random floating-point number between 0 and 1.

Returns: number - Random float (0 to 1)

var f = lc.variables.randomFloat();
// Returns: 0.7234567891234567

randomString(length?)

Generates a random alphanumeric string.

ParameterTypeRequiredDefaultDescription
lengthnumberNo16String length

Returns: string - Random alphanumeric string

var str1 = lc.variables.randomString();     // 16 characters
var str2 = lc.variables.randomString(8);    // 8 characters
var str3 = lc.variables.randomString(32);   // 32 characters
// Returns: "a1B2c3D4e5F6g7H8"

randomHex(length?)

Generates a random hexadecimal string.

ParameterTypeRequiredDefaultDescription
lengthnumberNo16String length

Returns: string - Random hex string (lowercase)

var hex1 = lc.variables.randomHex();      // 16 characters
var hex2 = lc.variables.randomHex(32);    // 32 characters
// Returns: "a1b2c3d4e5f67890"

randomEmail()

Generates a random email address.

Returns: string - Random email

var email = lc.variables.randomEmail();
// Returns: "john.smith.5678@example.com"

randomFirstName()

Generates a random first name.

Returns: string - Random first name

var firstName = lc.variables.randomFirstName();
// Returns: "John", "Jane", "Michael", etc.

randomLastName()

Generates a random last name.

Returns: string - Random last name

var lastName = lc.variables.randomLastName();
// Returns: "Smith", "Johnson", "Williams", etc.

randomBoolean()

Generates a random boolean value.

Returns: boolean - true or false

var bool = lc.variables.randomBoolean();
// Returns: true or false

Examples

Generate Test User Data

// Pre-request: Create complete test user
var user = {
    id: lc.variables.uuid(),
    email: lc.variables.randomEmail(),
    firstName: lc.variables.randomFirstName(),
    lastName: lc.variables.randomLastName(),
    age: lc.variables.randomInt(18, 65),
    isActive: lc.variables.randomBoolean(),
    createdAt: lc.variables.isoTimestamp(),
    apiKey: lc.variables.randomHex(32)
};

lc.request.body.set(JSON.stringify(user));
console.log("Created test user: " + user.email);

Unique Request Identifiers

// Pre-request: Add unique identifiers
lc.request.headers.set("X-Request-ID", lc.variables.uuid());
lc.request.headers.set("X-Correlation-ID", lc.variables.randomHex(16));
lc.request.headers.set("X-Timestamp", lc.variables.timestamp().toString());

Dynamic Test Data

// Pre-request: Create order with random products
var order = {
    orderId: lc.variables.uuid(),
    customerId: lc.env.get("customer_id"),
    items: [
        {
            productId: lc.variables.randomHex(8),
            quantity: lc.variables.randomInt(1, 5),
            price: parseFloat((lc.variables.randomFloat() * 100).toFixed(2))
        },
        {
            productId: lc.variables.randomHex(8),
            quantity: lc.variables.randomInt(1, 3),
            price: parseFloat((lc.variables.randomFloat() * 50).toFixed(2))
        }
    ],
    createdAt: lc.variables.isoTimestamp()
};

lc.request.body.set(JSON.stringify(order));

Generate Multiple Records

// Pre-request: Create batch of test users
var users = [];

for (var i = 0; i < 5; i++) {
    users.push({
        id: lc.variables.uuid(),
        email: lc.variables.randomEmail(),
        name: lc.variables.randomFirstName() + " " + lc.variables.randomLastName(),
        active: lc.variables.randomBoolean()
    });
}

lc.request.body.set(JSON.stringify({ users: users }));
console.log("Created " + users.length + " test users");

Idempotency Key Generation

// Pre-request: Generate idempotency key for payment
var idempotencyKey = lc.variables.uuid();
lc.request.headers.set("Idempotency-Key", idempotencyKey);

// Store for potential retry
lc.globals.set("last_idempotency_key", idempotencyKey);
console.log("Idempotency key: " + idempotencyKey);

Randomized Query Parameters

// Pre-request: Add random pagination
var page = lc.variables.randomInt(1, 10);
var limit = [10, 20, 50, 100][lc.variables.randomInt(0, 3)];

var url = lc.request.url;
var separator = url.includes("?") ? "&" : "?";
lc.request.url = url + separator + "page=" + page + "&limit=" + limit;

console.log("Requesting page " + page + " with limit " + limit);

Test Data with Timestamps

// Pre-request: Create event with timestamps
var event = {
    id: lc.variables.uuid(),
    type: "user_action",
    timestamp: lc.variables.timestampMs(),
    iso_timestamp: lc.variables.isoTimestamp(),
    user: {
        id: lc.variables.randomHex(12),
        session: lc.variables.randomString(24)
    },
    data: {
        action: "click",
        target: "button_" + lc.variables.randomInt(1, 10)
    }
};

lc.request.body.set(JSON.stringify(event));

See Also


← lc.base64 | lc.info →