Вот два способа сделать это (обратите внимание, я не тестировал этот код). Вы можете создать значение заголовка Authorization
, используя выражение JavaScript,
- description: Read test ID
action: org.getopentest.actions.HttpRequest
args:
url: https://sub.domain.io/api/v2/get_results/1234
verb: GET
headers:
Content-Type: application/json
Authorization: |
$script
"Basic " + $base64($env("X_USERNAME") + ":" + $env("X_PASSWORD"))
или создайте значение заголовка в действии сценария, заблаговременно:
- script: |
// Build the authentication header
var authHeader =
"Basic " + $base64($env("X_USERNAME") + ":" + $env("X_PASSWORD"));
- description: Read test ID
action: org.getopentest.actions.HttpRequest
args:
url: https://sub.domain.io/api/v2/get_results/1234
verb: GET
headers:
Content-Type: application/json
Authorization: $script authHeader
Вероятно, мне следует объяснить роль или префикс $script
в двух примерах. Когда значение аргумента действия начинается с символа с префиксом доллара (например, $json
, $data
, $format
и т. Д.), Тестовый субъект понимает, что выражение является кодом JavaScript, оценивает выражение и использует результат в качестве значения для аргумента. Если выражение JS не начинается с символа с префиксом доллара (например, наши выражения начинаются с "Basic"
и authHeader
соответственно), мы должны добавить к выражению префикс $script
, за которым следует один или несколько пробельных символов, чтобы актер знает, что следующая строка - это код JavaScript, а не просто обычный строковый литерал.
Что касается формата базовой схемы аутентификации, вы можете найти более подробную информацию здесь: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Authorization.