Как вызвать внешние методы файлов JavaScript из JMeter


person Mike    schedule 13.11.2012    source источник


Ответы (1)


Вам не нужно использовать какие-либо внешние библиотеки JS для создания HMAC. Эта функция доступна в Java SE. Вы можете использовать Beanshell Sampler для выполнения кода Java.

Если бы эта функция не была доступна в Java SE, вы могли бы:

  • используйте Sampler процесса ОС
  • используйте BSF Sampler, установите язык на javascript и прикрепите файл со скриптом
  • поместите Jar выбранной библиотеки в папку lib Jmeter. Затем эта библиотека будет загружена JMeter во время запуска, и вы можете использовать ее через семплер Beanshell.
person Andrei Botalov    schedule 13.11.2012
comment
Спасибо за ответ. Я новичок в JMeter и BeanShell и имею опыт работы на C #, поэтому мне может потребоваться некоторое время, чтобы реализовать это с помощью Java / BeanShell. Я рассмотрю ваше предложение как альтернативу вызову методов внешних файлов JavaScript. Кто-нибудь знает, можно ли вызывать внешние методы JavaScript из JMeter? - person Mike; 14.11.2012
comment
@Mike, как я уже сказал, можно использовать OS Process Sampler. Но лучше будет использовать Beanshell - person Andrei Botalov; 14.11.2012
comment
Вы также можете использовать BSF Sampler, установить язык на javascript и прикрепить файл со сценарием - person Andrei Botalov; 14.11.2012
comment
Спасибо, что указали мне правильное направление. Из-за нехватки времени я остановился на решении JavaScript, которое мне удобнее. Я использовал сэмплер BSF в соответствии с вашим последним комментарием, но все еще испытываю проблемы с вызовом кода из внешнего файла JS. В конце концов, чтобы понять суть проблемы, я просто вставил код из двух файлов, которые мне нужны, hmac-sha256.js и enc-base64-min.js, в скрипт для запуска текстовой области. Я тогда назвал это так: - person Mike; 14.11.2012
comment
Оппс. Размещено до завершения комментария: var hash = CryptoJS.HmacSHA256("TextToHash", "Secret"); hash = hash.toString(CryptoJS.enc.Base64); vars.put("hash", hash); Затем я смог ссылаться на эту переменную в моем сэмплере запросов <a:hash>${hash}</a:hash> - person Mike; 14.11.2012