2016-03-29 13 views
2

Ich habe den folgenden Code in einem jsr223 Sampler:Wie lade ich eine externe js Bibliothek in Jmeter?

var key = "key"; 
var dateStamp = "20160329T134359Z"; 
var regionName = "us-east-1"; 
var serviceName = "execute-api"; 

    var kDate= Crypto.HMAC(Crypto.SHA256, dateStamp, "AWS4" + key, { asBytes: true}) 
    var kRegion= Crypto.HMAC(Crypto.SHA256, regionName, kDate, { asBytes: true }); 
    var kService=Crypto.HMAC(Crypto.SHA256, serviceName, kRegion, { asBytes: true }); 
    var kSigning= Crypto.HMAC(Crypto.SHA256, "aws4_request", kService, { asBytes: true }); 
    vars.put("AWSKey", kSigning); 

Nun, wenn ich es laufen bekomme ich diesen Fehler: Code Antwort: 500 Response-Nachricht: javax.script.ScriptException: sun.org.mozilla. javascript.internal.EcmaError: ReferenceError: "Crypto" ist nicht definiert. (# 6) in Zeile 6

Offensichtlich habe ich nicht die Crypto-Bibliotheken. Ich habe jedoch keine Lust, sie zu laden. Ich lud alle relatanten js herunter und steckte sie in den Ordner/lib und immer noch nichts. Ich habe diese Datei heruntergeladen: https://github.com/Boussetta/CryptoJS-v3.1.2 Welche behandelt die Funktionen in den Code oben, aber für das Leben von mir habe ich keine Ahnung, wie man es importiert.

TIA

Antwort

1

Wenn Sie JavaScript gehen wollen - gibt es 2 Möglichkeiten:

  1. Verwenden Rhino load() Methode wie:

    load("crypto.js")

  2. Verwenden HmacUtils Klasse von Apache Commons Codec von JavaScript

    var rawhmac = org.apache.commons.codec.digest.HmacUtils.hmacSha1(key,data) 
    var encoded = org.apache.commons.codec.binary.Base64.encodeBase64String(rawhmac) 
    

Jedoch habe ich für die Option 3 gehen würde empfehlen - Schalter auf "groovy" Sprache statt JavaScript, um auf diese Weise werden Sie in der Lage sein:

+1

danke. Ich habe versucht 1 und 2 und es hat immer noch nicht funktioniert. Ihre Beispiel-URL ist kaputt, stört es Sie, wenn Sie erneut senden können? TIA –