diff --git a/backend/src/main/java/ca/etsmtl/taf/jmeter/JMeterRunner.java b/backend/src/main/java/ca/etsmtl/taf/jmeter/JMeterRunner.java index c6113c6..3367107 100644 --- a/backend/src/main/java/ca/etsmtl/taf/jmeter/JMeterRunner.java +++ b/backend/src/main/java/ca/etsmtl/taf/jmeter/JMeterRunner.java @@ -31,8 +31,12 @@ private static Properties loadProperties() { } } - public static String runJMeter( ) { - String jmxFilePath = "backend/src/main/resources/jmeter/TestPlan.jmx"; + public static String runJMeter( String testType) { + String jmxFilePath=""; + if (testType=="http") + jmxFilePath= "backend/src/main/resources/jmeter/TestPlan.jmx"; + else if (testType=="ftp") + jmxFilePath= "backend/src/main/resources/jmeter/FTPTestPlan.jmx"; // Generate a timestamp for uniqueness SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd_HHmmss"); diff --git a/backend/src/main/java/ca/etsmtl/taf/jmeter/controllers/JmeterController.java b/backend/src/main/java/ca/etsmtl/taf/jmeter/controllers/JmeterController.java index 377eb7d..14fe7f3 100644 --- a/backend/src/main/java/ca/etsmtl/taf/jmeter/controllers/JmeterController.java +++ b/backend/src/main/java/ca/etsmtl/taf/jmeter/controllers/JmeterController.java @@ -2,12 +2,14 @@ import ca.etsmtl.taf.jmeter.JMeterRunner; -import ca.etsmtl.taf.jmeter.model.JmeterTestPlan; +import ca.etsmtl.taf.jmeter.model.FTPTestPlan; +import ca.etsmtl.taf.jmeter.model.HttpTestPlan; import com.opencsv.exceptions.CsvException; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.io.IOException; @@ -20,11 +22,11 @@ import java.util.concurrent.atomic.AtomicReference; @RestController -//@RequestMapping("/jmeter") +@RequestMapping("/jmeter") public class JmeterController { - @PostMapping("/jmeter") - public ResponseEntity getJmeterTestPlan(@RequestBody JmeterTestPlan jmeterTestPlan) throws IOException, CsvException { + @PostMapping("/http") + public ResponseEntity getJmeterTestPlan(@RequestBody HttpTestPlan jmeterTestPlan) throws IOException, CsvException { jmeterTestPlan.generateTestPlan(); @@ -33,7 +35,7 @@ public ResponseEntity getJmeterTestPlan(@RequestBody JmeterTestPlan jmeterTes // Submit the task to the ExecutorService AtomicReference resultPathRef = new AtomicReference<>(); Future future = executorService.submit(() -> { - String result = JMeterRunner.runJMeter(); + String result = JMeterRunner.runJMeter("http"); resultPathRef.set(result); }); try { @@ -64,4 +66,46 @@ public ResponseEntity getJmeterTestPlan(@RequestBody JmeterTestPlan jmeterTes return (ResponseEntity) ResponseEntity.ok(result); } + @PostMapping("/ftp") + public ResponseEntity getFtpTestplan(@RequestBody FTPTestPlan ftpTestPlan) throws IOException, CsvException { + + + ftpTestPlan.generateTestPlan(); + ExecutorService executorService = Executors.newSingleThreadExecutor(); + + // Submit the task to the ExecutorService + AtomicReference resultPathRef = new AtomicReference<>(); + Future future = executorService.submit(() -> { + String result = JMeterRunner.runJMeter("ftp"); + resultPathRef.set(result); + }); + try { + // Wait for the task to finish + future.get(); + } catch (InterruptedException | ExecutionException e) { + // Handle exceptions if necessary + e.printStackTrace(); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Error occurred during task execution."); + } finally { + // Shutdown the ExecutorService to release resources + executorService.shutdown(); + } + List> result=null; + String resultPath = resultPathRef.get(); + System.out.println("Result Path: " + resultPath); + if (resultPath !="" && resultPath!=null){ + try { + result =JMeterRunner.convertCSVtoJSON(resultPath); + } catch (IOException e) { + throw new RuntimeException(e); + } catch (CsvException e) { + throw new RuntimeException(e); + } + + } + + return (ResponseEntity) ResponseEntity.ok(result); + } + + } diff --git a/backend/src/main/java/ca/etsmtl/taf/jmeter/model/FTPTestPlan.java b/backend/src/main/java/ca/etsmtl/taf/jmeter/model/FTPTestPlan.java new file mode 100644 index 0000000..5a608e0 --- /dev/null +++ b/backend/src/main/java/ca/etsmtl/taf/jmeter/model/FTPTestPlan.java @@ -0,0 +1,188 @@ +package ca.etsmtl.taf.jmeter.model; +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Paths; + +public class FTPTestPlan { + + + private String nbThreads ; + private String rampTime ; + private String duration ; + private String domain ; + private String port ; + private String method; + private String remotefile; + private String localfile; + private String username; + private String password; + private String loop; + public FTPTestPlan() { + + } + + public FTPTestPlan(String nbThreads, String rampTime, + String duration, String domain, String port, + String remotefile, String localfile, String method, String username, String password) { + this.nbThreads = nbThreads; + this.rampTime = rampTime; + this.duration = duration; + this.domain = domain; + this.port = port; + this.method = method; + this.remotefile = remotefile; + this.localfile = localfile; + this.username = username; + this.password = password; + } + + public String getLoop() { + + return loop; + } + + public void setLoop(String loop) { + this.loop = loop; + } + + public String getNbThreads() { + return nbThreads; + } + + public void setNbThreads(String nbThreads) { + this.nbThreads = nbThreads; + } + + public String getRampTime() { + return rampTime; + } + + public void setRampTime(String rampTime) { + this.rampTime = rampTime; + } + + public String getDuration() { + return duration; + } + + public void setDuration(String duration) { + this.duration = duration; + } + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public String getPort() { + return port; + } + + public void setPort(String port) { + this.port = port; + } + + public String getRemotefile() { + return remotefile; + } + + public void setRemotefile(String remotefile) { + this.remotefile = remotefile; + } + + public String getLocalfile() { + return localfile; + } + + public void setLocalfile(String localfile) { + this.localfile = localfile; + } + + public String getMethod() { + return method=="get"? "false" : "true"; + + } + + public void setMethod(String method) { + this.method = method; + } + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + + public void generateTestPlan() { + replaceAndSaveVariables(); + } + private void replaceAndSaveVariables() { + try { + // Read the XML content from the file + String filePath = "backend/src/main/resources/jmeter/FTPSamplerTemplate.jmx"; + String xmlContent = new String(Files.readAllBytes(Paths.get(filePath)), StandardCharsets.UTF_8); + String target = "backend/src/main/resources/jmeter/FTPTestPlan.jmx"; + + // Replace variables with Java variables (using default values if not found) + xmlContent = replaceVariables(xmlContent); + + // Save the modified content back to the file + Files.write(Paths.get(target), xmlContent.getBytes(StandardCharsets.UTF_8)); + + System.out.println("Variables replaced successfully."); + } catch (IOException e) { + e.printStackTrace(); + } + } + + private String replaceVariables(String xmlContent) { + // Replace variables in the XML content using instance fields + xmlContent = xmlContent.replace("$NB_THREADS$", nbThreads) + .replace("$RAMP_TIME$", rampTime) + .replace("$DURATION$", duration) + .replace("$DOMAIN$", domain) + .replace("$PORT$", port) + .replace("$REMOTEFILE$", remotefile) + .replace("$LOCALFILE$", localfile) + .replace("$METHOD$", getMethod()) + .replace("$USERNAME$", username) + .replace("$PASSWORD$", password) + .replace("$LOOP_COUNTER$", loop); + + + return xmlContent; + } + + @Override + public String toString() { + return "JmeterFTPTestPlan{" + + "nbThreads='" + nbThreads + '\'' + + ", rampTime='" + rampTime + '\'' + + ", duration='" + duration + '\'' + + ", domain='" + domain + '\'' + + ", port='" + port + '\'' + + ", remotefile='" + remotefile + '\'' + + ", localfile='" + localfile + "\'" + + ", method='" + method + '\'' + + ", username='" + username + '\'' + + ", password='" + password + '\''+ + '}'; + } +} + + diff --git a/backend/src/main/java/ca/etsmtl/taf/jmeter/model/JmeterTestPlan.java b/backend/src/main/java/ca/etsmtl/taf/jmeter/model/HttpTestPlan.java similarity index 95% rename from backend/src/main/java/ca/etsmtl/taf/jmeter/model/JmeterTestPlan.java rename to backend/src/main/java/ca/etsmtl/taf/jmeter/model/HttpTestPlan.java index 3338af2..aa26f2a 100644 --- a/backend/src/main/java/ca/etsmtl/taf/jmeter/model/JmeterTestPlan.java +++ b/backend/src/main/java/ca/etsmtl/taf/jmeter/model/HttpTestPlan.java @@ -8,7 +8,7 @@ import java.nio.file.Files; import java.nio.file.Paths; -public class JmeterTestPlan { +public class HttpTestPlan { private String nbThreads ; @@ -39,13 +39,13 @@ public void setData(String data) { this.data = data; } - public JmeterTestPlan() { + public HttpTestPlan() { } - public JmeterTestPlan(String nbThreads, String rampTime, - String duration, String domain, String port, - String protocol, String path, String method) { + public HttpTestPlan(String nbThreads, String rampTime, + String duration, String domain, String port, + String protocol, String path, String method) { this.nbThreads = nbThreads; this.rampTime = rampTime; this.duration = duration; diff --git a/backend/src/main/resources/jmeter/FTPSamplerTemplate.jmx b/backend/src/main/resources/jmeter/FTPSamplerTemplate.jmx new file mode 100644 index 0000000..269a777 --- /dev/null +++ b/backend/src/main/resources/jmeter/FTPSamplerTemplate.jmx @@ -0,0 +1,49 @@ + + + + + false + false + false + + + + + + + continue + + false + $LOOP_COUNTER$ + + $NB_THREADS$ + $RAMP_TIME$ + false + + + true + + + + $DOMAIN$ + $PORT$ + $REMOTEFILE$ + $LOCALFILE$ + + false + false + $METHOD$ + $USERNAME$ + $PASSWORD$ + + + + + + \ No newline at end of file diff --git a/backend/src/main/resources/jmeter/FTPTestPlan.jmx b/backend/src/main/resources/jmeter/FTPTestPlan.jmx new file mode 100644 index 0000000..31e3874 --- /dev/null +++ b/backend/src/main/resources/jmeter/FTPTestPlan.jmx @@ -0,0 +1,49 @@ + + + + + false + false + false + + + + + + + continue + + false + 1 + + 2 + 3 + false + + + true + + + + ftp.dlptest.com + + /test.txt + C:/Users/safou/Downloads/jmeter.docx + + false + false + true + dlpuser + rNrKYTX9g7z3RgJRmxWuGHbeu + + + + + + \ No newline at end of file diff --git a/backend/src/main/resources/jmeter/TestPlan.jmx b/backend/src/main/resources/jmeter/TestPlan.jmx index abd3f16..3b75242 100644 --- a/backend/src/main/resources/jmeter/TestPlan.jmx +++ b/backend/src/main/resources/jmeter/TestPlan.jmx @@ -19,11 +19,11 @@ guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true"> - 1 + 3 false - 2 - 1 + 10 + 5 false false @@ -44,7 +44,7 @@ https /blog/ - GET + POST true false true diff --git a/backend/src/main/resources/jmeter/Untitled-1.json b/backend/src/main/resources/jmeter/Untitled-1.json new file mode 100644 index 0000000..fefe368 --- /dev/null +++ b/backend/src/main/resources/jmeter/Untitled-1.json @@ -0,0 +1,35 @@ +/** +FTP test case +*/ +{ + "nbThreads": "2", + "rampTime": "3", + "duration": "", + "domain": "ftp.dlptest.com", + "port": "", + "method": "store", + "remotefile": "/test.txt", + "localfile": "C:/Users/safou/Downloads/jmeter.docx", + "username": "dlpuser", + "password": "rNrKYTX9g7z3RgJRmxWuGHbeu", + "loop": "1" +} + + +/* +htp +*/ + +{ + "nbThreads": "10", + "rampTime": "5", + "duration": "", + "domain": "octoperf.com", + "port": "", + "protocol": "https", + "path": "/blog/", + "method": "POST", + "loop": "3" + + + } \ No newline at end of file diff --git a/backend/src/main/resources/jmeter/results/result_20231112_233531.csv b/backend/src/main/resources/jmeter/results/result_20231112_233531.csv new file mode 100644 index 0000000..e16b97f --- /dev/null +++ b/backend/src/main/resources/jmeter/results/result_20231112_233531.csv @@ -0,0 +1,3 @@ +timeStamp,elapsed,label,responseCode,responseMessage,threadName,dataType,success,failureMessage,bytes,sentBytes,grpThreads,allThreads,URL,Latency,IdleTime,Connect +1699850132526,1197,FTP Request,200,OK,Thread Group 1-1,,true,,0,0,1,1,ftp://ftp.dlptest.com//test.txt (Ascii) <- C:/Users/safou/Downloads/jmeter.docx,225,0,0 +1699850134022,1073,FTP Request,200,OK,Thread Group 1-2,,true,,0,0,1,1,ftp://ftp.dlptest.com//test.txt (Ascii) <- C:/Users/safou/Downloads/jmeter.docx,209,0,0 diff --git a/backend/src/main/resources/jmeter/results/result_20231112_234004.csv b/backend/src/main/resources/jmeter/results/result_20231112_234004.csv new file mode 100644 index 0000000..d3f26d2 --- /dev/null +++ b/backend/src/main/resources/jmeter/results/result_20231112_234004.csv @@ -0,0 +1,31 @@ +timeStamp,elapsed,label,responseCode,responseMessage,threadName,dataType,success,failureMessage,bytes,sentBytes,grpThreads,allThreads,URL,Latency,IdleTime,Connect +1699850406080,435,HTTP Request,403,Forbidden,Thread Group 1-1,text,false,,1513,203,2,2,https://octoperf.com/blog/,432,0,404 +1699850406518,20,HTTP Request,403,Forbidden,Thread Group 1-1,text,false,,1513,203,2,2,https://octoperf.com/blog/,20,0,0 +1699850406538,27,HTTP Request,403,Forbidden,Thread Group 1-1,text,false,,1513,203,2,2,https://octoperf.com/blog/,27,0,0 +1699850406475,90,HTTP Request,403,Forbidden,Thread Group 1-2,text,false,,1513,203,2,2,https://octoperf.com/blog/,90,0,60 +1699850406566,20,HTTP Request,403,Forbidden,Thread Group 1-2,text,false,,1513,203,1,1,https://octoperf.com/blog/,20,0,0 +1699850406586,18,HTTP Request,403,Forbidden,Thread Group 1-2,text,false,,1513,203,1,1,https://octoperf.com/blog/,18,0,0 +1699850406974,78,HTTP Request,403,Forbidden,Thread Group 1-3,text,false,,1513,203,1,1,https://octoperf.com/blog/,78,0,56 +1699850407052,25,HTTP Request,403,Forbidden,Thread Group 1-3,text,false,,1513,203,1,1,https://octoperf.com/blog/,25,0,0 +1699850407077,20,HTTP Request,403,Forbidden,Thread Group 1-3,text,false,,1513,203,1,1,https://octoperf.com/blog/,20,0,0 +1699850407475,82,HTTP Request,403,Forbidden,Thread Group 1-4,text,false,,1513,203,1,1,https://octoperf.com/blog/,82,0,66 +1699850407557,27,HTTP Request,403,Forbidden,Thread Group 1-4,text,false,,1513,203,1,1,https://octoperf.com/blog/,27,0,0 +1699850407585,25,HTTP Request,403,Forbidden,Thread Group 1-4,text,false,,1513,203,1,1,https://octoperf.com/blog/,25,0,0 +1699850407973,85,HTTP Request,403,Forbidden,Thread Group 1-5,text,false,,1513,203,1,1,https://octoperf.com/blog/,85,0,63 +1699850408059,18,HTTP Request,403,Forbidden,Thread Group 1-5,text,false,,1513,203,1,1,https://octoperf.com/blog/,18,0,0 +1699850408078,42,HTTP Request,403,Forbidden,Thread Group 1-5,text,false,,1513,203,1,1,https://octoperf.com/blog/,42,0,0 +1699850408475,77,HTTP Request,403,Forbidden,Thread Group 1-6,text,false,,1513,203,1,1,https://octoperf.com/blog/,77,0,58 +1699850408552,28,HTTP Request,403,Forbidden,Thread Group 1-6,text,false,,1513,203,1,1,https://octoperf.com/blog/,28,0,0 +1699850408580,36,HTTP Request,403,Forbidden,Thread Group 1-6,text,false,,1513,203,1,1,https://octoperf.com/blog/,36,0,0 +1699850408974,72,HTTP Request,403,Forbidden,Thread Group 1-7,text,false,,1513,203,1,1,https://octoperf.com/blog/,72,0,56 +1699850409047,19,HTTP Request,403,Forbidden,Thread Group 1-7,text,false,,1513,203,1,1,https://octoperf.com/blog/,19,0,0 +1699850409067,13,HTTP Request,403,Forbidden,Thread Group 1-7,text,false,,1513,203,1,1,https://octoperf.com/blog/,13,0,0 +1699850409479,93,HTTP Request,403,Forbidden,Thread Group 1-8,text,false,,1513,203,1,1,https://octoperf.com/blog/,93,0,70 +1699850409572,23,HTTP Request,403,Forbidden,Thread Group 1-8,text,false,,1513,203,1,1,https://octoperf.com/blog/,23,0,0 +1699850409596,24,HTTP Request,403,Forbidden,Thread Group 1-8,text,false,,1513,203,1,1,https://octoperf.com/blog/,24,0,0 +1699850409972,53,HTTP Request,403,Forbidden,Thread Group 1-9,text,false,,1513,203,1,1,https://octoperf.com/blog/,53,0,41 +1699850410025,18,HTTP Request,403,Forbidden,Thread Group 1-9,text,false,,1513,203,1,1,https://octoperf.com/blog/,18,0,0 +1699850410043,23,HTTP Request,403,Forbidden,Thread Group 1-9,text,false,,1513,203,1,1,https://octoperf.com/blog/,23,0,0 +1699850410472,82,HTTP Request,403,Forbidden,Thread Group 1-10,text,false,,1513,203,1,1,https://octoperf.com/blog/,82,0,60 +1699850410554,23,HTTP Request,403,Forbidden,Thread Group 1-10,text,false,,1513,203,1,1,https://octoperf.com/blog/,23,0,0 +1699850410577,22,HTTP Request,403,Forbidden,Thread Group 1-10,text,false,,1513,203,1,1,https://octoperf.com/blog/,22,0,0 diff --git a/jmeter.log b/jmeter.log index 9183b51..0499924 100644 --- a/jmeter.log +++ b/jmeter.log @@ -1,65 +1,89 @@ -2023-11-12 21:26:09,182 INFO o.a.j.u.JMeterUtils: Setting Locale to en_EN -2023-11-12 21:26:09,199 INFO o.a.j.JMeter: Loading user properties from: C:\Users\safou\Downloads\apache-jmeter-5.5\bin\user.properties -2023-11-12 21:26:09,200 INFO o.a.j.JMeter: Loading system properties from: C:\Users\safou\Downloads\apache-jmeter-5.5\bin\system.properties -2023-11-12 21:26:09,208 INFO o.a.j.JMeter: Copyright (c) 1998-2022 The Apache Software Foundation -2023-11-12 21:26:09,208 INFO o.a.j.JMeter: Version 5.5 -2023-11-12 21:26:09,208 INFO o.a.j.JMeter: java.version=17.0.6 -2023-11-12 21:26:09,208 INFO o.a.j.JMeter: java.vm.name=Java HotSpot(TM) 64-Bit Server VM -2023-11-12 21:26:09,208 INFO o.a.j.JMeter: os.name=Windows 11 -2023-11-12 21:26:09,208 INFO o.a.j.JMeter: os.arch=amd64 -2023-11-12 21:26:09,208 INFO o.a.j.JMeter: os.version=10.0 -2023-11-12 21:26:09,208 INFO o.a.j.JMeter: file.encoding=Cp1252 -2023-11-12 21:26:09,208 INFO o.a.j.JMeter: java.awt.headless=true -2023-11-12 21:26:09,208 INFO o.a.j.JMeter: Max memory =1073741824 -2023-11-12 21:26:09,208 INFO o.a.j.JMeter: Available Processors =12 -2023-11-12 21:26:09,217 INFO o.a.j.JMeter: Default Locale=English (EN) -2023-11-12 21:26:09,217 INFO o.a.j.JMeter: JMeter Locale=English (EN) -2023-11-12 21:26:09,217 INFO o.a.j.JMeter: JMeterHome=C:\Users\safou\Downloads\apache-jmeter-5.5 -2023-11-12 21:26:09,217 INFO o.a.j.JMeter: user.dir =C:\Users\safou\OneDrive\Documents\TAF\Test-Automation-Framework -2023-11-12 21:26:09,218 INFO o.a.j.JMeter: PWD =C:\Users\safou\OneDrive\Documents\TAF\Test-Automation-Framework -2023-11-12 21:26:09,219 INFO o.a.j.JMeter: IP: 192.168.0.121 Name: Xtimas FullName: Xtimas -2023-11-12 21:26:09,228 INFO o.a.j.s.FileServer: Default base='C:\Users\safou\OneDrive\Documents\TAF\Test-Automation-Framework' -2023-11-12 21:26:09,229 INFO o.a.j.s.FileServer: Set new base='C:\Users\safou\OneDrive\Documents\TAF\Test-Automation-Framework\backend\src\main\resources\jmeter' -2023-11-12 21:26:09,367 INFO o.a.j.s.SaveService: Testplan (JMX) version: 2.2. Testlog (JTL) version: 2.2 -2023-11-12 21:26:09,386 INFO o.a.j.s.SaveService: Using SaveService properties version 5.0 -2023-11-12 21:26:09,390 INFO o.a.j.s.SaveService: Using SaveService properties file encoding UTF-8 -2023-11-12 21:26:09,392 INFO o.a.j.s.SaveService: Loading file: backend\src\main\resources\jmeter\TestPlan.jmx -2023-11-12 21:26:09,434 INFO o.a.j.p.h.s.HTTPSamplerBase: Parser for text/html is org.apache.jmeter.protocol.http.parser.LagartoBasedHtmlParser -2023-11-12 21:26:09,434 INFO o.a.j.p.h.s.HTTPSamplerBase: Parser for application/xhtml+xml is org.apache.jmeter.protocol.http.parser.LagartoBasedHtmlParser -2023-11-12 21:26:09,434 INFO o.a.j.p.h.s.HTTPSamplerBase: Parser for application/xml is org.apache.jmeter.protocol.http.parser.LagartoBasedHtmlParser -2023-11-12 21:26:09,434 INFO o.a.j.p.h.s.HTTPSamplerBase: Parser for text/xml is org.apache.jmeter.protocol.http.parser.LagartoBasedHtmlParser -2023-11-12 21:26:09,434 INFO o.a.j.p.h.s.HTTPSamplerBase: Parser for text/vnd.wap.wml is org.apache.jmeter.protocol.http.parser.RegexpHTMLParser -2023-11-12 21:26:09,434 INFO o.a.j.p.h.s.HTTPSamplerBase: Parser for text/css is org.apache.jmeter.protocol.http.parser.CssParser -2023-11-12 21:26:09,440 INFO o.a.j.JMeter: Creating summariser -2023-11-12 21:26:09,453 INFO o.a.j.e.StandardJMeterEngine: Running the test! -2023-11-12 21:26:09,454 INFO o.a.j.s.SampleEvent: List of sample_variables: [] -2023-11-12 21:26:09,454 INFO o.a.j.s.SampleEvent: List of sample_variables: [] -2023-11-12 21:26:09,459 INFO o.a.j.e.u.CompoundVariable: Note: Function class names must contain the string: '.functions.' -2023-11-12 21:26:09,459 INFO o.a.j.e.u.CompoundVariable: Note: Function class names must not contain the string: '.gui.' -2023-11-12 21:26:09,521 INFO o.a.j.JMeter: Running test (1699842369520) -2023-11-12 21:26:09,535 INFO o.a.j.e.StandardJMeterEngine: Starting ThreadGroup: 1 : Thread Group -2023-11-12 21:26:09,535 INFO o.a.j.e.StandardJMeterEngine: Starting 2 threads for group Thread Group. -2023-11-12 21:26:09,535 INFO o.a.j.e.StandardJMeterEngine: Thread will continue on error -2023-11-12 21:26:09,535 INFO o.a.j.t.ThreadGroup: Starting thread group... number=1 threads=2 ramp-up=1 delayedStart=false -2023-11-12 21:26:09,539 INFO o.a.j.t.ThreadGroup: Started thread group number 1 -2023-11-12 21:26:09,540 INFO o.a.j.e.StandardJMeterEngine: All thread groups have been started -2023-11-12 21:26:09,541 INFO o.a.j.t.JMeterThread: Thread started: Thread Group 1-1 -2023-11-12 21:26:09,555 INFO o.a.j.p.h.s.HTTPHCAbstractImpl: Local host = Xtimas -2023-11-12 21:26:09,562 INFO o.a.j.p.h.s.HTTPHC4Impl: HTTP request retry count = 0 -2023-11-12 21:26:09,563 INFO o.a.j.s.SampleResult: Note: Sample TimeStamps are START times -2023-11-12 21:26:09,563 INFO o.a.j.s.SampleResult: sampleresult.default.encoding is set to ISO-8859-1 -2023-11-12 21:26:09,563 INFO o.a.j.s.SampleResult: sampleresult.useNanoTime=true -2023-11-12 21:26:09,563 INFO o.a.j.s.SampleResult: sampleresult.nanoThreadSleep=5000 -2023-11-12 21:26:09,687 INFO o.a.j.p.h.s.h.LazyLayeredConnectionSocketFactory: Setting up HTTPS TrustAll Socket Factory -2023-11-12 21:26:09,699 INFO o.a.j.u.JsseSSLManager: Using default SSL protocol: TLS -2023-11-12 21:26:09,699 INFO o.a.j.u.JsseSSLManager: SSL session context: per-thread -2023-11-12 21:26:09,796 INFO o.a.j.u.SSLManager: JmeterKeyStore Location: type JKS -2023-11-12 21:26:09,800 INFO o.a.j.u.SSLManager: KeyStore created OK -2023-11-12 21:26:09,800 WARN o.a.j.u.SSLManager: Keystore file not found, loading empty keystore -2023-11-12 21:26:10,038 INFO o.a.j.t.JMeterThread: Thread started: Thread Group 1-2 -2023-11-12 21:26:10,209 INFO o.a.j.t.JMeterThread: Thread is done: Thread Group 1-1 -2023-11-12 21:26:10,209 INFO o.a.j.t.JMeterThread: Thread is done: Thread Group 1-2 -2023-11-12 21:26:10,209 INFO o.a.j.t.JMeterThread: Thread finished: Thread Group 1-1 -2023-11-12 21:26:10,209 INFO o.a.j.t.JMeterThread: Thread finished: Thread Group 1-2 -2023-11-12 21:26:10,211 INFO o.a.j.e.StandardJMeterEngine: Notifying test listeners of end of test -2023-11-12 21:26:10,212 INFO o.a.j.r.Summariser: summary = 2 in 00:00:01 = 2.9/s Avg: 372 Min: 170 Max: 575 Err: 0 (0.00%) +2023-11-12 23:40:05,617 INFO o.a.j.u.JMeterUtils: Setting Locale to en_EN +2023-11-12 23:40:05,633 INFO o.a.j.JMeter: Loading user properties from: C:\Users\safou\Downloads\apache-jmeter-5.5\bin\user.properties +2023-11-12 23:40:05,634 INFO o.a.j.JMeter: Loading system properties from: C:\Users\safou\Downloads\apache-jmeter-5.5\bin\system.properties +2023-11-12 23:40:05,640 INFO o.a.j.JMeter: Copyright (c) 1998-2022 The Apache Software Foundation +2023-11-12 23:40:05,640 INFO o.a.j.JMeter: Version 5.5 +2023-11-12 23:40:05,640 INFO o.a.j.JMeter: java.version=17.0.6 +2023-11-12 23:40:05,640 INFO o.a.j.JMeter: java.vm.name=Java HotSpot(TM) 64-Bit Server VM +2023-11-12 23:40:05,640 INFO o.a.j.JMeter: os.name=Windows 11 +2023-11-12 23:40:05,640 INFO o.a.j.JMeter: os.arch=amd64 +2023-11-12 23:40:05,640 INFO o.a.j.JMeter: os.version=10.0 +2023-11-12 23:40:05,640 INFO o.a.j.JMeter: file.encoding=Cp1252 +2023-11-12 23:40:05,641 INFO o.a.j.JMeter: java.awt.headless=true +2023-11-12 23:40:05,641 INFO o.a.j.JMeter: Max memory =1073741824 +2023-11-12 23:40:05,641 INFO o.a.j.JMeter: Available Processors =12 +2023-11-12 23:40:05,648 INFO o.a.j.JMeter: Default Locale=English (EN) +2023-11-12 23:40:05,648 INFO o.a.j.JMeter: JMeter Locale=English (EN) +2023-11-12 23:40:05,648 INFO o.a.j.JMeter: JMeterHome=C:\Users\safou\Downloads\apache-jmeter-5.5 +2023-11-12 23:40:05,648 INFO o.a.j.JMeter: user.dir =C:\Users\safou\OneDrive\Documents\TAF\Test-Automation-Framework +2023-11-12 23:40:05,649 INFO o.a.j.JMeter: PWD =C:\Users\safou\OneDrive\Documents\TAF\Test-Automation-Framework +2023-11-12 23:40:05,650 INFO o.a.j.JMeter: IP: 192.168.0.121 Name: Xtimas FullName: Xtimas +2023-11-12 23:40:05,658 INFO o.a.j.s.FileServer: Default base='C:\Users\safou\OneDrive\Documents\TAF\Test-Automation-Framework' +2023-11-12 23:40:05,659 INFO o.a.j.s.FileServer: Set new base='C:\Users\safou\OneDrive\Documents\TAF\Test-Automation-Framework\backend\src\main\resources\jmeter' +2023-11-12 23:40:05,791 INFO o.a.j.s.SaveService: Testplan (JMX) version: 2.2. Testlog (JTL) version: 2.2 +2023-11-12 23:40:05,812 INFO o.a.j.s.SaveService: Using SaveService properties version 5.0 +2023-11-12 23:40:05,814 INFO o.a.j.s.SaveService: Using SaveService properties file encoding UTF-8 +2023-11-12 23:40:05,817 INFO o.a.j.s.SaveService: Loading file: backend\src\main\resources\jmeter\TestPlan.jmx +2023-11-12 23:40:05,859 INFO o.a.j.p.h.s.HTTPSamplerBase: Parser for text/html is org.apache.jmeter.protocol.http.parser.LagartoBasedHtmlParser +2023-11-12 23:40:05,859 INFO o.a.j.p.h.s.HTTPSamplerBase: Parser for application/xhtml+xml is org.apache.jmeter.protocol.http.parser.LagartoBasedHtmlParser +2023-11-12 23:40:05,860 INFO o.a.j.p.h.s.HTTPSamplerBase: Parser for application/xml is org.apache.jmeter.protocol.http.parser.LagartoBasedHtmlParser +2023-11-12 23:40:05,860 INFO o.a.j.p.h.s.HTTPSamplerBase: Parser for text/xml is org.apache.jmeter.protocol.http.parser.LagartoBasedHtmlParser +2023-11-12 23:40:05,860 INFO o.a.j.p.h.s.HTTPSamplerBase: Parser for text/vnd.wap.wml is org.apache.jmeter.protocol.http.parser.RegexpHTMLParser +2023-11-12 23:40:05,860 INFO o.a.j.p.h.s.HTTPSamplerBase: Parser for text/css is org.apache.jmeter.protocol.http.parser.CssParser +2023-11-12 23:40:05,866 INFO o.a.j.JMeter: Creating summariser +2023-11-12 23:40:05,877 INFO o.a.j.e.StandardJMeterEngine: Running the test! +2023-11-12 23:40:05,878 INFO o.a.j.s.SampleEvent: List of sample_variables: [] +2023-11-12 23:40:05,878 INFO o.a.j.s.SampleEvent: List of sample_variables: [] +2023-11-12 23:40:05,883 INFO o.a.j.e.u.CompoundVariable: Note: Function class names must contain the string: '.functions.' +2023-11-12 23:40:05,883 INFO o.a.j.e.u.CompoundVariable: Note: Function class names must not contain the string: '.gui.' +2023-11-12 23:40:05,955 INFO o.a.j.JMeter: Running test (1699850405955) +2023-11-12 23:40:05,969 INFO o.a.j.e.StandardJMeterEngine: Starting ThreadGroup: 1 : Thread Group +2023-11-12 23:40:05,969 INFO o.a.j.e.StandardJMeterEngine: Starting 10 threads for group Thread Group. +2023-11-12 23:40:05,970 INFO o.a.j.e.StandardJMeterEngine: Thread will continue on error +2023-11-12 23:40:05,970 INFO o.a.j.t.ThreadGroup: Starting thread group... number=1 threads=10 ramp-up=5 delayedStart=false +2023-11-12 23:40:05,976 INFO o.a.j.t.ThreadGroup: Started thread group number 1 +2023-11-12 23:40:05,976 INFO o.a.j.e.StandardJMeterEngine: All thread groups have been started +2023-11-12 23:40:05,976 INFO o.a.j.t.JMeterThread: Thread started: Thread Group 1-1 +2023-11-12 23:40:05,996 INFO o.a.j.p.h.s.HTTPHCAbstractImpl: Local host = Xtimas +2023-11-12 23:40:06,003 INFO o.a.j.p.h.s.HTTPHC4Impl: HTTP request retry count = 0 +2023-11-12 23:40:06,004 INFO o.a.j.s.SampleResult: Note: Sample TimeStamps are START times +2023-11-12 23:40:06,004 INFO o.a.j.s.SampleResult: sampleresult.default.encoding is set to ISO-8859-1 +2023-11-12 23:40:06,004 INFO o.a.j.s.SampleResult: sampleresult.useNanoTime=true +2023-11-12 23:40:06,004 INFO o.a.j.s.SampleResult: sampleresult.nanoThreadSleep=5000 +2023-11-12 23:40:06,180 INFO o.a.j.p.h.s.h.LazyLayeredConnectionSocketFactory: Setting up HTTPS TrustAll Socket Factory +2023-11-12 23:40:06,198 INFO o.a.j.u.JsseSSLManager: Using default SSL protocol: TLS +2023-11-12 23:40:06,199 INFO o.a.j.u.JsseSSLManager: SSL session context: per-thread +2023-11-12 23:40:06,287 INFO o.a.j.u.SSLManager: JmeterKeyStore Location: type JKS +2023-11-12 23:40:06,289 INFO o.a.j.u.SSLManager: KeyStore created OK +2023-11-12 23:40:06,289 WARN o.a.j.u.SSLManager: Keystore file not found, loading empty keystore +2023-11-12 23:40:06,474 INFO o.a.j.t.JMeterThread: Thread started: Thread Group 1-2 +2023-11-12 23:40:06,565 INFO o.a.j.t.JMeterThread: Thread is done: Thread Group 1-1 +2023-11-12 23:40:06,565 INFO o.a.j.t.JMeterThread: Thread finished: Thread Group 1-1 +2023-11-12 23:40:06,603 INFO o.a.j.t.JMeterThread: Thread is done: Thread Group 1-2 +2023-11-12 23:40:06,604 INFO o.a.j.t.JMeterThread: Thread finished: Thread Group 1-2 +2023-11-12 23:40:06,973 INFO o.a.j.t.JMeterThread: Thread started: Thread Group 1-3 +2023-11-12 23:40:07,096 INFO o.a.j.t.JMeterThread: Thread is done: Thread Group 1-3 +2023-11-12 23:40:07,096 INFO o.a.j.t.JMeterThread: Thread finished: Thread Group 1-3 +2023-11-12 23:40:07,472 INFO o.a.j.t.JMeterThread: Thread started: Thread Group 1-4 +2023-11-12 23:40:07,609 INFO o.a.j.t.JMeterThread: Thread is done: Thread Group 1-4 +2023-11-12 23:40:07,609 INFO o.a.j.t.JMeterThread: Thread finished: Thread Group 1-4 +2023-11-12 23:40:07,972 INFO o.a.j.t.JMeterThread: Thread started: Thread Group 1-5 +2023-11-12 23:40:08,120 INFO o.a.j.t.JMeterThread: Thread is done: Thread Group 1-5 +2023-11-12 23:40:08,120 INFO o.a.j.t.JMeterThread: Thread finished: Thread Group 1-5 +2023-11-12 23:40:08,471 INFO o.a.j.t.JMeterThread: Thread started: Thread Group 1-6 +2023-11-12 23:40:08,616 INFO o.a.j.t.JMeterThread: Thread is done: Thread Group 1-6 +2023-11-12 23:40:08,616 INFO o.a.j.t.JMeterThread: Thread finished: Thread Group 1-6 +2023-11-12 23:40:08,971 INFO o.a.j.t.JMeterThread: Thread started: Thread Group 1-7 +2023-11-12 23:40:09,080 INFO o.a.j.t.JMeterThread: Thread is done: Thread Group 1-7 +2023-11-12 23:40:09,080 INFO o.a.j.t.JMeterThread: Thread finished: Thread Group 1-7 +2023-11-12 23:40:09,475 INFO o.a.j.t.JMeterThread: Thread started: Thread Group 1-8 +2023-11-12 23:40:09,619 INFO o.a.j.t.JMeterThread: Thread is done: Thread Group 1-8 +2023-11-12 23:40:09,619 INFO o.a.j.t.JMeterThread: Thread finished: Thread Group 1-8 +2023-11-12 23:40:09,970 INFO o.a.j.t.JMeterThread: Thread started: Thread Group 1-9 +2023-11-12 23:40:10,065 INFO o.a.j.t.JMeterThread: Thread is done: Thread Group 1-9 +2023-11-12 23:40:10,066 INFO o.a.j.t.JMeterThread: Thread finished: Thread Group 1-9 +2023-11-12 23:40:10,471 INFO o.a.j.t.JMeterThread: Thread started: Thread Group 1-10 +2023-11-12 23:40:10,598 INFO o.a.j.t.JMeterThread: Thread is done: Thread Group 1-10 +2023-11-12 23:40:10,598 INFO o.a.j.t.JMeterThread: Thread finished: Thread Group 1-10 +2023-11-12 23:40:10,599 INFO o.a.j.e.StandardJMeterEngine: Notifying test listeners of end of test +2023-11-12 23:40:10,600 INFO o.a.j.r.Summariser: summary = 30 in 00:00:05 = 6.5/s Avg: 53 Min: 13 Max: 435 Err: 30 (100.00%)