0

I am trying to get a javascript function work with jMeter test plan uing JSR223. It is used to decode a string. I have the below two functions which i need to implement in jmeter:

function AESEncryption(text, passphase, bytessize) {

var key = CryptoJS.enc.Utf8.parse('ABCDEFGHIJKL1234567891234');
var iv = CryptoJS.enc.Utf8.parse('1234567890123456');
var blocksize = bytessize / 2;
var encrypted = CryptoJS.AES.encrypt(CryptoJS.enc.Utf8.parse(text), passphase, key,
{
    keySize: bytessize,
    iv: iv,
    mode: CryptoJS.mode.CBC,
    padding: CryptoJS.pad.Pkcs7
});
var dta = String(encrypted);
return dta;}


function AESDecryption(text, key, bytessize) {
try {
    //alert(text + ":" + key + ":" + bytessize);
    var e = CryptoJS.AES.decrypt(text, key, bytessize);
    //alert("Ec:" + e);
    return CryptoJS.AES.decrypt(text, key, bytessize).toString(CryptoJS.enc.Utf8);
}
catch (Error) {
    return "";}}
1

1 Answer 1

3

You can import external JavaScript into JSR223 Sampler using load directive.

  1. Download latest release of crypto-js from https://github.com/brix/crypto-js/releases (I used 3.1.9) and unpack it to JMeter's "bin" folder
  2. Add the next line to the beginning of your JSR223 script:

    load('crypto-js-3.1.9/crypto-js.js');
    
  3. You should be able to access your JavaScript functions directly in the JSR223 Sampler

    JSR223 JavaScript


Be aware that JavaScript being interpreted via Rhino/Nashorn has serious performance drawbacks therefore if you are planning to call this funciton by many threads it makes more sense to rewrite your functions in Groovy.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.