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']
}
]
}