Soms heb je een eigen gemaakte functie nodig in LoadRunner. Bijvoorbeeld een functie ten behoeve van string manipulatie zoals de zoek-en-vervang functie. Voor het schrijven van deze functie ben je in VUGen over het algemeen aangewezen op programmeertaal C. C is niet altijd de makkelijkste taal om functies in te schrijven.
Het is mogelijk om voor HTTP/HTML VUGen scripts gebruik te maken van JavaScript. JavaScript bevat vele standaard functies en is uitermate geschikt om functies mee te schrijven. Met behulp van functie web_js_run kan je JavaScript code uitvoeren. Je moet dan wel in de Run Time Settings (RTS) het runnen van JavaScript enablen (Internet Protocol > Preferences > Options…).
Alles wat in web_js_run aan JavaScript code wordt uitgevoerd/gelezen, wordt bewaard in een zogenaamde context (per VUser). Dus gedefinieerde variabelen, functies, etcetera blijven beschikbaar voor opvolgende web_js_run functies. Deze worden in dezelfde context uitgevoerd. Je kan de context resetten en daarbij dus de gebruikte memory vrijgeven door middel van functie web_js_reset. Ook wordt de context gereset bij een nieuwe script iteratie wanneer “Simulate a new user on each iteration” is ingesteld.
Hieronder wordt een voorbeeld weergegeven van het aanroepen van een functie in een andere file.
web_js_run(
“Code = funcReplace(LR.getParam(‘rtprm_value’), ‘a’, ‘b’);”,
“ResultParam = rtprm_result“,
SOURCES,
“File = INCLUDEFILES / js_code.js“,
ENDITEM,
LAST
);
Wat onder SOURCES staat, wordt eerst geëvalueerd. Dit kan code zijn of, zoals in dit voorbeeld, een verwijzing naar een bestand (met code). De locatie van het bestand wordt weergegeven met een relatief pad ten opzichte van de VUGen script folder. In dit voorbeeld bevindt de file js_code.js zich in folder INCLUDEFILES in de VUGen script folder. Onder SOURCES kunnen meerdere items komen te staan; het hoeft niet één file of één stuk code te zijn.
Het eerste argument van de web_js_run functie bevat de uit te voeren JavaScript code. Dit kan code zijn, zoals in dit voorbeeld, of een bestand. Anders dan bij SOURCES, mag slecht één item gebruikt worden. In de JavaScript code kunnen verschillende LoadRunner Ajax TruClient functies aangeroepen worden, zoals LR.getParam. In deze regel code wordt funcReplace aangeroepen. Deze functie bevindt zich in de file js_code.js en ziet er als volgt uit:
function funcReplace(strSource, strReplace, strReplaceWith) {
var re = new RegExp(strReplace, ”g”);
return strSource.replace(re, strReplaceWith);
}
Het tweede argument van de web_js_run functie bevat de naam van de parameter waarin het resultaat van de JavaScript code wordt opgeslagen. In dit geval de waarde van parameter rtprm_value waarbij de a’s zijn vervangen door b’s.
Comments