Jmeter - отправляет запросы нормально используя параметр, но не используя тело - PullRequest
0 голосов
/ 12 декабря 2018

Я загружаю тестирование API моего сайта.Я пытаюсь отправить запрос на сайт для входа в систему, который требует имя пользователя и пароль.Сначала я настроил менеджер заголовков http, менеджер cookie и запрос http.

Я ввожу имя (имя пользователя, пароль) и значение параметра (скажем, vis, new соответственно) в параметры, затем нажимаю start и тесты успешно завершаются.С другой стороны, если я ввожу пары ключ-значение в виде словаря {"username":"vis","password":"new"} на вкладке тела и затем запускаю снова, тогда заголовок запроса содержит данные публикации (как видно из дерева результатов просмотра), но мой сервер не распознает данные публикации.Он просто возвращает ошибку, как будто никакие данные не были отправлены.

Я также сделал Content-Type как application/json для метода вкладки тела, но я все еще получаю ту же ошибку.

Некоторая ошибкаснимки экрана: настройка заголовка Header setting

Параметры запроса Request parameters

Просмотр результатов в виде дерева - заголовок запроса:

Connection: keep-alive
Content-Type: application/json
Content-Length: 35
Host: url.com
User-Agent: Apache-HttpClient/4.5.6 (Java/1.8.0_191)

request-body:

POST https://url.com/accounts/login.json

POST data:
{"username":"vis","password":"new"}

[no cookies]

Итак, мой запрос работает, когда я отправляю его на вкладке параметров, но не при использовании вкладки данных тела.

1 Ответ

0 голосов
/ 12 декабря 2018

Вы не можете войти, потому что ваше приложение не поддерживает способ предоставления учетных данных.

Если запрос Python для вас работает нормально - просто запишите его, используя HTTP (S) тестовый рекордер сценариев JMeter

  1. Подготовьте JMeter к записи.Самый быстрый способ - использовать функцию J Meter Templates .

    • В главном меню JMeter выберите File -> Templates -> Recording и нажмите «Создать»

      enter image description here

    • Откройте регистратор сценариев HTTP (S) и нажмите «Пуск»

      enter image description here

  2. Измените свой скрипт Python на , используйте JMeter в качестве прокси :

    import requests
    
    jmeter = {
      'http': 'http://localhost:8888',
      'https' : 'http://localhost:8888'
    }
    
    requests.post("https://url.com/accounts/login.json",data={"username":"vis","password":"new"}, proxies=jmeter)
    
  3. Выполните ваш скрипт Python

  4. JMeter будет захватывать его под контроллером записи .Это будет запрос, который вы должны использовать для тестирования:

    enter image description here

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