requests-simulator

Details

diff --git a/src/main/java/br/ufrgs/inf/prosoft/requestssimulator/Main.java b/src/main/java/br/ufrgs/inf/prosoft/requestssimulator/Main.java
index a7a6a49..cb7d9a6 100644
--- a/src/main/java/br/ufrgs/inf/prosoft/requestssimulator/Main.java
+++ b/src/main/java/br/ufrgs/inf/prosoft/requestssimulator/Main.java
@@ -21,7 +21,7 @@ public class Main {
         System.setProperty("java.util.logging.SimpleFormatter.format", "[%1$tF %1$tT+%1$tL] [%4$-7s] [RequestsSimulator] %5$s %n");
 
         if (args.length < 2) {
-            System.err.println("--profile=<ProfilePath> --time=<time> [--users=<users>] [--log=<LogPath>] [--throughput=<ThroughputPath>] [--host=<host>]");
+            System.err.println("--profile=<ProfilePath> --time=<time> [--users=<users>] [--log=<LogPath>] [--throughput=<ThroughputPath>] [--host=<host>] [--home=<homePath>]");
             System.err.println("--profile=<ProfilePath> --execute=<LogPath> [--throughput=<ThroughputPath>] [--host=<host>]");
             System.err.println("--throughput=<ThroughputPath> --reduce=<ReducePath> --prefix=<prefix>");
             System.exit(1);
@@ -68,6 +68,11 @@ public class Main {
         }
         Profile profile = ProfileReader.parseFile(profilePath, host);
 
+        String homePath = arguments.get("home");
+        if (homePath != null) {
+            Request.HOME_PATH = homePath;
+        }
+
         Request.REQUESTS_LOG = throughputPath;
         String logPath = arguments.get("execute");
         if (logPath != null) {
diff --git a/src/main/java/br/ufrgs/inf/prosoft/requestssimulator/requests/MultipartRequest.java b/src/main/java/br/ufrgs/inf/prosoft/requestssimulator/requests/MultipartRequest.java
index 8500f2e..a5e8826 100644
--- a/src/main/java/br/ufrgs/inf/prosoft/requestssimulator/requests/MultipartRequest.java
+++ b/src/main/java/br/ufrgs/inf/prosoft/requestssimulator/requests/MultipartRequest.java
@@ -73,7 +73,7 @@ public class MultipartRequest extends Request {
             MultipartEntityBuilder multipartEntityBuilder = MultipartEntityBuilder.create();
             forms().forEach(entry -> {
                 if (entry.getKey().equals("file")) {
-                    File file = new File(entry.getValue());
+                    File file = new File(Request.HOME_PATH, entry.getValue());
                     multipartEntityBuilder.addBinaryBody(entry.getKey(), file);
                 } else {
                     multipartEntityBuilder.addTextBody(entry.getKey(), fillPropertyVariable(entry.getValue()));
diff --git a/src/main/java/br/ufrgs/inf/prosoft/requestssimulator/requests/Request.java b/src/main/java/br/ufrgs/inf/prosoft/requestssimulator/requests/Request.java
index f155759..eafb411 100644
--- a/src/main/java/br/ufrgs/inf/prosoft/requestssimulator/requests/Request.java
+++ b/src/main/java/br/ufrgs/inf/prosoft/requestssimulator/requests/Request.java
@@ -36,6 +36,7 @@ public abstract class Request {
     private final Collection<String> storeFields;
     private final Session session;
     public static String REQUESTS_LOG = null;
+    public static String HOME_PATH = "";
 
     protected Request(RequestPlan requestPlan, Session session, String URL) {
         this.requestPlan = requestPlan;
diff --git a/src/main/java/br/ufrgs/inf/prosoft/requestssimulator/requests/RequestPlan.java b/src/main/java/br/ufrgs/inf/prosoft/requestssimulator/requests/RequestPlan.java
index 6aa7a0f..4fbdd8c 100644
--- a/src/main/java/br/ufrgs/inf/prosoft/requestssimulator/requests/RequestPlan.java
+++ b/src/main/java/br/ufrgs/inf/prosoft/requestssimulator/requests/RequestPlan.java
@@ -223,7 +223,7 @@ public class RequestPlan {
             headers = replaceOptionals(this.headers);
             headers = replaceRandoms(headers, map);
             if (this.headers.contains("multipart")) {
-                String forms = this.forms;
+                String forms = replaceOptionals(this.forms);
                 return new MultipartRequest(this, session, URL, headers, forms, storeFields);
             }
         }