У меня есть скрипт encrypt.js, который используется для шифрования и расшифровки пароля, введенного пользователем. Он встроен в веб-страницу приложения.
Я пытаюсь загрузить тот же скрипт в jmeter, используя этот код
load ('/apache-jmeter-5.6.3/scripts/encrypt.js');
при запуске я получил эту ошибку.
2024-02-27 09:55:47,729 ОШИБКА o.a.j.p.j.s.JSR223Sampler: проблема в сценарии JSR223 JSR223 Sampler, сообщение: javax.script.ScriptException: groovy.lang.MissingMethodException: нет подписи метода: org.codehaus.groovy.jsr223.GroovyScriptEngineIm пл. load() применим для типов аргументов: (строковые) значения: [/apache-jmeter-5.6.3/scripts/encrypt.js]
В языке я использовал groovy, так как в выпадающем списке нет javascript. Как я могу успешно импортировать JavaScript в Jmeter?
Попытка загрузить и зашифровать js, предоставленный разработчиком, для успешного входа в приложение.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Если вы пытаетесь использовать функцию Global.load() из Mozilla Rhino для загрузки внешнего файла JavaScript - вы не сможете сделать это с помощью языка Groovy. Вам нужно будет переключиться на javascript
Например, если ваш файл «encrypt.js» имеет следующую функцию:
function myFunction(name) {
return 'Hello, ' + name + '!'
}
вы можете загрузить его и вызвать в JMeter следующим образом:
Однако имейте в виду, что использование JavaScript:
вот какие ошибки я получил 2024-02-27 16:30:35,572 ИНФО o.a.j.m.J.JSR223 Предварительное маскирование пароля - Groovy: Это пароль пользователя: a2 Password_1 2024-02-27 16:30:35,572 ИНФОРМАЦИЯ o.a.j.m.J.JSR223 Предварительное маскирование пароля - Groovy: это замаскированный пароль пользователя: a2 ********** 2024-02-27 16:30:35,572 INFO o.a.j.m.J.JSR223 Предварительное маскирование пароля - Groovy: это ключ шифрования пользователя: a3 60EDW2WQ47CK8VB2KDL5TF7Q7EEYNO95 2024- 02-27 16:30:35,588 ОШИБКА o.a.j.m.JSR223PreProcessor: проблема в сценарии JSR223, предварительное шифрование пароля JSR223 javax.script.ScriptException:
javax.script.ScriptException: org.codehaus.groovy.control.MultipleCompilationErrorsException: сбой при запуске: Script18.groovy: 31: невозможно разрешить класс Cipher @ строка 31, столбец 33. def randomParameterSpec(Closure<Cipher> Factory) { Script18 .groovy: 34: невозможно разрешить класс IvParameterSpec @ строка 34, столбец 5. новый IvParameterSpec(блок) Script18.groovy: 37: невозможно разрешить класс Key @ строка 37, столбец 27. def encrypt(byte[] байты, ключ ключа , спецификация IvParameterSpec, фабрика Closure<Cipher>)
Вам необходимо добавить необходимые операторы импорта , такие как import javax.crypto.Cipher, import javax.crypto.spec.IvParameterSpec и т. д., в начало вашего скрипта. Также ознакомьтесь со статьей 8 лучших классов Java JMeter, которые следует использовать с Groovy , чтобы узнать больше об объектах, специфичных для JMeter, которые вы можете использовать в своих сценариях для доступа, например, к переменным JMeter или записи записей в файл jmeter.log.
понимаю... как я узнаю, какие операторы импорта или пакеты мне нужно добавить в код? Я действительно новичок в этом языке..
Получение этой ошибки сейчас 2024-02-29 09:00:02,105 ОШИБКА o.a.j.p.j.s.JSR223Sampler: проблема в сценарии JSR223. JSR223 Sampler - шифрование пароля, сообщение: javax.script.ScriptException: groovy.lang.MissingPropertyException: нет такого свойства: ENCRYPT_MODE для класса: Script1 javax.script.ScriptException: groovy.lang.MissingPropertyException: такого свойства: ENCRYPT_MODE для класса: Script1 нет. Я включил следующие классы: импорт javax.crypto.Cipher, импорт javax.crypto.spec.IvParameterSpec, импорт javax.crypto.KeyGenerator, импорт java.security.Key import java.security.SecureRandom
попробовал использовать код отсюда groovy.apache.org/blog/encryption-and-decryption-with-groovy, но получил много ошибок.