Используйте плагин @testplane/url-decorator
, чтобы автоматически дополнять урлы в testplane-тестах нужными query-параметрами.
npm install -D @testplane/url-decorator
Необходимо подключить плагин в разделе plugins
конфига testplane
:
module.exports = {
plugins: {
'@testplane/url-decorator': {
enabled: true,
url: {
query: [
{
name: 'text',
value: 'foo'
},
// другие query-параметры...
]
}
},
// другие плагины testplane...
},
// другие настройки testplane...
};
Параметр | Тип | По умолчанию | Описание |
---|---|---|---|
enabled | Boolean | true | Включить / отключить плагин. |
url | Object | N/A | Объект с описанием query-параметров, которые должны добавляться к каждому урлу в тесте. |
Включить или отключить плагин. По умолчанию: true
.
Параметр url
представляет собой объект с полем query
, значением которого может быть как массив, так и объект.
query как массив
module.exports = {
plugins: {
'@testplane/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 как объект
module.exports = {
plugins: {
'@testplane/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-параметр. |
Имя query-параметра. Если query
задается как объект, то это поле не указывается, так как сам ключ является именем query-параметра.
Значение query-параметра. Может задаваться как строка, число или массив строк и/или чисел.
Режим объединения параметров. Возможны 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
.
Браузер или список браузеров, или паттерн регулярного выражения для браузеров, к которым нужно применять заданные query-параметры. Если параметр browsers
не указан, то query-параметры будут применяться для всех браузеров.
Ниже приведены примеры задания параметра browsers
всеми способами:
строка
url: {
query: [
{
name: 'nick',
value: 'gloin',
browsers: 'firefox'
}
]
}
массив строк
url: {
query: [
{
name: 'nick',
value: 'gloin',
browsers: ['firefox', 'chrome']
}
]
}
regexp
url: {
query: [
{
name: 'nick',
value: 'gloin',
browsers: /ie-\d+/ //ie-8, ie-9, ie-10, ...
}
]
}
массив regexp / строк
url: {
query: [
{
name: 'nick',
value: 'gloin',
browsers: [/ie-\d+/, 'firefox']
}
]
}
Чтобы передать дополнительные query-параметры, можно воспользоваться переменными окружения следующего вида:
TESTPLANE_URL_QUERY_<имя query-параметра>
Например, в вашем тесте открывается урл http://localhost/test/?tool=testplane
, а вы хотите добавить к урлу query-параметр text
со значением ololo
с помощью переменной окружения:
TESTPLANE_URL_QUERY_TEXT=ololo testplane ...
После этого в вашем тесте будет открываться урл вида: http://localhost/test/?tool=testplane&text=ololo
.
Если среди ваших query-параметров есть параметры, которые нельзя выразить в виде переменной окружения (например, foo-bar
), то вы можете добавить эти параметры через переменную окружения TESTPLANE_URL_CUSTOM_QUERIES
.
В качестве значения используйте строку вида <query-param-1>=<value-1>;<query-param-2>=<value-2>;
.
Например:
TESTPLANE_URL_CUSTOM_QUERIES='foo-bar=baz;qux=1' testplane ...
Тогда в вашем тесте будет открываться урл вида: http://localhost/test/?foo-bar=baz&qux=1
.