Как добавить токен как env vars для тестирования API таверны - PullRequest
0 голосов
/ 06 ноября 2019

Я новичок в Tavern API Testing и пытаюсь передать токен как env var (мой API написан на nodejs). Вот мой код

test_name: POST /logs
marks:
  - post_logs
stages:
  - name: post a log entry
    request:
      url: "{host:s}:{port:d}{base_path:s}/investigate/api/{version:s}/logs"
      method: POST
      headers:
        Authorization: "Basic {tavern.env_vars.TOKEN}"
        content-type: application/json
      params:
        body:
          log: blahblahblah
    response:
      status_code: 204

Моя проблема в том, что я не знаю, куда добавить свой токен в env_vars? это специальный файл .env, который мне нужно добавить?

1 Ответ

0 голосов
/ 11 ноября 2019

Вам необходимо определить свой токен как переменную среды в оболочке, из которой вы запускаете тесты Tavern. Есть много способов определить переменную среды. Мои примеры используют синтаксис Bash;вам может понадобиться найти правильный синтаксис, если вы используете другую оболочку. Для тестирования с недолговечным токеном вы можете определить переменную среды прямо в той же командной строке, в которой выполняются тесты:

TOKEN="some_token_value" py.test

Проблема этого подхода заключается в том, что значение токена сохраняется в вашей оболочке. история команд, что не является хорошей практикой безопасности. Лучшим подходом является создание файла для хранения конфиденциальных данных, таких как долгоживущий токен аутентификации. Имя файла не имеет значения, но общий выбор - .env. Содержимое файла должно быть:

export TOKEN="some_token_value"

Если вы используете Git, добавьте .env в ваш файл .gitignore, чтобы учетные данные никогда не добавлялись в репозиторий. Исходный файл .env для установки переменных среды перед запуском тестов:

source .env
py.test

Переменные среды сохраняются только в течение сеанса оболочки, поэтому вам необходимо получать файл каждый раз при открытии новой оболочки(окно терминала или сеанс SSH).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...