Ignore:
Timestamp:
09/30/11 17:36:08 (13 years ago)
Author:
sherbold
Message:

+ implemented replay generation for de.ugoe.cs.eventbench.web.data.WebRequest?

Location:
trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/web/data
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/web/data/WebEvent.java

    r171 r225  
    5959         * </p> 
    6060         *  
     61         * @param url 
     62         *            URL of the server that received the event 
    6163         * @param path 
    6264         *            path of the URI 
     
    6870         *            GET variables send with the event 
    6971         */ 
    70         public WebEvent(String path, long timestamp, List<String> postVars, 
    71                         List<String> getVars) { 
     72        public WebEvent(String url, String path, long timestamp, 
     73                        List<String> postVars, List<String> getVars) { 
    7274                super(makeType(path, postVars, getVars)); 
    7375                this.timestamp = timestamp; 
    74                 addReplayEvent(new WebRequest(path, postVars, getVars)); 
     76                addReplayEvent(new WebRequest(url, path, postVars, getVars)); 
    7577        } 
    7678 
  • trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/web/data/WebRequest.java

    r171 r225  
    99 * <p> 
    1010 * Contains all information related to a web request, i.e., the path, the POST 
    11  * variables and the GET variables. 
     11 * variables and the GET variables. The generated replay are for the command 
     12 * line tool {@code curl}. The requests do not contain correct values for the 
     13 * POST and GET request. Instead, only the parameters that are part of the 
     14 * requests are added and the values of the parameters are 
     15 * DATA_$PARAMNAME$_DATA, where $PARAMNAME$ is the upper case string of the 
     16 * parameter name. This allows test data generators to insert concrete values, 
     17 * as EventBench does not include a test data generator for web software. 
    1218 * </p> 
    1319 *  
     
    4753        /** 
    4854         * <p> 
     55         * URL of the server. 
     56         * </p> 
     57         */ 
     58        String serverUrl; 
     59 
     60        /** 
     61         * <p> 
    4962         * Constructor. Creates a new WebRequest. 
    5063         * </p> 
     
    5770         *            GET variables of the request 
    5871         */ 
    59         public WebRequest(String uri, List<String> postVars, List<String> getVars) { 
     72        public WebRequest(String url, String uri, List<String> postVars, 
     73                        List<String> getVars) { 
     74                serverUrl = url; 
    6075                targetUri = uri; 
    6176                this.postVars = new ArrayList<String>(postVars); // defensive copy 
     
    7085        @Override 
    7186        public String getReplay() { 
    72                 // TODO implement method 
    73                 return null; 
     87                StringBuilder builder = new StringBuilder(); 
     88                builder.append("curl"); 
     89                if (!postVars.isEmpty()) { 
     90                        boolean isFirstPost = true; 
     91                        for (String postVar : postVars) { 
     92                                if (isFirstPost) { 
     93                                        builder.append(" --data \""); 
     94                                        isFirstPost = false; 
     95                                } else { 
     96                                        builder.append("&"); 
     97                                } 
     98                                builder.append(postVar + "=DATA_" + postVar.toUpperCase() 
     99                                                + "_DATA"); 
     100                        } 
     101                        builder.append("\""); 
     102                } 
     103                builder.append(" "); 
     104                if (serverUrl != null) { 
     105                        builder.append(serverUrl); 
     106                } 
     107                builder.append(targetUri); 
     108                if (!getVars.isEmpty()) { 
     109                        boolean isFirstGet = true; 
     110                        for (String getVar : getVars) { 
     111                                if (isFirstGet) { 
     112                                        builder.append("?"); 
     113                                        isFirstGet = false; 
     114                                } else { 
     115                                        builder.append("&"); 
     116                                } 
     117                                builder.append(getVar + "=DATA_" + getVar.toUpperCase() 
     118                                                + "_DATA"); 
     119                        } 
     120                } 
     121                return builder.toString(); 
    74122        } 
    75123 
     
    81129        @Override 
    82130        public String getTarget() { 
    83                 // TODO implement method 
    84                 return null; 
     131                return targetUri; 
    85132        } 
    86133 
Note: See TracChangeset for help on using the changeset viewer.