Unten ist ein Skript, das mir hilft, einen extendreport für jmeter zu erstellen. Es ist ein JSR223-Postprozessor-Element. Es funktioniert aber gut, das Problem ist, dass ich es nach jeder HTTP-Anfrage im Skript dupliziert habe. Ich habe mehrere Skripte mit 100 von HTTP-Anfragen, die im Wesentlichen eine Kopie des gleichen PostProcessor-Groovy-Skripts benötigen würden. Das ist schwer zu pflegen!jmeter - wie man ein grooviges Skript einfacher für extendreports macht
Ich habe versucht, gemeinsame Teile in ein externes groovy Skript zu teilen, das ich versuchte, den JSR223 PostProcessor anzurufen. Ich habe auch versucht, die Bits des Skripts zu zerlegen und die Werte in einen csv zu setzen, so dass ich nur die csv-Werte aktualisieren konnte, wenn sich etwas änderte.
Ich bin mir sicher, es gibt eine sauberere/bessere Möglichkeit, dies zu tun, aber ich lerne immer noch, so bin ich mir nicht sicher über die beste Möglichkeit, dies zu erleichtern. Hier ist der JSR223 PostProcessor. Das einzige Bit, die mit jeder HTTP-Anforderung ändert, ist das „// Tester“ Abschnitt
import com.relevantcodes.extentreports.ExtentReports;
import com.relevantcodes.extentreports.ExtentTest;
import com.relevantcodes.extentreports.LogStatus;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
//configure object for response data
def response = prev.getResponseDataAsString();
//configure extentreports objects
ExtentReports report;
ExtentTest testLogger;
//set location for file and report config
String resultsPath = "C:/portalQA/Automation/Results/";
String configPath = "C:/portalQA/Automation/JMeter/TestReportConfig/";
String reportPath =
resultsPath+"Login_Results_${reportDate}_${currentTime}_${testenv}.html";
File file = new File(reportPath);
if (!file.exists()) {
//if file does not exist, create it
report = new ExtentReports(reportPath, true);
report.loadConfig(new File(configPath+"extent-config.xml"));
} else {
//else append to existing report
report = new ExtentReports(reportPath, false);
report.loadConfig(new File(configPath+"extent-config.xml"));
}
//test result
testLogger = report.startTest("Authenticate");
testLogger.assignCategory("Initialize Session");
if (response.contains("com.blah.portal.model.User")) {
testLogger.log(LogStatus.PASS, "Logged in with: ${username}");
testLogger.log(LogStatus.INFO, response);
} else {
testLogger.log(LogStatus.FAIL, "Could not authenticate session");
testLogger.log(LogStatus.INFO, response);
}
log.info("Authenticate");
print("Authenticate print");
report.endTest(testLogger);
report.flush();