Changeset 225


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
Files:
4 edited

Legend:

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

    r224 r225  
    3737        /** 
    3838         * <p> 
    39          * Minimal length of a session. All shorter sessions will be pruned. 
     39         * Minimal length of a session. All shorter sessions will be pruned.<br> 
    4040         * Default: 2 
    4141         * </p> 
     
    4545        /** 
    4646         * <p> 
    47          * Maximal length of a session. All longer sessions will be prunde. Default: 
    48          * 100 
     47         * Maximal length of a session. All longer sessions will be pruned.<br> 
     48         * Default: 100 
    4949         * </p> 
    5050         */ 
    5151        private int maxLength = 100; 
     52 
     53        /** 
     54         * <p> 
     55         * URL of the server that generated the log that is currently parser; null 
     56         * of URL is not available.<br> 
     57         * Default: null 
     58         * </p> 
     59         */ 
     60        private String url = null; 
    5261 
    5362        /** 
     
    142151        public void setMaxLength(int maxLength) { 
    143152                this.maxLength = maxLength; 
     153        } 
     154 
     155        /** 
     156         * <p> 
     157         * Sets the URL of the server from which this log was generated. Often 
     158         * required for replay generation 
     159         * </p> 
     160         *  
     161         * @param url 
     162         *            URL of the server 
     163         */ 
     164        public void setUrl(String url) { 
     165                this.url = url; 
    144166        } 
    145167 
     
    203225                                        List<String> getVars = extractGetVarsFromUri(uri); 
    204226 
    205                                         WebEvent event = new WebEvent(path, timestamp, postedVars, 
    206                                                         getVars); 
     227                                        WebEvent event = new WebEvent(url, path, timestamp, 
     228                                                        postedVars, getVars); 
    207229 
    208230                                        // find session and add event 
  • trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/web/commands/CMDloadSessionsFromClickstream.java

    r224 r225  
    3434                String source = (String) parameters.get(0); 
    3535                String sequencesName = (String) parameters.get(1); 
     36                String serverUrl = ""; 
    3637                int timeout = -1; 
    3738                int minLength = -1; 
    3839                int maxLength = -1; 
    39                 if (parameters.size() >= 4) { 
    40                         timeout = Integer.parseInt((String) parameters.get(2)); 
    41                         minLength = Integer.parseInt((String) parameters.get(3)); 
    42                         maxLength = Integer.parseInt((String) parameters.get(4)); 
     40                if( parameters.size()>=3 ) { 
     41                        serverUrl = (String) parameters.get(2); 
     42                } 
     43                if (parameters.size() >= 5) { 
     44                        timeout = Integer.parseInt((String) parameters.get(3)); 
     45                        minLength = Integer.parseInt((String) parameters.get(4)); 
     46                        maxLength = Integer.parseInt((String) parameters.get(5)); 
    4347                } 
    4448 
    4549                WeblogParser parser = new WeblogParser(); 
     50                if( serverUrl!="" ) { 
     51                        parser.setUrl(serverUrl); 
     52                } 
    4653                if (timeout != -1) { 
    4754                        parser.setTimeout(timeout); 
     
    7380        @Override 
    7481        public void help() { 
    75                 Console.println("Usage: loadSessionsFromClickstream <filename> <sequencesName> {<timeout> <minSessionLength> <maxSessionLength>}"); 
     82                Console.println("Usage: loadSessionsFromClickstream <filename> <sequencesName> {<serverUrl>} {<timeout> <minSessionLength> <maxSessionLength>}"); 
    7683        } 
    7784 
  • 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.