Как мне запустить скрипт Node-js в Artillery.io, не включая его в сценарий загрузки теста

Я должен загрузить тестовый сценарий, где пользователь добавляет контакт в свою адресную книгу. Для этого пользователь должен сначала войти в свою учетную запись.
У меня есть скрипт Nodejs "AutoLogin.js", который выполняет вход для пользователя, и файл json "contact.json", который имеет необходимые параметры конфигурации и параметры запроса POST для добавления контакта в адресную книгу.
Артиллерия запускает файл contact.json.

 {
  "config": {
    "target": "target url",
    "https": {
        "tls": {
          "rejectunauthorized": false
        }
    },
    "phases": [
      {
        "duration": 10,
        "arrivalRate": 2
      }
    ]
  },
  "scenarios": [
    {
      "flow": [
        {
          "post": {
            "url": "/addContact",
            "contactInfo": {
              "Name": "Davion",
              "Mobile": "9289543654",
              "Email": "Davion@gmail.com"
            }
          }
        }
      ]
    }
  ]
}

Данный код отправляет 2 почтовых запроса / сек, т.е. имитирует 20 пользователей, добавляющих контакт в адресную книгу в течение 10 секунд.
Мне нужно выполнить вход в систему до запуска этого кода, так как добавление контакта без входа в систему невозможно.
Кроме того, я не хочу, чтобы процесс входа в систему был включен в нагрузочный тест. Есть ли способ, которым я могу запустить свой скрипт 'AutoLogin.js' в файле 'contact.json', не включая его в нагрузочный тест, а затем запустив 'contact.json' с помощью Artillery?

1 ответ

Если вам нужно войти перед каждым запросом:

  1. в config раздел файла YAML, добавьте processor строка с указанным вами пользовательским JS. Обратите внимание, что ваш JS, как ожидается, будет стандартным модулем Node.js:
"config": {
  "processor": "AutoLogin.js"
}
  1. в post действие вашего потока, добавьте строку для beforeRequest крюк:
"post": {
  "url": "/addContact",
  "beforeRequest": "functionFromAutoLogin", 
  "contactInfo": {
    "Name": "Davion",
    "Mobile": "9289543654",
    "Email": "Davion@gmail.com"
  }
}

От: https://artillery.io/docs/http-reference/

См. Также https://artillery.io/docs/script-reference/ для использования CSV для тестовых данных.

Другие вопросы по тегам