Перейти к содержимому

Фотография

Выполнить фунцию для генерации токена


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 4

#1 AndreiO

AndreiO

    Новый участник

  • Members
  • Pip
  • 3 сообщений

Отправлено 29 июля 2016 - 13:49

Доброго всем времени суток!

 

С JMeter практически не работал до этого момента, но сейчас надо сделать небольшое нагрузочное тестирование сайта, а именно, для начала, пройти авторизацию, походить по табам и сделать logoff.

Вообщем-то основная проблема возникла с авторизацией, а именно с генерацией токена. Сама авторизация это POST с параметрами email, password, token и еще 1-2. Токен генерится функцией getToken, которая приходит в респонсе GET Token в виде: 

 

function getToken() {
return new String("1") + '2' + new String("f") + String.fromCharCode(100) + String.fromCharCode(50) + "b" + new String("4") + String.fromCharCode(48) + "e" + '8' + String.fromCharCode(53) + 'a' + String.fromCharCode(98) + '3' + String.fromCharCode(52) + String.fromCharCode(51) + String.fromCharCode(55) + new String("f") + '5' + new String("3") + "9" + "6" + '1' + String.fromCharCode(101) + '3' + String.fromCharCode(101) + String.fromCharCode(56) + new String("1") + "8" + 'e' + '1' + 'b';
}

 

Собственно вопрос заключается в том, как этот респонс выполнить в jmeter и получить на выходе стринговый токен, вида "12fd2b40e85ab3437f53961e3e818e1b", который потом записать в переменную и использовать в POST?

 

Скорее всего тема не новая и решение где-то есть, но в поиске ничего для себя ценного не нашел.

 

Возможно кто-то подскажет решение или поделится полезными ссылками по сабжу.

 

Заранее спасибо!


  • 0

#2 soleksenko2702

soleksenko2702

    Постоянный участник

  • Members
  • PipPipPip
  • 193 сообщений
  • ФИО:Олексенко Сергей

Отправлено 01 августа 2016 - 06:42

Если Вам на getToken приходит такой респонс, то нужно взять подстроку

new String("1") + '2' + new String("f") + String.fromCharCode(100) + String.fromCharCode(50) + "b" + new String("4") + String.fromCharCode(48) + "e" + '8' + String.fromCharCode(53) + 'a' + String.fromCharCode(98) + '3' + String.fromCharCode(52) + String.fromCharCode(51) + String.fromCharCode(55) + new String("f") + '5' + new String("3") + "9" + "6" + '1' + String.fromCharCode(101) + '3' + String.fromCharCode(101) + String.fromCharCode(56) + new String("1") + "8" + 'e' + '1' + 'b';

а дальше использую функцию __javaScript() получить токен.


  • 0

#3 AndreiO

AndreiO

    Новый участник

  • Members
  • Pip
  • 3 сообщений

Отправлено 01 августа 2016 - 13:09

Это в целом логично, вопрос в каком блоке jmeter выполнять эту функцию и чем ее достать из респонса, чтобы потом использовать


  • 0

#4 soleksenko2702

soleksenko2702

    Постоянный участник

  • Members
  • PipPipPip
  • 193 сообщений
  • ФИО:Олексенко Сергей

Отправлено 02 августа 2016 - 06:15

Это в целом логично, вопрос в каком блоке jmeter выполнять эту функцию и чем ее достать из респонса, чтобы потом использовать

Чем достать это что вам больше нравится. Как вариант добавить BeanShell PostProcessor в Ваш  Get Token.

В пост процессоре получить респонс можно так:

String resp = prev.getResponseDataAsString();

Взять нужную подстроку думаю не проблема.

 

А потом уже в следующем POST запросе вставить где Вам нужно ${__javaScript(${token})}, где token Ваша подстрока полученная ранее.


  • 0

#5 AndreiO

AndreiO

    Новый участник

  • Members
  • Pip
  • 3 сообщений

Отправлено 03 августа 2016 - 06:48

 

Это в целом логично, вопрос в каком блоке jmeter выполнять эту функцию и чем ее достать из респонса, чтобы потом использовать

Чем достать это что вам больше нравится. Как вариант добавить BeanShell PostProcessor в Ваш  Get Token.

В пост процессоре получить респонс можно так:

String resp = prev.getResponseDataAsString();

Взять нужную подстроку думаю не проблема.

 

А потом уже в следующем POST запросе вставить где Вам нужно ${__javaScript(${token})}, где token Ваша подстрока полученная ранее.

 

Спасибо за помощь. Буду пробовать


  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных