20. Funktionen und Variablen

JMeter-Funktionen sind spezielle Werte, die Felder eines beliebigen Samplers oder eines anderen Elements in einer Teststruktur füllen können. Ein Funktionsaufruf sieht so aus:

${__Funktionsname(var1,var2,var3)}

Wobei „__functionName“ mit dem Namen einer Funktion übereinstimmt.
Klammern umgeben die an die Funktion gesendeten Parameter, zum Beispiel ${__time(YMD)} Die tatsächlichen Parameter variieren von Funktion zu Funktion. Funktionen, die keine Parameter benötigen, können die Klammern weglassen, zum Beispiel ${__threadNum} .

Wenn ein Funktionsparameter ein Komma enthält, stellen Sie sicher, dass Sie dies mit " \ " maskieren, da JMeter es andernfalls als Parametertrennzeichen behandelt. Zum Beispiel:

${__time(EEE\, d MMM jjjj)}
Wenn das Komma nicht maskiert wird – z. B. ${__javaScript(Math.max(2,5))} – erhalten Sie eine Fehlermeldung wie die folgende:
FEHLER - jmeter.functions.JavaScript: Fehler bei der Verarbeitung von Javascript: [Math.max(2)
    org.mozilla.javascript.EvaluatorException: missing ) nach Argumentliste (<cmd>#1)
 
Dies liegt daran, dass die Zeichenfolge " Math.max(2,5) " als zwei Parameter für die __javascript-Funktion behandelt wird:
Math.max(2 und 5)
Andere Fehlermeldungen sind möglich.

Variablen werden wie folgt referenziert:

${VARIABLE}

Wenn auf eine nicht definierte Funktion oder Variable verwiesen wird, meldet/protokolliert JMeter keinen Fehler – die Referenz wird unverändert zurückgegeben. Wenn beispielsweise UNDEF nicht als Variable definiert ist, dann ist der Wert von $ {UNDEF} ${UNDEF} . Bei Variablen, Funktionen (und Eigenschaften) wird die Groß- und Kleinschreibung beachtet. JMeter entfernt vor der Verwendung Leerzeichen aus Variablennamen, sodass beispielsweise ${__Random(1,63, LOTTERY )} die Variable ' LOTTERY ' anstelle von '  LOTTERY  ' verwendet.

Eigenschaften sind nicht dasselbe wie Variablen. Variablen sind für einen Thread lokal; Eigenschaften sind allen Threads gemeinsam und müssen mit der Funktion __P oder __property referenziert werden.
Wenn Sie \ vor einer Variablen für einen Windows-Pfad verwenden, zum Beispiel C:\test\${test} , stellen Sie sicher, dass Sie das Zeichen \ mit Escapezeichen versehen , sonst interpretiert JMeter die Variable nicht, Beispiel: C:\\test\\${test} .
Verwenden Sie alternativ einfach / anstelle des Pfadtrennzeichens – z . B. C:/test/${test} – Windows-JVMs konvertieren die Trennzeichen nach Bedarf.

Liste der Funktionen, lose in Typen gruppiert.

Art der FunktionNameKommentarSeit
Information threadNumThreadnummer bekommen1.X
Information threadGruppennameThread-Gruppennamen erhalten4.1
Information SamplerNameHolen Sie sich den Sampler-Namen (Label)2.5
Information Maschinen-IPRufen Sie die IP-Adresse des lokalen Computers ab2.6
Information MaschinennameHolen Sie sich den Namen des lokalen Computers1.X
Information ZeitAktuelle Zeit in verschiedenen Formaten zurückgeben2.2
Information Zeitverschiebunggibt ein Datum in verschiedenen Formaten zurück, wobei die angegebene Anzahl von Sekunden/Minuten/Stunden/Tagen hinzugefügt wird3.3
Information Protokolleine Nachricht protokollieren (oder anzeigen) (und den Wert zurückgeben)2.2
Information anmeldeneine Nachricht protokollieren (oder anzeigen) (leerer Rückgabewert)2.2
Eingang StringFromFileliest eine Zeile aus einer Datei1.9
Eingang FileToStringeine ganze Datei lesen2.4
Eingang CSVLesenaus einer CSV-Datei mit Trennzeichen lesen1.9
Eingang XPathVerwenden Sie einen XPath-Ausdruck, um aus einer Datei zu lesen2.0.3
Eingang StringToFileeinen String in eine Datei schreiben5.2
Berechnung Zählergeneriert eine aufsteigende Zahl1.X
Formatierung dateTimeConvertKonvertieren Sie ein Datum oder eine Uhrzeit vom Quell- in das Zielformat4.0
Berechnung verdauenDigest generieren (SHA-1, SHA-256, MD5...)4.0
Berechnung intSumInt-Zahlen hinzufügen1.8.1
Berechnung langeSummelange Zahlen hinzufügen2.3.2
Berechnung Zufälligeine Zufallszahl generieren1.9
Berechnung Zufälliges DatumGenerieren Sie ein zufälliges Datum innerhalb eines bestimmten Datumsbereichs3.3
Berechnung RandomFromMultipleVarsextrahiert ein Element aus den Werten einer Reihe von Variablen, die durch | getrennt sind3.1
Berechnung ZufallsStringGenerieren Sie eine zufällige Zeichenfolge2.6
Berechnung UUIDGenerieren Sie eine zufällige UUID vom Typ 42.9
Skripterstellung groovigFühren Sie ein Apache Groovy-Skript aus3.1
Skripterstellung BohnenschaleFühren Sie ein BeanShell-Skript aus1.X
Skripterstellung JavascriptJavaScript verarbeiten (Nashorn)1.9
Skripterstellung jexl2einen Commons-Jexl2-Ausdruck auswertenjexl2(2.1.1)
Skripterstellung jexl3einen Commons-Jexl3-Ausdruck auswertenjexl3 (3.0)
Eigenschaften istPropDefined Testen Sie, ob eine Eigenschaft vorhanden ist4.0
Eigenschaften Eigentum Lesen Sie eine Eigenschaft2.0
Eigenschaften PLesen einer Eigenschaft (Kurzschriftmethode)2.0
Eigenschaften setPropertyLegen Sie eine JMeter-Eigenschaft fest2.1
Variablen TeiltTeilen Sie einen String in Variablen auf2.0.2
Variablen auswertenWerten Sie einen Variablenausdruck aus2.3.1
Variablen BewertungVareinen in einer Variablen gespeicherten Ausdruck auswerten2.3.1
Eigenschaften ist VarDefined Testen Sie, ob eine Variable existiert4.0
Variablen vWerten Sie einen Variablennamen aus2.3RC3
Schnur verkohlenGenerieren Sie Unicode-Zeichenwerte aus einer Liste von Zahlen2.3.3
Schnur changeCaseÄndern Sie den Fall nach verschiedenen Modi4.0
Schnur FluchtHtmlCodieren Sie Zeichenfolgen mit HTML-Codierung2.3.3
Schnur escapeOroRegexpCharsZitieren Sie Metazeichen, die vom regulären ORO-Ausdruck verwendet werden2.9
Schnur entkommenXmlCodieren Sie Zeichenfolgen mithilfe der XML-Codierung3.2
Schnur Regex-FunktionVorherige Antwort mit einem regulären Ausdruck parsen1.X
Schnur nicht entkommenStrings verarbeiten, die Java-Escapes enthalten (z. B. \n & \t)2.3.3
Schnur unescapeHtmlDecodieren Sie HTML-codierte Zeichenfolgen2.3.3
Schnur URL-CodeEntschlüsseln Sie eine application/x-www-form-urlencoded-Zeichenfolge2.10
Schnur URL-CodeCodieren Sie einen String in einen application/x-www-form-urlencoded-String2.10
Schnur TestplanNameRückgabename des aktuellen Testplans2.6

20.1 Was Funktionen können

Es gibt zwei Arten von Funktionen: benutzerdefinierte statische Werte (oder Variablen) und integrierte Funktionen.
Benutzerdefinierte statische Werte ermöglichen es dem Benutzer, Variablen zu definieren, die durch ihren statischen Wert ersetzt werden, wenn ein Testbaum kompiliert und zur Ausführung übermittelt wird. Dieser Austausch erfolgt einmalig zu Beginn des Testlaufs. Dies könnte zum Beispiel verwendet werden, um das DOMAIN-Feld aller HTTP-Anforderungen zu ersetzen – wodurch es einfach wird, einen Test so zu ändern, dass er denselben Test auf einen anderen Server ausrichtet.

Beachten Sie, dass Variablen derzeit nicht verschachtelt werden können; dh ${Var${N}} funktioniert nicht. Dazu kann die Funktion __V (Variable) verwendet werden: ${__V(Var${N})} . Sie können auch ${__BeanShell(vars.get("Var${N}")} verwenden .

Diese Art des Austauschs ist ohne Funktionen möglich, war aber weniger bequem und weniger intuitiv. Benutzer mussten Standardkonfigurationselemente erstellen, die leere Werte von Samplern ausfüllen würden. Variablen ermöglichen es, nur einen Teil eines bestimmten Werts zu ersetzen und nicht nur leere Werte auszufüllen.

Mit integrierten Funktionen können Benutzer zur Laufzeit neue Werte basierend auf früheren Antwortdaten, dem Thread, in dem sich die Funktion befindet, der Zeit und vielen anderen Quellen berechnen. Diese Werte werden im Laufe des Tests für jede Anfrage neu generiert.

Funktionen werden zwischen Threads geteilt. Jedes Vorkommen eines Funktionsaufrufs in einem Testplan wird von einer separaten Funktionsinstanz behandelt.

20.2 Wo können Funktionen und Variablen verwendet werden?

Funktionen und Variablen können in jedes Feld jeder Testkomponente geschrieben werden (außer dem TestPlan - siehe unten). Einige Felder lassen keine zufälligen Zeichenfolgen zu, da sie Zahlen erwarten und daher keine Funktion akzeptieren. Die meisten Felder lassen jedoch Funktionen zu.

Funktionen, die im Testplan verwendet werden, unterliegen einigen Einschränkungen. JMeter-Thread-Variablen wurden nicht vollständig eingerichtet, wenn die Funktionen verarbeitet werden, sodass als Parameter übergebene Variablennamen nicht eingerichtet werden und Variablenreferenzen nicht funktionieren, sodass split() und regex() und die Variablenauswertungsfunktionen funktionieren. Ich arbeite nicht. Die Funktion threadNum() funktioniert nicht (und ist auf Testplanebene nicht sinnvoll). Die folgenden Funktionen sollten auf dem Testplan funktionieren:

  • intSum
  • langeSumme
  • Maschinenname
  • Bohnenschale
  • groovig
  • Javascript
  • jexl2/jexl3
  • zufällig
  • Zeit
  • Eigentumsfunktionen
  • Log-Funktionen

Konfigurationselemente werden von einem separaten Thread verarbeitet. Daher funktionieren Funktionen wie __threadNum in Elementen wie benutzerdefinierten Variablen nicht richtig. Beachten Sie auch, dass in einem UDV-Element definierte Variablen nicht verfügbar sind, bis das Element verarbeitet wurde.

Denken Sie bei der Verwendung von Variablen-/Funktionsreferenzen in SQL-Code (usw.) daran, alle erforderlichen Anführungszeichen für Textzeichenfolgen einzuschließen, dh use
Element aus Tabelle auswählen, wobei name='${VAR}'
nicht
Element aus Tabelle auswählen, wobei Name=${VAR}
(es sei denn , VAR selbst enthält die Anführungszeichen)

20.3 Referenzieren von Variablen und Funktionen

Der Verweis auf eine Variable in einem Testelement erfolgt durch Einklammern des Variablennamens in ' ${ ' und ' } '.

Auf Funktionen wird auf die gleiche Weise verwiesen, aber per Konvention beginnen die Namen von Funktionen mit " __ ", um Konflikte mit Benutzerwertnamen * zu vermeiden . Einige Funktionen nehmen Argumente, um sie zu konfigurieren, und diese stehen in Klammern, durch Kommas getrennt. Wenn die Funktion keine Argumente akzeptiert, können die Klammern weggelassen werden.

Argumentwerte, die selbst Kommas enthalten, sollten nach Bedarf maskiert werden. Wenn Sie ein Komma in Ihren Parameterwert einfügen müssen, maskieren Sie es wie folgt: ' \, '. Dies gilt beispielsweise für die Skriptfunktionen - Javascript, Beanshell, Jexl, Groovy - wo es notwendig ist, Kommas zu maskieren, die in Skriptmethodenaufrufen benötigt werden - z

${__BeanShell(vars.put("name"\,"value"))}

Alternativ können Sie Ihr Skript als Variable definieren, z. B. auf dem Testplan:

SCRIPT vars.put("name","wert")
Das Skript kann dann wie folgt referenziert werden:
${__BeanShell(${SCRIPT})}
Es ist nicht erforderlich, Kommas in der SCRIPT -Variablen zu maskieren, da der Funktionsaufruf analysiert wird, bevor die Variable durch ihren Wert ersetzt wird. Dies funktioniert gut in Verbindung mit den JSR223- oder BeanShell-Samplern, da diese zum Testen von Javascript-, Jexl- und BeanShell-Skripten verwendet werden können.

Funktionen können auf Variablen und andere Funktionen verweisen, zum Beispiel verwendet ${__XPath(${__P(xpath.file),${XPATH})} die Eigenschaft " xpath.file " als Dateinamen und den Inhalt der Variablen XPATH als der Ausdruck, nach dem gesucht werden soll.

JMeter bietet ein Tool, mit dem Sie Funktionsaufrufe für verschiedene integrierte Funktionen erstellen können, die Sie dann kopieren und einfügen können. Werte werden nicht automatisch für Sie maskiert, da Funktionen Parameter für andere Funktionen sein können und Sie nur Werte maskieren sollten, die Sie als Literal beabsichtigen.

Wenn eine Zeichenfolge einen Backslash (' \ ') und auch eine Funktions- oder Variablenreferenz enthält, wird der Backslash entfernt, wenn er vor ' $ ' oder ' , ' oder ' \ ' steht. Dieses Verhalten ist erforderlich, um verschachtelte Funktionen zuzulassen, die Kommas oder die Zeichenfolge ${ enthalten . Backslashes vor ' $ ' oder ' , ' oder ' \ ' werden nicht entfernt, wenn der String keine Funktions- oder Variablenreferenz enthält.

Der Wert einer Variablen oder Funktion kann mit der Funktion __logn() gemeldet werden . Die Funktionsreferenz __logn() kann überall im Testplan verwendet werden, nachdem die Variable definiert wurde. Alternativ kann der Java-Request-Sampler verwendet werden, um ein Beispiel mit Variablenreferenzen zu erstellen; die Ausgabe wird im entsprechenden Listener angezeigt. Beachten Sie, dass es einen Debug-Sampler gibt, der verwendet werden kann, um die Werte von Variablen usw. im Tree View Listener anzuzeigen.

* Wenn Sie eine benutzerdefinierte statische Variable mit demselben Namen wie eine integrierte Funktion definieren, überschreibt Ihre statische Variable die integrierte Funktion.

20.4 Der Funktionshelfer-Dialog

Das Dialogfeld "Funktionshilfe" ist im Menü "Extras" von JMeter verfügbar.

Funktionshelferdialog
Funktionshelferdialog

Mit dem Funktionshelfer können Sie eine Funktion aus dem Pulldown-Menü auswählen und ihren Argumenten Werte zuweisen. Die linke Spalte in der Tabelle enthält eine kurze Beschreibung des Arguments, und in die rechte Spalte schreiben Sie den Wert für dieses Argument ein. Unterschiedliche Funktionen nehmen unterschiedliche Argumente entgegen.

Wenn Sie dies getan haben, klicken Sie auf die Schaltfläche "Generieren", und die entsprechende Zeichenfolge wird generiert, damit Sie sie an beliebiger Stelle in Ihren Testplan kopieren und einfügen können.

20.5 Funktionen

__regexFunktion

Die Regex-Funktion wird verwendet, um die vorherige Antwort (oder den Wert einer Variablen) mithilfe eines beliebigen regulären Ausdrucks (vom Benutzer bereitgestellt) zu analysieren. Die Funktion gibt die Vorlagenzeichenfolge mit ausgefüllten Variablenwerten zurück.

Die __regexFunction kann auch Werte für die zukünftige Verwendung speichern. Im sechsten Parameter können Sie einen Referenznamen angeben. Nachdem diese Funktion ausgeführt wurde, können dieselben Werte später mithilfe der Syntax für benutzerdefinierte Werte abgerufen werden. Wenn Sie beispielsweise " refName " als sechsten Parameter eingeben, können Sie Folgendes verwenden:

  • ${refName} , um auf das berechnete Ergebnis des zweiten Parameters ("Vorlage für die Ersetzungszeichenfolge") zu verweisen, das von dieser Funktion analysiert wurde
  • ${refName_g0} , um auf die gesamte von dieser Funktion geparste Übereinstimmung zu verweisen.
  • ${refName_g1} , um auf die erste Gruppe zu verweisen, die von dieser Funktion geparst wird.
  • ${refName_g#} , um auf die n -te Gruppe zu verweisen, die von dieser Funktion geparst wird.
  • ${refName_matchNr} , um auf die Anzahl der von dieser Funktion gefundenen Gruppen zu verweisen.
Wenn Sie verteiltes Testen verwenden, stellen Sie sicher, dass Sie den Modus wechseln (siehe jmeter.properties ), damit es kein Stripping-Modus ist, siehe Bug 56376

Parameter

Attribut
Beschreibung
Erforderlich
Erstes Argument
Das erste Argument ist der reguläre Ausdruck, der auf die Antwortdaten angewendet werden soll. Es wird alle Streichhölzer greifen. Stellen Sie sicher, dass Sie alle Teile dieses Ausdrucks, die Sie in Ihrer Vorlagenzeichenfolge verwenden möchten, in Klammern setzen. Beispiel: <a href="(.*)"> . Dadurch wird der Wert des Links erfasst und als erste Gruppe gespeichert (es gibt nur eine Gruppe). Ein weiteres Beispiel: <input type="hidden" name="(.*)" value="(.*)"> . Dadurch wird der Name als erste Gruppe und der Wert als zweite Gruppe erfasst. Diese Werte können in Ihrer Vorlagenzeichenfolge verwendet werden
Ja
Zweites Argument
Dies ist die Vorlagenzeichenfolge, die die Funktion zur Laufzeit ersetzt. Um auf eine im regulären Ausdruck erfasste Gruppe zu verweisen, verwenden Sie die Syntax: $[group_number]$ . Dh: $1$ oder $2$ . Ihre Vorlage kann eine beliebige Zeichenfolge sein.
Ja
Drittes Argument
Das dritte Argument teilt JMeter mit, welche Übereinstimmung verwendet werden soll. Ihr regulärer Ausdruck findet möglicherweise zahlreiche Übereinstimmungen. Sie haben vier Möglichkeiten:
  • Eine Ganzzahl - Weist JMeter an, diese Übereinstimmung zu verwenden. ' 1 ' für die erste gefundene Übereinstimmung, ' 2 ' für die zweite und so weiter
  • RAND - Weist JMeter an, zufällig eine Übereinstimmung auszuwählen.
  • ALL - Weist JMeter an, alle Übereinstimmungen zu verwenden und für jede eine Vorlagenzeichenfolge zu erstellen und sie dann alle zusammen anzuhängen. Diese Option wird wenig genutzt.
  • Eine Gleitkommazahl zwischen 0 und 1 - weist JMeter an, die X -te Übereinstimmung mit der Formel zu finden: (number_of_matches_found * float_number) gerundet auf die nächste Ganzzahl.
Nein, Standard = 1
Viertes Argument
Wenn für den obigen Argumentwert „ ALL “ ausgewählt wurde, wird dieses Argument zwischen jede angehängte Kopie des Vorlagenwerts eingefügt.
Nein
Fünftes Argument
Zurückgegebener Standardwert, wenn keine Übereinstimmung gefunden wird
Nein
Sechstes Argument
Ein Referenzname für die Wiederverwendung der von dieser Funktion analysierten Werte.
Gespeicherte Werte sind ${refName} (die Ersetzungsvorlagenzeichenfolge) und ${refName_g#}, wobei „ # “ die Gruppennummer aus dem regulären Ausdruck ist („ 0 “ kann verwendet werden, um auf die gesamte Übereinstimmung zu verweisen).
Nein
Siebtes Argument
Variablennamen eingeben. Wenn angegeben, wird der Wert der Variablen als Eingabe verwendet, anstatt das vorherige Beispielergebnis zu verwenden.
Nein
^

__Zähler

Der Zähler generiert bei jedem Aufruf eine neue Zahl, beginnend mit 1 und jeweils um +1 inkrementierend. Der Zähler kann so konfiguriert werden, dass die Werte jedes simulierten Benutzers getrennt bleiben oder derselbe Zähler für alle Benutzer verwendet wird. Wenn die Werte jedes Benutzers separat erhöht werden, entspricht dies dem Zählen der Anzahl der Iterationen durch den Testplan. Ein globaler Zähler ist wie das Zählen, wie oft diese Anfrage ausgeführt wurde.

Der Zähler verwendet eine Integer-Variable, um die Zählung zu halten, die daher maximal 2.147.483.647 beträgt.

Die Zählerfunktionsinstanzen sind vollständig unabhängig. Der globale Zähler – „ FALSE “ – wird von jeder Zählerinstanz separat gepflegt.

Mehrere __counter- Funktionsaufrufe in derselben Iteration erhöhen den Wert nicht weiter.
Wenn Sie einen Zählwert haben möchten, der sich für jedes Sample erhöht, verwenden Sie die Funktion in einem Pre-Processor wie User Parameters .

Parameter

Attribut
Beschreibung
Erforderlich
Erstes Argument
TRUE , wenn Sie möchten, dass der Zähler jedes simulierten Benutzers unabhängig und getrennt von den anderen Benutzern gehalten wird. FALSE für einen globalen Zähler.
Ja
Zweites Argument
Ein Referenzname zur Wiederverwendung des von dieser Funktion erstellten Werts.
Gespeicherte Werte haben das Format ${refName} . Auf diese Weise können Sie einen Zähler behalten und an mehreren Stellen auf seinen Wert verweisen.
Nein
^

__threadNum

Die Thread-Nummernfunktion gibt einfach die Nummer des aktuell ausgeführten Threads zurück. Diese Nummern sind in Bezug auf ihre ThreadGroup nur lokal eindeutig, was bedeutet, dass Thread Nr. 1 in einer Threadgruppe aus Sicht dieser Funktion nicht von Thread Nr. 1 in einer anderen Threadgruppe zu unterscheiden ist.

Die Funktion gibt eine Zahl zwischen eins und der maximalen Anzahl laufender Threads zurück. Beachten Sie, dass bei Verwendung von JSR223-Code mit dem JMeterContext- Objekt ( ctx - Variable) der folgende Code eine Zahl zwischen null und (maximale Anzahl laufender Threads minus eins) zurückgibt.
ctx.getThreadNum()

Für diese Funktion gibt es keine Argumente.

Anwendungsbeispiel:

${__threadNum}
gibt eine Zahl zwischen 1 und der maximalen Anzahl von laufenden Threads zurück, die in der enthaltenden Thread-Gruppe konfiguriert sind

Diese Funktion funktioniert nicht in Konfigurationselementen (z. B. benutzerdefinierte Variablen), da diese von einem separaten Thread ausgeführt werden. Es macht auch keinen Sinn, es im Testplan zu verwenden.
^

__threadGroupName

Die Funktion Name der Thread-Gruppe gibt einfach den Namen der Thread-Gruppe zurück, die gerade ausgeführt wird.

Für diese Funktion gibt es keine Argumente.

Anwendungsbeispiel:

${__threadGroupName}

Diese Funktion funktioniert nicht in Konfigurationselementen (z. B. benutzerdefinierte Variablen), da diese von einem separaten Thread ausgeführt werden. Es macht auch keinen Sinn, es im Testplan zu verwenden.
^

__intSumme

Die intSum-Funktion kann verwendet werden, um die Summe von zwei oder mehr ganzzahligen Werten zu berechnen.

Der Referenzname ist optional, darf aber keine gültige Ganzzahl sein.

Parameter

Attribut
Beschreibung
Erforderlich
Erstes Argument
Der erste int-Wert.
Ja
Zweites Argument
Der zweite int-Wert.
Ja
ntes Argument
Der n -te int-Wert.
Nein
letztes Argument
Ein Referenzname zur Wiederverwendung des von dieser Funktion berechneten Werts. Falls angegeben, muss der Referenzname mindestens ein nicht numerisches Zeichen enthalten, andernfalls wird er als ein weiterer hinzuzufügender int-Wert behandelt.
Nein

Beispiele:

${__intSum(2,5,MYVAR)}
gibt 7 (2+5) zurück und speichert das Ergebnis in der Variablen MYVAR. Also ist ${MYVAR} gleich 7.
${__intSum(2,5,7)}
gibt 14 (2+5+7) zurück und speichert das Ergebnis in der Variablen MYVAR.
${__intSum(1,2,5,${MYVAR})}
gibt 16 zurück, wenn der MYVAR-Wert gleich 8 ist, 1+2+5+${MYVAR})

^

__langeSumme

Die longSum-Funktion kann verwendet werden, um die Summe von zwei oder mehr langen Werten zu berechnen, verwenden Sie diese anstelle von __intSum, wenn Sie wissen, dass Ihre Werte nicht im Intervall -2147483648 bis 2147483647 liegen.

Parameter

Attribut
Beschreibung
Erforderlich
Erstes Argument
Der erste lange Wert.
Ja
Zweites Argument
Der zweite lange Wert.
Ja
ntes Argument
Der n -te lange Wert.
Nein
letztes Argument
Ein Referenzname zur Wiederverwendung des von dieser Funktion berechneten Werts. Falls angegeben, muss der Referenzname mindestens ein nicht numerisches Zeichen enthalten, andernfalls wird er als weiterer hinzuzufügender langer Wert behandelt.
Nein

Beispiele:

${__longSum(2,5,MYVAR)}
gibt 7 (2+5) zurück und speichert das Ergebnis in der Variablen MYVAR. Also ist ${MYVAR} gleich 7.
${__longSum(2,5,7)}
gibt 14 (2+5+7) zurück und speichert das Ergebnis in der Variablen MYVAR.
${__longSum(1,2,5,${MYVAR})}
gibt 16 zurück, wenn der MYVAR-Wert gleich 8 ist, 1+2+5+${MYVAR})

^

__StringFromFile

Die StringFromFile-Funktion kann verwendet werden, um Zeichenfolgen aus einer Textdatei zu lesen. Dies ist nützlich für die Ausführung von Tests, die viele variable Daten erfordern. Wenn Sie beispielsweise eine Bankanwendung testen, können Hunderte oder Tausende verschiedener Kontonummern erforderlich sein.

Siehe auch das CSV-Datensatz-Konfigurationstestelement, das möglicherweise einfacher zu verwenden ist. Dies unterstützt jedoch derzeit nicht mehrere Eingabedateien.

Bei jedem Aufruf liest es die nächste Zeile aus der Datei. Alle Threads teilen sich dieselbe Instanz, sodass verschiedene Threads unterschiedliche Zeilen erhalten. Wenn das Ende der Datei erreicht ist, beginnt sie wieder von vorne zu lesen, es sei denn, die maximale Schleifenanzahl wurde erreicht. Wenn in einem Testskript mehrere Verweise auf die Funktion vorhanden sind, wird die Datei unabhängig voneinander geöffnet, auch wenn die Dateinamen identisch sind. [Wenn der Wert an anderer Stelle wiederverwendet werden soll, verwenden Sie für jeden Funktionsaufruf unterschiedliche Variablennamen.]

Funktionsinstanzen werden von Threads gemeinsam genutzt, und die Datei wird (erneut) von dem Thread geöffnet, der zufällig die nächste Eingabezeile benötigt, sodass die Verwendung von threadNumber als Teil des Dateinamens zu unvorhersehbarem Verhalten führt.

Wenn beim Öffnen oder Lesen der Datei ein Fehler auftritt, gibt die Funktion die Zeichenfolge „ **ERR** “ zurück.

Parameter

Attribut
Beschreibung
Erforderlich
Dateiname
Pfad zum Dateinamen. (Der Pfad kann relativ zum JMeter-Startverzeichnis sein.) Wenn optionale Sequenznummern verwendet werden, sollte der Pfadname für die Übergabe an DecimalFormat geeignet sein. Siehe unten für Beispiele.
Ja
Variablennamen
Ein Referenzname – refName – zur Wiederverwendung des von dieser Funktion erstellten Werts. Gespeicherte Werte haben das Format ${refName} . Standardmäßig " StringFromFile_ ".
Nein
Sequenznummer starten
Anfangssequenznummer (wenn weggelassen, wird die Endsequenznummer als Schleifenzähler behandelt)
Nein
Sequenznummer beenden
Endgültige Sequenznummer (wenn weggelassen, können Sequenznummern unbegrenzt erhöht werden)
Nein

Der Dateinamenparameter wird aufgelöst, wenn die Datei geöffnet oder erneut geöffnet wird.

Der Parameter Referenzname (sofern angegeben) wird bei jeder Ausführung der Funktion aufgelöst.

Verwendung von Sequenznummern:

Bei Verwendung der optionalen Sequenznummern wird der Pfadname als Formatzeichenfolge für java.text.DecimalFormat verwendet . Als einziger Parameter wird die aktuelle Sequenznummer übergeben. Wenn die optionale Startnummer nicht angegeben ist, wird der Pfadname unverändert verwendet. Nützliche Formatierungssequenzen sind:

#
Geben Sie die Nummer ein, ohne führende Nullen oder Leerzeichen
000
fügen Sie die auf drei Ziffern gepackte Nummer ggf. mit führenden Nullen ein
Verwendung von Formatstrings
Hier sind einige Formatzeichenfolgen und die entsprechenden Sequenzen, die sie generieren.
pin#'.'dat
Erzeugt die Ziffern ohne führende Nullen und behandelt den Punkt wörtlich wie
pin1.dat , …, pin9.dat , pin10.dat , …, pin9999.dat
pin000'.'dat
Erzeugt führende Nullen, während der Punkt beibehalten wird. Wenn die Nummern beginnen, mehr Ziffern als die drei Ziffern zu haben, die dieses Format vorschlägt, verwendet die Sequenz mehr Ziffern, wie in
pin001.dat , … pin099.dat , …, pin999.dat , …, pin9999.dat zu sehen ist
pin'.'dat#
Wird Ziffern ohne führende Nullen anhängen, dabei den Punkt beibehalten und
pin.dat1 , …, pin.dat9 , …, pin.dat999 erzeugen

Wenn mehr Ziffern erforderlich sind, als Formatierungszeichen vorhanden sind, wird die Zahl entsprechend erweitert.
Um zu verhindern, dass ein Formatierungszeichen interpretiert wird, schließen Sie es in einfache Anführungszeichen ein. Beachten Sie, dass " . " ein Formatierungszeichen ist und in einfache Anführungszeichen gesetzt werden muss (obwohl #. und 000. in Gebietsschemata wie erwartet funktionieren, in denen das Dezimalzeichen ebenfalls " . " ist) .
In anderen Gebietsschemata (z. B. fr ) das Dezimalzeichen ist " , " - was bedeutet, dass " #. " zu " nnn, " wird.
Ausführliche Informationen finden Sie in der Dokumentation zu DecimalFormat .
Enthält der Pfadname keine besonderen Formatierungszeichen, wird die aktuelle laufende Nummer an den Namen angehängt, ansonsten wird die Nummer gemäß der Formatierungsvorschrift eingefügt.
Wenn die Startsequenznummer weggelassen wird und die Endsequenznummer angegeben wird, wird die Sequenznummer als Schleifenzähler interpretiert und die Datei wird höchstens " End "-mal verwendet. In diesem Fall wird der Dateiname nicht formatiert.
${__StringFromFile(PIN#'.'DAT,,1,2)} - liest PIN1.DAT , PIN2.DAT
${__StringFromFile(PIN.DAT,,,2)} - liest PIN.DAT zweimal
Beachten Sie, dass die " . " in PIN.DAT oben solltenicht zitiert werden. In diesem Fall wird die Startnummer weggelassen, sodass der Dateiname unverändert verwendet wird.

^

__Maschinenname

Die machineName-Funktion gibt den lokalen Hostnamen zurück. Dies verwendet die Java-Methode InetAddress.getLocalHost() und übergibt sie an getHostName()

Parameter

Attribut
Beschreibung
Erforderlich
Variablennamen
Ein Referenzname zur Wiederverwendung des von dieser Funktion berechneten Werts.
Nein

Beispiele:

${__machineName()}
gibt den Hostnamen der Maschine zurück
${__machineName}
gibt den Hostnamen der Maschine zurück

^

__machineIP

Die machineIP-Funktion gibt die lokale IP-Adresse zurück. Dies verwendet die Java-Methode InetAddress.getLocalHost() und übergibt sie an getHostAddress()

Parameter

Attribut
Beschreibung
Erforderlich
Variablennamen
Ein Referenzname zur Wiederverwendung des von dieser Funktion berechneten Werts.
Nein

Beispiele:

${__machineIP()}
gibt die IP-Adresse der Maschine zurück
${__machineIP}
gibt die IP-Adresse der Maschine zurück

^

__javaScript

Die javaScript-Funktion führt ein Stück JavaScript-Code (nicht Java!) aus und gibt seinen Wert zurück

Die JMeter-JavaScript-Funktion ruft einen eigenständigen JavaScript-Interpreter auf. Javascript wird als Skriptsprache verwendet, damit Sie Berechnungen usw. durchführen können.

Javascript ist nicht die beste Skriptsprache für Leistungen in JMeter. Wenn Ihr Plan eine hohe Anzahl von Threads erfordert, wird empfohlen, __jexl3- oder __groovy- Funktionen zu verwenden.
Informationen zur Nashorn Engine finden Sie im Java Platform, Standard Edition Nashorn User's Guide .
Informationen zur Rhino-Engine finden Sie in der Mozilla Rhino-Übersicht

Folgende Variablen werden dem Skript zur Verfügung gestellt:

Rhinoscript ermöglicht den Zugriff auf statische Methoden über sein Packages-Objekt. Siehe die Scripting Java- Dokumentation. Auf die statischen Methoden von JMeterContextService kann man beispielsweise so zugreifen: Java.type("org.apache.jmeter.threads.JMeterContextService").getTotalThreads()

JMeter ist kein Browser und interpretiert das JavaScript in heruntergeladenen Seiten nicht.

Parameter

Attribut
Beschreibung
Erforderlich
Ausdruck
Der auszuführende JavaScript-Ausdruck. Zum Beispiel:
  • new Date() - gibt das aktuelle Datum und die Uhrzeit zurück
  • Math.floor(Math.random()*(${maxRandom}+1)) – eine Zufallszahl zwischen 0 und der Variable maxRandom
  • ${minRandom}+Math.floor(Math.random()*(${maxRandom}-${minRandom}+1)) – eine Zufallszahl zwischen den Variablen minRandom und maxRandom
  • "${VAR}"=="abcd"
Ja
Variablennamen
Ein Referenzname zur Wiederverwendung des von dieser Funktion berechneten Werts.
Nein
Denken Sie daran, alle erforderlichen Anführungszeichen für Textzeichenfolgen und JMeter-Variablen einzuschließen. Wenn der Ausdruck Kommas enthält, stellen Sie außerdem sicher, dass Sie diese maskieren. Zum Beispiel in:
${__javaScript('${sp}'.slice(7\,99999))}
das Komma nach 7 wird maskiert.

Beispiele:

${__javaScript(neues Datum())}
kehrt am Sa., 09. Jan. 2016, 16:22:15 GMT+0100 (MEZ) zurück
${__javaScript(neues Datum(),MYDATE)}
wird am Sa. 09.01.2016 16:22:15 GMT+0100 (CET) zurückgegeben und unter Variable MYDATE gespeichert
${__javaScript(Math.floor(Math.random()*(${maxRandom}+1)),MYRESULT)}
verwendet die maxRandom-Variable, gibt einen Zufallswert zwischen 0 und maxRandom zurück und speichert ihn in MYRESULT
${__javaScript(${minRandom}+Math.floor(Math.random()*(${maxRandom}-${minRandom}+1)),MYRESULT)}
verwendet maxRandom- und minRandom- Variablen, gibt einen zufälligen Wert zwischen maxRandom und minRandom zurück und speichert ihn unter der Variablen MYRESULT
${__javaScript("${VAR}"=="abcd",MYRESULT)}
vergleicht den Wert der Variablen VAR mit abcd , gibt wahr oder falsch zurück und speichert das Ergebnis in MYRESULT

^

__Zufällig

Die Zufallsfunktion gibt eine Zufallszahl zurück, die zwischen den angegebenen Min- und Max-Werten liegt.

Parameter

Attribut
Beschreibung
Erforderlich
Mindestwert
Eine Zahl
Ja
Maximalwert
Eine größere Zahl
Ja
Variablennamen
Ein Referenzname zur Wiederverwendung des von dieser Funktion berechneten Werts.
Nein

Beispiele:

${__Random(0,10)}
gibt eine Zufallszahl zwischen 0 und 10 zurück
${__Random(0,10, MYVAR)}
gibt eine Zufallszahl zwischen 0 und 10 zurück und speichert sie in MYVAR . ${MYVAR} enthält die Zufallszahl

^

__RandomDate

Die RandomDate-Funktion gibt ein zufälliges Datum zurück, das zwischen den angegebenen Werten für Startdatum und Enddatum liegt.

Parameter

Attribut
Beschreibung
Erforderlich
Zeitformat
Formatstring für DateTimeFormatter (Standard yyyy-MM-dd )
Nein
Anfangsdatum
Das Startdatum ist standardmäßig jetzt
Nein
Endtermin
Das Enddatum
Ja
Für das Format zu verwendendes Gebietsschema
Das Zeichenfolgenformat eines Gebietsschemas. Der Sprachcode muss in Kleinbuchstaben geschrieben werden. Der Ländercode muss in Großbuchstaben geschrieben werden. Das Trennzeichen muss ein Unterstrich sein, zB en_EN . Siehe http://www.oracle.com/technetwork/java/javase/javase7locales-334809.html . Wenn weggelassen, verwendet die Funktion standardmäßig das Apache JMeter-Gebietsschema.
Nein
Name der Variablen
Der Name der festzulegenden Variablen.
Nein

Beispiele:

${__RandomDate(,,2050-07-08,,)}
gibt ein zufälliges Datum zwischen jetzt und dem 08.07.2050 zurück . Zum Beispiel 2039-06-21
${__RandomDate(dd MM yyyy,,08 07 2050,,)}
gibt ein zufälliges Datum mit einem benutzerdefinierten Format wie 04 03 2034 zurück

^

__RandomString

Die RandomString-Funktion gibt einen zufälligen String der Länge zurück, wobei Zeichen in zu verwendenden Zeichen verwendet werden.

Parameter

Attribut
Beschreibung
Erforderlich
Länge
Eine Zahlenlänge des generierten Strings
Ja
Zu verwendende Zeichen
Zeichen, die zum Generieren von String verwendet werden
Nein
Variablennamen
Ein Referenzname zur Wiederverwendung des von dieser Funktion berechneten Werts.
Nein

Beispiele:

${__RandomString(5)}
gibt eine zufällige Zeichenfolge von 5 Zeichen zurück, die lesbar sein kann oder nicht
${__RandomString(10,abcdefg)}
gibt eine zufällige Zeichenfolge von 10 Zeichen zurück, die aus dem abcdefg -Satz ausgewählt wurden, wie cdbgdbeebd oder adbfeggfad , …
${__RandomString(6,a12zeczclk, MYVAR)}
gibt eine zufällige Zeichenfolge von 6 Zeichen zurück, die aus einem Satz von 12zeczclk ausgewählt wurde , und speichert das Ergebnis in MYVAR , MYVAR enthält Zeichenfolgen wie 2z22ak oder z11kce , …

^

__RandomFromMultipleVars

Die Funktion RandomFromMultipleVars gibt basierend auf den von Source Variables bereitgestellten Variablenwerten einen Zufallswert zurück .

Die Variablen können einfach oder mehrwertig sein, da sie von den folgenden Extraktoren generiert werden können: Mehrwertige Variablen sind diejenigen, die extrahiert werden, wenn Sie -1 für Match Numbers festlegen . Dies führt zur Erstellung einer Übereinstimmungsnummer-Variable namens varName_matchNr und für jeden Wert zur Erstellung der Variablen varName_n , wobei n = 1, 2, 3 usw.

Parameter

Attribut
Beschreibung
Erforderlich
Quellvariablen
Variablennamen getrennt durch | die die Werte enthalten, die als Eingabe für die Zufallsberechnung verwendet werden
Ja
Variablennamen
Ein Referenzname zur Wiederverwendung des von dieser Funktion berechneten Werts.
Nein

Beispiele:

${__RandomFromMultipleVars(val)}
gibt eine zufällige Zeichenfolge basierend auf dem Inhalt der Variablen val zurück, wobei berücksichtigt wird, ob sie mehrwertig sind oder nicht
${__RandomFromMultipleVars(val1|val2)}
gibt eine zufällige Zeichenfolge basierend auf dem Inhalt der Variablen val1 und val2 zurück, wobei berücksichtigt wird, ob sie mehrwertig sind oder nicht
${__RandomFromMultipleVars(val1|val2, MYVAR)}
gibt eine zufällige Zeichenfolge basierend auf dem Inhalt der Variablen val1 und val2 zurück, wobei berücksichtigt wird, ob sie mehrwertig sind oder nicht, und das Ergebnis in MYVAR gespeichert wird

^

__UUID

Die UUID-Funktion gibt einen pseudozufälligen Typ 4 Universally Unique IDentifier (UUID) zurück.

Parameter

Attribut
Beschreibung
Erforderlich

Beispiele:

${__UUID()}
gibt UUIDs mit diesem Format zurück: c69e0dd1-ac6b-4f2b-8d59-5d4e8743eecd

^

__CSVRead

Die Funktion CSVRead gibt einen String aus einer CSV-Datei zurück (vgl . StringFromFile )

HINWEIS: JMeter unterstützt mehrere Dateinamen.

In den meisten Fällen ist das neuere CSV-Datensatz-Konfigurationselement einfacher zu verwenden.

Wenn ein Dateiname zum ersten Mal angetroffen wird, wird die Datei geöffnet und in ein internes Array eingelesen. Wenn eine Leerzeile erkannt wird, wird dies als Dateiende behandelt – dies ermöglicht die Verwendung von abschließenden Kommentaren.

Alle nachfolgenden Verweise auf denselben Dateinamen verwenden dasselbe interne Array. Beachten Sie, dass die Groß- und Kleinschreibung des Dateinamens für die Funktion von Bedeutung ist, auch wenn sich das Betriebssystem nicht darum kümmert, sodass CSVRead(abc.txt,0) und CSVRead(aBc.txt,0) auf unterschiedliche interne Arrays verweisen würden.

Die *ALIAS- Funktion ermöglicht das mehrmalige Öffnen derselben Datei und ermöglicht auch kürzere Dateinamen.

Jeder Thread hat seinen eigenen internen Zeiger auf seine aktuelle Zeile im Dateiarray. Wenn ein Thread zum ersten Mal auf die Datei verweist, wird ihr die nächste freie Zeile im Array zugewiesen, sodass jeder Thread auf eine andere Zeile als alle anderen Threads zugreift. [Es sei denn, es gibt mehr Threads als Zeilen im Array.]

Die Funktion teilt die Zeile standardmäßig bei jedem Komma. Wenn Sie Spalten mit Kommas eingeben möchten, müssen Sie das Trennzeichen in ein Zeichen ändern, das in keinen Spaltendaten vorkommt, indem Sie die Eigenschaft csvread.delimiter festlegen

Parameter

Attribut
Beschreibung
Erforderlich
Dateiname
Die Datei (oder *ALIAS ), aus der gelesen werden soll
Ja
Spaltennummer
Die Spaltennummer in der Datei. 0 = erste Spalte, 1 = zweite usw. " next " - Gehe zur nächsten Zeile der Datei. *ALIAS - öffnet eine Datei und weist sie dem Alias ​​zu
Ja

Beispielsweise könnten Sie einige Variablen wie folgt einrichten:

  • COL1a ${__CSVRead(random.txt,0)}
  • COL2a ${__CSVRead(random.txt,1)}${__CSVRead(random.txt,next)}
  • COL1b ${__CSVRead(random.txt,0)}
  • COL2b ${__CSVRead(random.txt,1)}${__CSVRead(random.txt,next)}
Dies würde zwei Spalten aus einer Zeile und zwei Spalten aus der nächsten verfügbaren Zeile lesen. Wenn alle Variablen auf demselben Benutzerparameter-Vorprozessor definiert sind, sind die Zeilen fortlaufend. Andernfalls kann ein anderer Thread die nächste Zeile übernehmen.

Die Funktion ist nicht für große Dateien geeignet, da die gesamte Datei im Speicher abgelegt wird. Verwenden Sie für größere Dateien das CSV- Datensatz-Konfigurationselement oder StringFromFile .
^

__Eigenschaft

Die Eigenschaftsfunktion gibt den Wert einer JMeter-Eigenschaft zurück. Wenn der Eigenschaftswert nicht gefunden werden kann und kein Standardwert angegeben wurde, wird der Eigenschaftsname zurückgegeben. Wenn Sie einen Standardwert angeben, müssen Sie keinen Funktionsnamen angeben – der Parameter kann auf null gesetzt werden und wird ignoriert.

Zum Beispiel:

  • ${__property(user.dir)} - Rückgabewert von user.dir
  • ${__property(user.dir,UDIR)} - Rückgabewert von user.dir und in UDIR speichern
  • ${__property(abcd,ABCD,atod)} - Rückgabewert der Eigenschaft abcd (oder " atod " falls nicht definiert) und in ABCD speichern
  • ${__property(abcd,,atod)} - Rückgabewert der Eigenschaft abcd (oder " atod " falls nicht definiert), aber nicht speichern

Parameter

Attribut
Beschreibung
Erforderlich
Name des Anwesens
Der abzurufende Eigenschaftsname.
Ja
Variablennamen
Ein Referenzname zur Wiederverwendung des von dieser Funktion berechneten Werts.
Nein
Standardwert
Der Standardwert für die Eigenschaft.
Nein
^

__P

Dies ist eine vereinfachte Eigenschaftsfunktion, die für die Verwendung mit Eigenschaften vorgesehen ist, die auf der Befehlszeile definiert werden. Im Gegensatz zur Funktion __property gibt es keine Option zum Speichern des Werts in einer Variablen, und wenn kein Standardwert angegeben wird, wird angenommen, dass er 1 ist. Der Wert 1 wurde gewählt, weil er für allgemeine Testvariablen wie Schleifen gültig ist. Threadzahl, Ramp Up etc.

Zum Beispiel:

Definieren Sie den Eigenschaftswert:

jmeter -Jgroup1.threads=7 -Jhostname1=www.realhost.edu
Werte abrufen:
${__P(group1.threads)} - gibt den Wert von group1.threads zurück
${__P(group1.loops)} - gibt den Wert von group1.loops zurück
${__P(hostname,www.dummy.org) } - Rückgabewert der Eigenschaft hostname oder www.dummy.org , falls nicht definiert
In den obigen Beispielen würde der erste Funktionsaufruf 7 zurückgeben , der zweite würde 1 zurückgeben und der letzte würde www.dummy.org zurückgeben (sofern diese Eigenschaften nicht definiert wurden anderswo!)

Parameter

Attribut
Beschreibung
Erforderlich
Name des Anwesens
Der abzurufende Eigenschaftsname.
Ja
Standardwert
Der Standardwert für die Eigenschaft. Wenn weggelassen, wird der Standardwert auf „ 1 “ gesetzt.
Nein
^

__log

Die Protokollfunktion protokolliert eine Nachricht und gibt ihre Eingabezeichenfolge zurück

Parameter

Attribut
Beschreibung
Erforderlich
Zu protokollierende Zeichenfolge
Ein Faden
Ja
Protokollebene
OUT , ERR , DEBUG , INFO (Standard), WARN oder ERROR
Nein
Wurfbarer Text
Wenn nicht leer, wird ein Throwable erstellt, das an den Logger übergeben wird
Nein
Kommentar
Falls vorhanden, wird es im String angezeigt. Nützlich, um zu identifizieren, was protokolliert wird.
Nein

Die Protokollebenennamen OUT und ERR werden verwendet, um die Ausgabe an System.out bzw. System.err zu leiten . In diesem Fall wird die Ausgabe immer gedruckt - es hängt nicht von der aktuellen Protokolleinstellung ab.

${__log(Nachricht)}
in die Protokolldatei geschrieben als " … Thread Name : Message "
${__log(Nachricht,AUS)}
in das Konsolenfenster geschrieben
${__log(${VAR},,,VAR=)}
in die Protokolldatei geschrieben als " … Thread-Name VAR=Wert "
^

__logn

Die logn-Funktion protokolliert eine Nachricht und gibt die leere Zeichenfolge zurück

Parameter

Attribut
Beschreibung
Erforderlich
Zu protokollierende Zeichenfolge
Ein Faden
Ja
Protokollebene
OUT , ERR , DEBUG , INFO (Standard), WARN oder ERROR
Nein
Wurfbarer Text
Wenn nicht leer, wird ein Throwable erstellt, das an den Logger übergeben wird
Nein

Die Protokollebenennamen OUT und ERR werden verwendet, um die Ausgabe an System.out bzw. System.err zu leiten . In diesem Fall wird die Ausgabe immer gedruckt - es hängt nicht von der aktuellen Protokolleinstellung ab.

${__logn(VAR1=${VAR1},OUT)}
Schreiben Sie den Wert der Variablen in das Konsolenfenster
^

__BeanShell

Die BeanShell-Funktion wertet das übergebene Skript aus und gibt das Ergebnis zurück.

Für die Leistung ist es besser, die __groovy- Funktion zu verwenden

Ausführliche Informationen zur Verwendung von BeanShell finden Sie auf der BeanShell-Website unter http://www.beanshell.org/

Beachten Sie, dass für jedes unabhängige Auftreten der Funktion in einem Testskript ein anderer Interpreter verwendet wird, aber für nachfolgende Aufrufe derselbe Interpreter verwendet wird. Das bedeutet, dass Variablen über Aufrufe der Funktion hinweg bestehen bleiben.

Eine einzelne Instanz einer Funktion kann von mehreren Threads aufgerufen werden. Allerdings wird die Methode execute() synchronisiert.

Wenn die Eigenschaft „ beanshell.function.init “ definiert ist, wird sie als Name einer Quelldatei an den Interpreter übergeben. Dies kann verwendet werden, um allgemeine Methoden und Variablen zu definieren. Es gibt eine Beispiel-Init-Datei im bin-Verzeichnis: BeanShellFunction.bshrc .

Die folgenden Variablen werden gesetzt, bevor das Skript ausgeführt wird:

(*) bedeutet, dass dies gesetzt wird, bevor die Init-Datei, falls vorhanden, verarbeitet wird. Andere Variablen variieren von Aufruf zu Aufruf.

Parameter

Attribut
Beschreibung
Erforderlich
BeanShell-Skript
Ein Beanshell-Skript (kein Dateiname)
Ja
Name der Variablen
Ein Referenzname zur Wiederverwendung des von dieser Funktion berechneten Werts.
Nein

Beispiel:

${__BeanShell(123*456)}
gibt 56088 zurück
${__BeanShell(source("function.bsh"))}
verarbeitet das Skript in function.bsh

Denken Sie daran, alle erforderlichen Anführungszeichen für Textzeichenfolgen und JMeter-Variablen einzuschließen, die Textzeichenfolgen darstellen.
^

__groovy

Die __groovy- Funktion wertet an sie übergebene Apache-Groovy - Skripte aus und gibt das Ergebnis zurück.

Wenn die Eigenschaft " groovy.utilities " definiert ist, wird sie von der ScriptEngine geladen. Dies kann verwendet werden, um allgemeine Methoden und Variablen zu definieren. Es gibt eine Beispiel-Init-Datei im bin - Verzeichnis: Utility.groovy .

Die folgenden Variablen werden gesetzt, bevor das Skript ausgeführt wird:

(*) bedeutet, dass dies gesetzt wird, bevor die Init-Datei, falls vorhanden, verarbeitet wird. Andere Variablen variieren von Aufruf zu Aufruf.

Wenn Sie diese Funktion verwenden, verwenden Sie bitte die oben definierten Variablen, anstatt eine Zeichenfolgenersetzung zu verwenden, um auf eine Variable in Ihrem Skript zuzugreifen. Das Befolgen dieses Musters stellt sicher, dass Ihre Tests leistungsfähig sind, indem sichergestellt wird, dass Groovy zwischengespeichert werden kann.

Führen Sie zum Beispiel Folgendes nicht aus:

${__groovy("${myVar}".substring(0\,2))}

Stellen Sie sich vor, die Variable myVar ändert sich mit jeder Transaktion, Groovy oben kann nicht zwischengespeichert werden, da sich das Skript jedes Mal ändert.

Führen Sie stattdessen Folgendes aus, das zwischengespeichert werden kann:

${__groovy(vars.get("myVar").substring(0\,2))}

Parameter

Attribut
Beschreibung
Erforderlich
Auszuwertender Ausdruck
Ein Apache Groovy-Skript (kein Dateiname)
Argumentwerte, die selbst Kommas enthalten, sollten nach Bedarf maskiert werden. Wenn Sie ein Komma in Ihren Parameterwert einfügen müssen, maskieren Sie es wie folgt: ' \, '
Ja
Name der Variablen
Ein Referenzname zur Wiederverwendung des von dieser Funktion berechneten Werts.
Nein

Beispiel:

${__groovy(123*456)}
gibt 56088 zurück
${__groovy(vars.get("myVar").substring(0\,2))}
Wenn der Wert von var JMeter ist , gibt es JM zurück , während es String.substring(0,2) ausführt . Beachten Sie, dass , nach \ maskiert wurde,

Denken Sie daran, alle erforderlichen Anführungszeichen für Textzeichenfolgen und JMeter-Variablen einzuschließen, die Textzeichenfolgen darstellen.
^

__split

Die Split-Funktion teilt die an sie übergebene Zeichenfolge gemäß dem Trennzeichen und gibt die ursprüngliche Zeichenfolge zurück. Wenn Trennzeichen nebeneinander stehen, wird " ? " als Wert zurückgegeben. Die aufgeteilten Strings werden in den Variablen ${VAR_1} , ${VAR_2} usw. zurückgegeben. Die Anzahl der Variablen wird in ${VAR_n} zurückgegeben . Ein abschließendes Trennzeichen wird als fehlende Variable behandelt und „ ? “ wird zurückgegeben. Damit es besser mit dem ForEach-Controller funktioniert, löscht __split jetzt auch die erste nicht verwendete Variable, falls sie durch eine vorherige Aufteilung festgelegt wurde.

Beispiel: VAR =" a||c| " im Testplan
definieren .
${__split(${VAR},VAR,|)}

Dies gibt den Inhalt von VAR zurück , dh " a||c| " und setzt die folgenden Variablen:
VAR_n = 4
VAR_1 = a
VAR_2 = ?
VAR_3 = c
VAR_4 = ?
VAR_5 = null

Parameter

Attribut
Beschreibung
Erforderlich
Zeichenfolge zu teilen
Eine Zeichenfolge mit Trennzeichen, z. B. " a|b|c "
Ja
Name der Variablen
Ein Referenzname zur Wiederverwendung des von dieser Funktion berechneten Werts.
Ja
Trennzeichen
Das Trennzeichen, zB | . Wenn weggelassen, wird , verwendet. Beachten Sie, dass , als \, angegeben werden müsste .
Nein
^

__XPfad

Die XPath-Funktion liest eine XML-Datei und gleicht den XPath ab. Bei jedem Aufruf der Funktion wird die nächste Übereinstimmung zurückgegeben. Am Ende der Datei wird zum Anfang umgebrochen. Wenn keine Knoten übereinstimmen, gibt die Funktion die leere Zeichenfolge zurück und eine Warnmeldung wird in die JMeter-Protokolldatei geschrieben.

Beachten Sie, dass die gesamte NodeList im Speicher gehalten wird.

Beispiel:
${__XPath(/path/to/build.xml, //target/@name)}
Dadurch werden alle Ziele in build.xml abgeglichen und der Inhalt des nächsten Namensattributs zurückgegeben

Parameter

Attribut
Beschreibung
Erforderlich
Zu analysierende XML-Datei
eine zu parsende XML-Datei
Ja
XPath
ein XPath-Ausdruck zum Abgleichen von Knoten in der XML-Datei
Ja
^

__setProperty

Die Funktion setProperty setzt den Wert einer JMeter-Eigenschaft. Der Standardrückgabewert der Funktion ist die leere Zeichenfolge, sodass der Funktionsaufruf überall dort verwendet werden kann, wo Funktionen gültig sind.

Der ursprüngliche Wert kann zurückgegeben werden, indem der optionale 3. Parameter auf „ true “ gesetzt wird.

Eigenschaften sind für JMeter global und können daher zur Kommunikation zwischen Threads und Thread-Gruppen verwendet werden

Parameter

Attribut
Beschreibung
Erforderlich
Name des Anwesens
Der festzulegende Eigenschaftsname.
Ja
Eigentumswert
Der Wert für die Eigenschaft.
Ja
Wahr falsch
Soll der ursprüngliche Wert zurückgegeben werden?
Nein
^

__Zeit

Die Zeitfunktion gibt die aktuelle Uhrzeit in verschiedenen Formaten zurück.

Parameter

Attribut
Beschreibung
Erforderlich
Format
Das an SimpleDateFormat zu übergebende Format . Die Funktion unterstützt verschiedene Kurzformaliase, siehe unten. Wenn weggelassen, gibt die Funktion die aktuelle Zeit in Millisekunden seit der Epoche zurück.
Nein
Name der Variablen
Der Name der festzulegenden Variablen.
Nein

Wenn der Formatstring weggelassen wird, gibt die Funktion die aktuelle Zeit in Millisekunden seit der Epoche zurück. Wenn das Format mit „ /ddd “ übereinstimmt (wobei ddd Dezimalziffern sind), gibt die Funktion die aktuelle Zeit in Millisekunden dividiert durch den Wert von ddd zurück . Beispielsweise gibt " /1000 " die aktuelle Zeit in Sekunden seit der Epoche zurück. Andernfalls wird die aktuelle Uhrzeit an SimpleDateFormat übergeben. Die folgenden abgekürzten Aliase werden bereitgestellt:

  • YMD = jjjjMMtt
  • HMS = HHmmss
  • YMDHMS = jjjjMMtt-HHmmss
  • USER1 = was auch immer in der JMeter-Eigenschaft time.USER1 steht
  • USER2 = was auch immer in der JMeter-Eigenschaft time.USER2 steht

Die Standardwerte können geändert werden, indem die entsprechende JMeter-Eigenschaft gesetzt wird, z. B. time.YMD=yyMMdd

${__time(dd/MM/yyyy,)}
wird am 21.01.2018 zurückkehren, wenn es am 21. Januar 2018 lief

${__time(YMD,)}
gibt 20180121 zurück, wenn es am 21. Januar 2018 ausgeführt wird

${__time()}
gibt die Zeit in Millis 1516540541624 zurück

^

__jexl2

Die jexl - Funktion gibt das Ergebnis der Auswertung eines Commons JEXL - Ausdrucks zurück . Siehe Links unten für weitere Informationen zu JEXL-Ausdrücken.

Die Funktion __jexl2 verwendet Commons JEXL 2

Parameter

Attribut
Beschreibung
Erforderlich
Ausdruck
Der auszuwertende Ausdruck. Zum Beispiel 6*(5+2)
Ja
Name der Variablen
Der Name der festzulegenden Variablen.
Nein

Folgende Variablen werden dem Skript zur Verfügung gestellt:

  • log - der Logger für die Funktion
  • ctx - JMeterContext- Objekt
  • vars - JMeterVariables- Objekt
  • props - JMeterProperties (Klasse java.util.Properties )-Objekt
  • threadName – Zeichenfolge, die den aktuellen Threadnamen enthält
  • sampler - aktuelles Sampler - Objekt (falls vorhanden)
  • sampleResult – vorheriges SampleResult- Objekt (falls vorhanden)
  • OUT - System.out - zB OUT.println("Nachricht")

Jexl kann auch Klassen erstellen und Methoden darauf aufrufen, zum Beispiel:

Systemclass=log.class.forName("java.lang.System");
now=Systemclass.currentTimeMillis();
Beachten Sie, dass die Jexl-Dokumentation auf der Website fälschlicherweise vorschlägt, dass " div " eine Ganzzahldivision durchführt. Tatsächlich führen „ div “ und „ / “ beide eine normale Division durch. Man kann den gleichen Effekt wie folgt erzielen:
i= 5 / 2;
i.intValue(); // oder verwende i.longValue()

JMeter lässt zu, dass der Ausdruck mehrere Anweisungen enthält.
^

__jexl3

Die jexl - Funktion gibt das Ergebnis der Auswertung eines Commons JEXL - Ausdrucks zurück . Siehe Links unten für weitere Informationen zu JEXL-Ausdrücken.

Die Funktion __jexl3 verwendet Commons JEXL 3

Parameter

Attribut
Beschreibung
Erforderlich
Ausdruck
Der auszuwertende Ausdruck. Zum Beispiel 6*(5+2)
Ja
Name der Variablen
Der Name der festzulegenden Variablen.
Nein

Folgende Variablen werden dem Skript zur Verfügung gestellt:

  • log - der Logger für die Funktion
  • ctx - JMeterContext- Objekt
  • vars - JMeterVariables- Objekt
  • props - JMeterProperties (Klasse java.util.Properties )-Objekt
  • threadName – Zeichenfolge, die den aktuellen Threadnamen enthält
  • sampler - aktuelles Sampler - Objekt (falls vorhanden)
  • sampleResult – vorheriges SampleResult- Objekt (falls vorhanden)
  • OUT - System.out - zB OUT.println("Nachricht")

Jexl kann auch Klassen erstellen und Methoden darauf aufrufen, zum Beispiel:

Systemclass=log.class.forName("java.lang.System");
now=Systemclass.currentTimeMillis();
Beachten Sie, dass die Jexl-Dokumentation auf der Website fälschlicherweise vorschlägt, dass " div " eine Ganzzahldivision durchführt. Tatsächlich führen „ div “ und „ / “ beide eine normale Division durch. Man kann den gleichen Effekt wie folgt erzielen:
i= 5 / 2;
i.intValue(); // oder verwende i.longValue()

JMeter lässt zu, dass der Ausdruck mehrere Anweisungen enthält.
^

__V

Die Funktion V (Variable) gibt das Ergebnis der Auswertung eines Variablennamensausdrucks zurück. Dies kann verwendet werden, um verschachtelte Variablenreferenzen auszuwerten (die derzeit nicht unterstützt werden).

Wenn man zum Beispiel die Variablen A1 , A2 und N = 1 hat :

  • ${A1} - funktioniert einwandfrei
  • ${A${N}} - funktioniert nicht (verschachtelte Variablenreferenz)
  • ${__V(A${N})} - funktioniert einwandfrei. A${N} wird zu A1 und die Funktion __V gibt den Wert von A1 zurück

Parameter

Attribut
Beschreibung
Erforderlich
Variablennamen
Die auszuwertende Variable.
Ja
Standardwert
Der Standardwert für den Fall, dass keine Variable gefunden wird, wenn er leer ist und keine Variable gefunden wird, gibt die Funktion den Variablennamen zurück
Nein
^

__evalVar

Die Funktion evalVar gibt das Ergebnis der Auswertung eines in einer Variablen gespeicherten Ausdrucks zurück.

Dies ermöglicht es, einen String aus einer Datei zu lesen und alle darin enthaltenen Variablenreferenzen zu verarbeiten. Wenn beispielsweise die Variable „ query “ „ select ${column} from ${table} “ enthält und „ column “ und „ table “ „ name “ und „ customers “ enthalten, dann wird ${__evalVar(query)} ausgewertet als " Namen von Kunden auswählen ".

Parameter

Attribut
Beschreibung
Erforderlich
Variablennamen
Die auszuwertende Variable.
Ja
^

__evaluieren

Die eval-Funktion gibt das Ergebnis der Auswertung eines Zeichenfolgenausdrucks zurück.

Dies ermöglicht es, Variablen- und Funktionsreferenzen in einem String zu interpolieren, der in einer Variablen gespeichert ist. Zum Beispiel, wenn die folgenden Variablen gegeben sind:

  • Name = Schmidt
  • Spalte = Alter
  • Tabelle = Geburtstage
  • SQL = wähle ${column} aus ${table} aus, wobei name='${name}'
dann wird ${__eval(${SQL})} ausgewertet als " Alter aus Geburtstagen auswählen, wobei Name='Smith' ".

Dies kann in Verbindung mit CSV-Datensatz verwendet werden, beispielsweise wenn sowohl die SQL-Anweisungen als auch die Werte in der Datendatei definiert sind.

Parameter

Attribut
Beschreibung
Erforderlich
Variablennamen
Die auszuwertende Variable.
Ja
^

__char

Die Funktion char gibt das Ergebnis der Auswertung einer Liste von Zahlen als Unicode-Zeichen zurück. Siehe auch __unescape() unten.

Dies ermöglicht es, beliebige Zeichenwerte in Felder einzufügen.

Parameter

Attribut
Beschreibung
Erforderlich
Unicode-Zeichennummer (dezimal oder 0xhex)
Die Dezimalzahl (oder Hexadezimalzahl, wenn 0x vorangestellt ist, oder Oktalzahl, wenn 0 vorangestellt ist ), die in ein Unicode-Zeichen konvertiert werden soll.
Ja

Beispiele:
${__char(13,10)} = ${__char(0xD,0xA)} = ${__char(015,012)} = CRLF
${__char(165)} = ¥ (Yen)

^

__unescape

Die unescape-Funktion gibt das Ergebnis der Auswertung einer Java-escaped-Zeichenfolge zurück. Siehe auch __char() oben.

Dadurch können Zeichen zu Feldern hinzugefügt werden, die ansonsten schwierig (oder unmöglich) über die GUI zu definieren sind.

Parameter

Attribut
Beschreibung
Erforderlich
Zeichenfolge zum Aufheben des Escape-Zeichens
Die Zeichenfolge, die nicht maskiert werden soll.
Ja

Beispiele:
${__unescape(\r\n)} = CRLF
${__unescape(1\t2)} = 1 [tab] 2

^

__unescapeHtml

Funktion zum Aufheben der Escapezeichen einer Zeichenfolge, die HTML-Entity-Escapezeichen enthält, in eine Zeichenfolge, die die tatsächlichen Unicode-Zeichen enthält, die den Escapezeichen entsprechen. Unterstützt HTML 4.0-Entitäten.

Zum Beispiel die Zeichenfolge

${__unescapeHtml(<Francçais>)}
gibt <Français> zurück .

Wenn eine Entität nicht erkannt wird, wird sie in Ruhe gelassen und wörtlich in die Ergebniszeichenfolge eingefügt. zB ${__unescapeHtml(>&zzzz;x)} gibt >&zzzz;x zurück .

Verwendet StringEscapeUtils#unescapeHtml(String) von Commons Lang.

Parameter

Attribut
Beschreibung
Erforderlich
Zeichenfolge zum Aufheben des Escape-Zeichens
Die Zeichenfolge, die nicht maskiert werden soll.
Ja
^

__escapeHtml

Funktion, die die Zeichen in einem String mithilfe von HTML-Entities maskiert. Unterstützt HTML 4.0-Entitäten.

Zum Beispiel,

${__escapeHtml("Brot" & "Butter")}
zurück: "Brot" &Ampere; "Butter" .

Verwendet StringEscapeUtils#escapeHtml(String) von Commons Lang.

Parameter

Attribut
Beschreibung
Erforderlich
Zeichenfolge zum Entkommen
Die zu maskierende Zeichenfolge.
Ja
^

__urldecode

Funktion zum Decodieren einer application/x-www-form-urlencoded- Zeichenfolge. Hinweis: Verwenden Sie UTF-8 als Kodierungsschema.

Zum Beispiel die Zeichenfolge

${__urldecode(Wort+%22school%22+ist+%22%C3%A9cole%22+auf+Französisch)}
zurück Das Wort "school" ist "école" auf Französisch .

Verwendet die Java-Klasse URLDecoder .

Parameter

Attribut
Beschreibung
Erforderlich
Zu dekodierende Zeichenfolge
Die Zeichenfolge mit URL-codierten Zeichen zum Decodieren.
Ja
^

__urlencode

Funktion zum Codieren eines Strings in einen application/x-www-form-urlencoded- String.

Zum Beispiel die Zeichenfolge

${__urlencode(Wort "school" ist "école" auf Französisch)}
gibt Word+%22school%22+is+%22%C3%A9cole%22+in+französisch zurück .

Verwendet die Java-Klasse URLEncoder .

Parameter

Attribut
Beschreibung
Erforderlich
Zu codierende Zeichenfolge
Zeichenfolge, die in URL-codierten Zeichen codiert werden soll.
Ja
^

__FileToString

Die FileToString-Funktion kann verwendet werden, um eine ganze Datei zu lesen. Bei jedem Aufruf wird die gesamte Datei gelesen.

Wenn beim Öffnen oder Lesen der Datei ein Fehler auftritt, gibt die Funktion die Zeichenfolge „ **ERR** “ zurück.

Parameter

Attribut
Beschreibung
Erforderlich
Dateiname
Pfad zum Dateinamen. (Der Pfad kann relativ zum JMeter-Startverzeichnis sein.)
Ja
Dateicodierung, falls nicht der Plattformstandard
Die zum Lesen der Datei zu verwendende Codierung. Wenn nicht angegeben, wird der Plattformstandard verwendet.
Nein
Variablennamen
Ein Referenzname – refName – zur Wiederverwendung des von dieser Funktion erstellten Werts. Gespeicherte Werte haben das Format ${refName} .
Nein

Die Parameter Dateiname, Kodierung und Referenzname werden bei jeder Ausführung der Funktion aufgelöst.

^

__samplerName

Die Funktion samplerName gibt den Namen (dh Label) des aktuellen Samplers zurück.

Die Funktion funktioniert nicht in Testelementen, die keinen zugeordneten Sampler haben. Zum Beispiel der Testplan. Konfigurationselemente haben auch keinen zugeordneten Sampler. Einige Konfigurationselemente werden jedoch direkt von Samplern referenziert, wie z. B. dem HTTP-Header-Manager und dem HTTP-Cookie-Manager, und in diesem Fall werden die Funktionen im Kontext des HTTP-Samplers aufgelöst. Pre-Processors, Post-Processors und Assertions haben immer einen zugehörigen Sampler.

Beispiel:

${__samplerName()}

Parameter

Attribut
Beschreibung
Erforderlich
Variablennamen
Ein Referenzname – refName – zur Wiederverwendung des von dieser Funktion erstellten Werts. Gespeicherte Werte haben das Format ${refName} .
Nein
^

__TestPlanName

Die Funktion TestPlanName gibt den Namen des aktuellen Testplans zurück (kann in Einschließen von Plänen verwendet werden, um den Namen des aufrufenden Testplans zu ermitteln).

Beispiel:

${__TestPlanName}
gibt den Dateinamen Ihres Testplans zurück, wenn sich der Plan beispielsweise in einer Datei mit dem Namen Demo.jmx befindet, wird „ Demo.jmx “ zurückgegeben

^

__escapeOroRegexpChars

Funktion, die die ORO Regexp-Metazeichen maskiert, sie ist das Äquivalent von \Q \E in der Java Regexp Engine.

Zum Beispiel,

${__escapeOroRegexpChars([^"].+?,)}
gibt zurück: \[\^\"\]\.\+\? .

Verwendet Perl5Compiler#quotemeta(String) von ORO.

Parameter

Attribut
Beschreibung
Erforderlich
Zeichenfolge zum Entkommen
Die zu maskierende Zeichenfolge.
Ja
Variablennamen
Ein Referenzname – refName – zur Wiederverwendung des von dieser Funktion erstellten Werts. Gespeicherte Werte haben das Format ${refName} .
Nein
^

__escapeXml

Funktion, die die Zeichen in einem String mithilfe von XML 1.0-Entitäten maskiert.

Zum Beispiel,

${__escapeXml("Brot" & 'Butter')}
gibt zurück: "Brot" &Ampere; "Butter" .

Verwendet StringEscapeUtils#escapeXml10(String) von Commons Lang.

Parameter

Attribut
Beschreibung
Erforderlich
Zeichenfolge zum Entkommen
Die zu maskierende Zeichenfolge.
Ja
^

__timeShift

Die timeShift-Funktion gibt ein Datum im angegebenen Format zurück, wobei die angegebene Anzahl von Sekunden, Minuten, Stunden, Tagen oder Monaten hinzugefügt wird

Parameter

Attribut
Beschreibung
Erforderlich
Format
Das an DateTimeFormatter zu übergebende Format. Siehe DateTimeFormatter Wenn weggelassen, verwendet die Funktion Millisekunden seit dem Epochenformat.
Nein
Datum zu verschieben
Geben Sie das Datum in dem Format an, das durch den Parameter 'Format' zum Verschieben festgelegt wurde. Falls weggelassen, wird das Datum auf jetzt gesetzt
Nein
Wert zu verschieben
Geben Sie die angegebene Anzahl von Sekunden, Minuten, Stunden oder Tagen an, die gemäß einer Textdarstellung einer Dauer wie PnDTnHnMn.nS verschoben werden soll. Siehe https://docs.oracle.com/javase/8/docs/api/java/time/Duration.html#parse-java.lang.CharSequence-
  • PT20.345S wird als 20,345 Sekunden geparst
  • PT15M analysiert als 15 Minuten
  • PT10H analysiert als 10 Stunden
  • P2D analysiert als 2 Tage
  • -P6H3M analysiert als -6 Stunden und -3 Minuten
Nein
Für das Format zu verwendendes Gebietsschema
Das Zeichenfolgenformat eines Gebietsschemas. Der Sprachcode muss in Kleinbuchstaben geschrieben werden. Der Ländercode muss in Großbuchstaben geschrieben werden. Das Trennzeichen muss ein Unterstrich sein. Beispiel: en_EN Siehe http://www.oracle.com/technetwork/java/javase/javase7locales-334809.html Wenn weggelassen, verwendet die Funktion standardmäßig das Gebietsschema von ApacheJMeter.
Nein
Name der Variablen
Der Name der festzulegenden Variablen.
Nein

Beispiele:

${__timeShift(dd/MM/yyyy,21/01/2018,P2D,,)}
Rücksendung am 23.01.2018
${__timeShift(dd MMMM yyyy,21 fevrier 2018,P2D,fr_FR,)}
Rücksendung 23. Februar 2018

^

__digest

Die Digest-Funktion gibt einen verschlüsselten Wert im spezifischen Hash-Algorithmus mit optionalem Salt, Großbuchstaben und Variablennamen zurück.

Parameter

Attribut
Beschreibung
Erforderlich
Algorithmus
Der zum Verschlüsseln zu verwendende Algorithmus Für mögliche Algorithmen siehe MessageDigest in StandardNames
  • MD2
  • MD5
  • SHA-1
  • SHA-224
  • SHA-256
  • SHA-384
  • SHA-512
Leerzeichen werden für Salt zum Hinzufügen und String zum Codieren berücksichtigt
Ja
Zu codierende Zeichenfolge
Der String, der verschlüsselt wird
Ja
Salz hinzufügen
Salz, das der Schnur hinzugefügt werden soll (danach)
Nein
Wert in Großbuchstaben
Das Ergebnis wird standardmäßig in Kleinbuchstaben angezeigt. Wählen Sie Ergebnisse in Großbuchstaben aus.
Nein
Name der Variablen
Der Name der festzulegenden Variablen.
Nein

Beispiele:

${__digest(MD5,Errare humanum est,,,)}
gibt c49f00b92667a35c63708933384dad52 zurück
${__digest(SHA-256,Felix qui potuit rerum cognoscere causas,mysalt,,)}
gibt a3bc6900fe2b2fc5fa8a601a4a84e27a079bf2c581d485009bc5c00516729ac7 zurück

^

__dateTimeConvert

Die Funktion __dateTimeConvert wandelt ein Datum im Quellformat in ein Zielformat um und speichert das Ergebnis optional im Variablennamen.

Parameter

Attribut
Beschreibung
Erforderlich
Datumszeichenfolge
Die Datumszeichenfolge, die vom Quelldatumsformat in das Zieldatumsformat konvertiert werden soll. Hier könnte ein Datum als Epochenzeit verwendet werden, wenn Source Date Format leer ist.
Ja
Quelldatumsformat
Das ursprüngliche Datumsformat. Wenn es leer ist, muss das Feld Date String eine Epochenzeit sein.
Nein
Zieldatumsformat
Das neue Datumsformat
Ja
Name der Variablen
Der Name der festzulegenden Variablen.
Nein

Beispiel:

${__dateTimeConvert(01212018,MMddyyyy,dd/MM/yyyy,)}
Rücksendung am 21.01.2018

Mit Epochenzeitwert: 1526574881000,

${__dateTimeConvert(1526574881000,,dd/MM/yyyy HH:mm,)}
gibt den 17.05.2018 16:34 in UTC-Zeit zurück (-Duser.timezone=GMT)

^

__isPropDefined

Die Funktion __isPropDefined gibt true zurück, wenn die Eigenschaft vorhanden ist, oder false, wenn nicht.

Parameter

Attribut
Beschreibung
Erforderlich
Name des Anwesens
Der Eigenschaftsname, der verwendet werden soll, um zu prüfen, ob er definiert ist
Ja

Beispiel:

${__isPropDefined(START.HMS)}
wird wahr zurückgeben

^

__isVarDefined

Die Funktion __isVarDefined gibt true zurück, wenn die Variable vorhanden ist, oder false, wenn nicht.

Parameter

Attribut
Beschreibung
Erforderlich
Variablennamen
Der Variablenname, der verwendet werden soll, um zu prüfen, ob er definiert ist
Ja

Beispiel:

${__isVarDefined(JMeterThread.last_sample_ok)}
wird wahr zurückgeben

^

__changeCase

Die Funktion zum Ändern der Groß-/Kleinschreibung gibt einen Zeichenfolgenwert zurück, dessen Groß-/Kleinschreibung nach einem bestimmten Modus geändert wurde. Das Ergebnis kann optional in einer JMeter-Variablen gespeichert werden.

Parameter

Attribut
Beschreibung
Erforderlich
Zeichenfolge zum Ändern der Groß-/Kleinschreibung
Der String, dessen Groß-/Kleinschreibung geändert wird
Ja
Fallmodus ändern
Der zu verwendende Modus zum Ändern der Groß-/Kleinschreibung, zum Beispiel für ab-CD eF :
  • OBERE Ergebnis als AB-CD EF
  • UNTERES Ergebnis als ab-cd ed
  • GROSSBUCHSTABEN Ergebnis als Ab-CD eF
Der Modus zum Ändern der Groß-/Kleinschreibung unterscheidet nicht zwischen Groß- und Kleinschreibung
Ja
Name der Variablen
Der Name der festzulegenden Variablen.
Nein

Beispiele:

${__changeCase(Avaro omnia desunt\, inopi pauca\, sapienti nihil,UPPER,)}
wird AVARO OMNIA DESUNT, INOPI PAUCA, SAPIENTI NIHIL zurückgeben
${__changeCase(LABOR OMNIA VINCIT IMPROBUS,LOWER,)}
wird Arbeit omnia vincit improbus zurückgeben
${__changeCase(omnibus viis romam pervenitur,CAPITALIZE,)}
wird Omnibus viis romam pervenitur zurückgeben

^

__StringToFile

Die Funktion __StringToFile kann verwendet werden, um einen String in eine Datei zu schreiben. Jedes Mal, wenn es aufgerufen wird, schreibt es eine Zeichenkette in die Datei, die angehängt oder überschrieben wird.

Der Standardrückgabewert der Funktion ist die leere Zeichenfolge

Parameter

Attribut
Beschreibung
Erforderlich
Pfad zur Datei
Pfad zum Dateinamen. (Der Pfad ist absolut)
Ja
Zu schreibende Zeichenfolge
Die Zeichenfolge, die in die Datei geschrieben werden soll.
Wenn Sie einen Zeilenumbruch in Ihren Inhalt einfügen müssen, verwenden Sie \n in Ihrer Zeichenfolge.
Ja
An Datei anhängen?
Die Art und Weise, wie der String geschrieben wird, True bedeutet Anhängen, False bedeutet Überschreiben. Wenn nicht angegeben, ist das Standardanhängen true .
Nein
Dateicodierung, wenn nicht UTF-8
Die zum Schreiben in die Datei zu verwendende Codierung. Wenn nicht angegeben, ist die Standardcodierung UTF-8 .
Nein
^

20.6 Vordefinierte Variablen

Die meisten Variablen werden durch Aufrufen von Funktionen oder durch Testelemente wie benutzerdefinierte Variablen gesetzt; In diesem Fall hat der Benutzer die volle Kontrolle über den verwendeten Variablennamen. Einige Variablen werden jedoch intern von JMeter definiert. Diese sind unten aufgeführt.

  • COOKIE_cookiename - enthält den Cookie-Wert (siehe HTTP Cookie Manager )
  • JMeterThread.last_sample_ok – ob das letzte Sample OK war oder nicht – true / false . Hinweis: Dies wird aktualisiert, nachdem PostProcessors und Assertions ausgeführt wurden.
  • START- Variablen (siehe nächster Abschnitt)

20.6 Vordefinierte Eigenschaften

Der Satz von JMeter-Eigenschaften wird aus den beim Start von JMeter definierten Systemeigenschaften initialisiert; Zusätzliche JMeter-Eigenschaften werden in jmeter.properties , user.properties oder in der Befehlszeile definiert.

Einige integrierte Eigenschaften werden von JMeter definiert. Diese sind unten aufgelistet. Der Einfachheit halber werden die START- Eigenschaften auch in gleichnamige Variablen kopiert.

  • START.MS - JMeter-Startzeit in Millisekunden
  • START.YMD – JMeter-Startzeit als jjjjMMtt
  • START.HMS – JMeter-Startzeit als HHmmss
  • TESTSTART.MS - Startzeit des Tests in Millisekunden

Bitte beachten Sie, dass die START -Variablen/Eigenschaften die Startzeit von JMeter darstellen, nicht die Startzeit des Tests. Sie sind hauptsächlich für die Verwendung in Dateinamen usw.

Go to top