Skip to content

Latest commit

 

History

History
172 lines (128 loc) · 6.44 KB

load-test-data-from-file.md

File metadata and controls

172 lines (128 loc) · 6.44 KB
description
Learn how to use the different commands to load test data from files in supported formats in your UIlicious test.

Load test data from File

TEST.loadDataFromCsv

Loads entries from a .csv (comma-separated value) file.

Returns an array of JSON objects, or a single JSON object if dataset is specified.

The header will be used as the property names. By default, the first column will be used as the header. You can change this configuration to read the first row as the header by setting the header option (see below).

Usage

// load all entries
TEST.loadDataFromCsv(file, options)

// load one entry
TEST.loadDataFromCsv(file, dataset, options)

Returns an array of JSON objects, or a single JSON object if dataset is specified.

Parameters

Parameter Type Remarks
file string Relative or absolute path to the file to load
dataset string Optional. Expression for selecting the dataset to load. e.g. country=korea
options object

Optional.
See options below

Options

Option Type Remarks
header string

Set to row to indicate that the header (which will be used as the property names) is the first row, or set to col to indicate that the header is the first column.
Defaults to col.

dataset string Optional. Expression for selecting the dataset to load. e.g. country=korea
escape string Set the escape character, applies to quote and escape characters inside quoted fields. Defaults to \".
delimiter string Set the delimiter charater. Defaults to , (comma).

Examples(s)

Read all entries from a CSV file

In this example, we have a file "credentials.csv" in our project, where the header is the first row:

username,password
johndoe,jane
'super secret password','qwerty123'

We can use TEST.loadDataFromCsv to load the data from "credentials.csv" as such:

// This loads entries from "credentials.csv" into an object array, 
// using values in the first row as property name.
var userList = TEST.loadDataFromCsv("credentials.csv", {header: "row"})
// Result:
//   users = [
//     {"username" : "johndoe", "password" : "super secret password"},
//     {"username" : "jane", "password" : "qwerty123"}
//   ]
//
var johndoe = userList[0]
I.goTo("https://example.com")
I.fill("Username", johndoe.username)
I.fill("password", johndoe.password)
I.click("Login")

Read a single entry from CSV

In this example, we have a file "credentials.csv" in our project, where the header is the first row:

username,password
johndoe,jane
'super secret password','qwerty123'

We can pick a single entry from the CSV file to load as a JSON object using the dataset parameter as such:

// This loads only the entry where "username" equals "johndoe" from "credentials.csv" into an object, 
// using values in the first row as property name.
var user = TEST.loadDataFromCsv("credentials.csv", "username=johndoe", {header: "row"})
// Result:
//   user = {"username" : "johndoe", "password" : "super secret password"}
//
I.goTo("https://example.com")
I.fill("Username", user.username)
I.fill("password", user.password)
I.click("Login")

Read first column as header

In this example, we have a file "credentials.csv" in our project, where the header is the first column:

username,johndoe,jane
password,'super secret password','qwerty123'

We can specify the header option to col to read the first column as the header:

// This loads only the entry where "username" equals "johndoe" from "credentials.csv" into an object, 
// using values in the first column as property name.
var user = TEST.loadDataFromCsv("credentials.csv", "username=johndoe", {header: "col"})
// Result:
//   user = {"username" : "johndoe", "password" : "super secret password"}
//
I.goTo("https://example.com")
I.fill("Username", user.username)
I.fill("password", user.password)
I.click("Login")

TEST.loadDataFromJson

Loads data from a .json (javascript object notation) file.

Returns the test data as a json object. Nested data structure is supported.

Usage

TEST.loadDataFromJson(file)

Returns the test data as a json object.

Parameters(s)

Parameter Type Remarks
file string Relative or absolute path to the file to load

Examples(s)

"credentials.json" file:

{
    "john": {
        "username": "johndoe", 
        "password": "supersecretpassword", 
    },
    "adele": {
        "username": "adele", 
        "password": "hello from the other side", 
    }
}

Test Script:

var users = TEST.loadDataFromJson("credentials.json")
var john = users.john
I.fill("Username", john.username)
I.fill("Password", john.password)