Перейти к основному содержимому

url-decorator

Обзор

Используйте плагин url-decorator, чтобы автоматически дополнять урлы в testplane-тестах нужными query-параметрами.

Установка

npm install -D url-decorator

Настройка

Необходимо подключить плагин в разделе plugins конфига testplane:

module.exports = {
plugins: {
"url-decorator": {
enabled: true,
url: {
query: [
{
name: "text",
value: "foo",
},

// другие query-параметры...
],
},
},

// другие плагины testplane...
},

// другие настройки testplane...
};

Расшифровка параметров конфигурации

ПараметрТипПо умолчаниюОписание
enabledBooleantrueВключить / отключить плагин.
urlObjectN/AОбъект с описанием query-параметров, которые должны добавляться к каждому урлу в тесте.

enabled

Включить или отключить плагин. По умолчанию: true.

url

Параметр url представляет собой объект с полем query, значением которого может быть как массив, так и объект.

    module.exports = {
plugins: {
'url-decorator': {
enabled: true,
url: {
query: [
{
name: '<param-1>', // укажите имя query-параметра
value: '<param-1-value>', // укажите значение query-параметра
mode: 'concat', // или 'override'
browsers: /.*/ // по умолчанию: для всех браузеров
},
{
name: '<param-2>', // укажите имя query-параметра
value: '<param-2-value>', // укажите значение query-параметра
mode: 'concat', // или 'override'
browsers: /.*/ // по умолчанию: для всех браузеров
},

// остальные query-параметры...
]
}
},

// другие плагины testplane...
},

// другие настройки testplane...
};

Здесь query-параметр — это объект со следующими полями:

ПараметрТипПо умолчаниюОписание
nameStringN/AИмя query-параметра. Если query задается как объект, то это поле не указывается, так как сам ключ является именем query-параметра.
valueString или Number или ArrayN/AЗначение query-параметра.
modeString"concat"Режим объединения параметров: concat или override.
browsersString или RegExp или ArrayN/AСписок браузеров, к которым будет применен query-параметр.

name

Имя query-параметра. Если query задается как объект, то это поле не указывается, так как сам ключ является именем query-параметра.

value

Значение query-параметра. Может задаваться как строка, число или массив строк и/или чисел.

mode

Режим объединения параметров. Возможны 2 значения: concat (склеивать параметры) и override (перетирать параметры). По умолчанию: concat.

Режим concat

Например:

  • вы хотите добавить query-параметр nick, который уже есть в урле вашего теста http://localhost/test/?nick=bilbo;
  • при этом вы не хотите, чтобы дополнительное значение параметра nick перетерло то значение, что уже есть в урле.

В этом случае вам нужно указать для параметра mode: 'concat' или вообще не указывать mode (воспользовавшись режимом по умолчанию):

url: {
query: [
{
name: "nick",
value: "torin",
mode: "concat", // или можно вообще не указывать mode, так как по умолчанию mode = 'concat'
},
];
}

Тогда результирующим урлом в тесте будет: http://localhost/test/?nick=bilbo&nick=torin.

Также вы можете указать в значении value массив значений для параметра nick:

url: {
query: [
{
name: "nick",
value: ["torin", "gloin"],
mode: "concat", // или можно вообще не указывать mode, так как по умолчанию mode = 'concat'
},
];
}

Тогда результирующим урлом в тесте будет: http://localhost/test/?nick=bilbo&nick=torin&nick=gloin.

Режим override

Если же вы хотите перетереть параметр nick, то нужно установить режим override:

url: {
query: [
{
name: "nick",
value: "torin",
mode: "override",
},
];
}

Тогда результирующим урлом в тесте будет: http://localhost/test/?nick=torin.

browsers

Браузер или список браузеров, или паттерн регулярного выражения для браузеров, к которым нужно применять заданные query-параметры. Если параметр browsers не указан, то query-параметры будут применяться для всех браузеров.

Ниже приведены примеры задания параметра browsers всеми способами:

    url: {
query: [
{
name: 'nick',
value: 'gloin',
browsers: 'firefox'
}
]
}

Передача параметров через CLI

HERMIONEURL_QUERY*

Чтобы передать дополнительные query-параметры, можно воспользоваться переменными окружения следующего вида:

HERMIONE_URL_QUERY_&lt;имя query-параметра>

Например, в вашем тесте открывается урл http://localhost/test/?tool=testplane, а вы хотите добавить к урлу query-параметр text со значением ololo с помощью переменной окружения:

HERMIONE_URL_QUERY_TEXT=ololo testplane ...

После этого в вашем тесте будет открываться урл вида: http://localhost/test/?tool=testplane&text=ololo.

HERMIONE_URL_CUSTOM_QUERIES

Если среди ваших query-параметров есть параметры, которые нельзя выразить в виде переменной окружения (например, foo-bar), то вы можете добавить эти параметры через переменную окружения HERMIONE_URL_CUSTOM_QUERIES.

В качестве значения используйте строку вида <query-param-1>=<value-1>;<query-param-2>=<value-2>;.

Например:

HERMIONE_URL_CUSTOM_QUERIES='foo-bar=baz;qux=1' testplane ...

Тогда в вашем тесте будет открываться урл вида: http://localhost/test/?foo-bar=baz&qux=1.

warning

Переменные окружения имеют более высокий приоритет, чем значения соответствующих переменных в конфиге плагина.