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...
};
Расшифровка параметров конфигурации
Параметр | Тип | По умолчанию | Описание |
enabled | Boolean | true | Включить / отключить плагин. |
url | Object | N/A | Объект с описанием query-параметров, которые должны добавляться к каждому урлу в тесте. |
enabled
Включить или отключить плагин. По умолчанию: true
.
url
Параметр url
представляет собой объект с полем query
, значением которого может быть как массив, так и объект.
- query как массив
- 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...
};
module.exports = {
plugins: {
'url-decorator': {
enabled: true,
url: {
query: {
'<param-1>': { // укажите имя query-параметра
value: '<param-1-value>', // укажите значение query-параметра
mode: 'concat', // или 'override'
browsers: /.*/ // по умолчанию: для всех браузеров
},
'<param-2>': { // укажите имя query-параметра
value: '<param-2-value>', // укажите значение query-параметра
mode: 'concat', // или 'override'
browsers: /.*/ // по умолчанию: для всех браузеров
},
// остальные query-параметры...
}
},
},
// другие плагины testplane...
},
// другие настройки testplane...
};
Здесь query-параметр — это объект со следующими полями:
Параметр | Тип | По умолчанию | Описание |
name | String | N/A | Имя query-параметра. Если query задается как объект, то это поле не указывается, так как сам ключ является именем query-параметра. |
value | String или Number или Array | N/A | Значение query-параметра. |
mode | String | "concat" | Режим объединения параметров: concat или override. |
browsers | String или RegExp или Array | N/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
всеми способами:
- строка
- массив строк
- regexp
- массив regexp / строк
url: {
query: [
{
name: 'nick',
value: 'gloin',
browsers: 'firefox'
}
]
}
url: {
query: [
{
name: 'nick',
value: 'gloin',
browsers: ['firefox', 'chrome']
}
]
}