Как отправить код авторизации из 1 API в другой API, используя Regular Expression Extractor в Jmeter - PullRequest
0 голосов
/ 12 ноября 2018
I have an API name loginUser, which generates the authorization Token, that is to be passed in other subsequent APIs.

    Below is the response:-

    HTTP/1.1 200 OK Date: Sat, 10 Nov 2018 07:08:45 GMT 
    Content-Type: application/json; charset=utf-8 
    Content-Length: 71 Connection: 
    keep-alive Server: nginx/1.10.3 (Ubuntu) 
    X-Powered-By: Express Access-Control-Allow-Origin: * Access-Control-Expose-Headers: date, authorization, x-powered-by, connection, server, access-control-allow-origin, content-type, content-length, x-final-url 

    authorization: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiIyYmEyYjc1My03NWEwLTQxNGYtYWFiOC0zZGY1M2I4YmIwMDEiLCJpc0Nvb2siOnRydWUsImlhdCI6MTU0MTgzMzcyNX0.3FRVpHm4EF2Ahzzy-OjbZ2EeZto6-hSFKHNtG5wcjBs

    Where I want to fetch the authorization.

    I'm using Regular Expression Extractor, but it is throwing below error

org.apache.http.client.ClientProtocolException: URI не определяет допустимое имя хоста: HTTP: /eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiI4MWFiNzI3NS01MWU2LTQyMTctYmJlNC03ZTJlYjk1Y2M1NGYiLCJpc0Nvb2siOnRydWUsImlhdCI6MTU0MTk5NDY0NX0.kI0VrNARu09iG589g80ruqNFkoUQDg2iI9sw2nOuasU в org.apache.http.impl.client.CloseableHttpClient.determineTarget (CloseableHttpClient.java:95)

    Snapshots:-

    [Step_1][1]
    [Step_2][2]
    [Step_3][3]
    [Step_4][4]


      [1]: https://i.stack.imgur.com/x2aC8.png
      [2]: https://i.stack.imgur.com/plORl.png
      [3]: https://i.stack.imgur.com/Xe6aY.png
      [4]: https://i.stack.imgur.com/FQMjZ.png

Пожалуйста, дайте мне знать, что можно сделать, чтобы решить эту проблему. Заранее спасибо.

1 Ответ

0 голосов
/ 12 ноября 2018

Ошибка, которую вы получаете, вообще не связана с экстрактором регулярных выражений, речь идет о каком-то HTTP-запросе сэмплера с неправильным именем хоста

Насколько я вижу, вы можете успешно извлечь значение заголовка, но вы не должны использовать его в качестве имени хоста, скорее всего, оно должно идти:

  • в качестве одного из параметров запроса (т. Е. Непосредственно в теле или как часть URL)
  • как HTTP Cookie
  • как HTTP-заголовок

Таким образом, вам нужно выяснить, как должен передаваться токен, и предоставить туда переменную из экстрактора регулярных выражений, но это, очевидно, не поле «Имя сервера или IP» в сэмплере HTTP-запроса.


Помните о существовании альтернативного способа записи теста JMeter, который автоматически определяет дескрипторы динамических параметров, поэтому вам не придется беспокоиться о извлечении и замене динамических значений. Проверьте Как сократить время написания сценариев JMeter на 80% статья для более подробной информации

...