Search code examples
automationload-testingweb-testing

Specifying run time for Web Polygraph load tool


I am use Web Polygraph load testing tool to make rapid http requests as it is reliable, low resource consumption, and has good reporting. However, I cannot find any settings to tell Web Polygraph to run for a certain amount of time. I want to be able to have accurate reporting instead of potential misses caused by sending a kill signal to the process.

I have been reading through web polygraph's help pages and can see that the requests per second is configurable, but am not seeing support for request duration time.

I have the config file as such (I think this is where the option would go, likely in the Robot configuration):

Content SimpleContent = {
    size = exp(1KB); // response sizes distributed exponentially
    cachable = 100%;
};

Server S1 = {
    kind = "S101"; 
    contents = [ SimpleContent ];
    direct_access = contents;

    addresses = ['X.X.X.X' ];
};

// a primitive robot
Robot R1 = {
    kind = "R101";
        req_rate = 100/sec;
        interests = [ "foreign" ];
        foreign_trace = "/home/x/trace.urls";
    pop_model = { pop_distr = popUnif(); };
    recurrence = 100% / SimpleContent.cachable; 

    origins = S1.addresses;
    addresses = ['X.X.X.X' ];
};

I am expecting to be able to set some duration, say 40min, where I am able to have the R1 robot request 100 pages per second for 40 minutes.


Solution

  • I got an answer from the Web Polygraph support. For future reference, this can be accomplished through the Phase and Goal objects, as well as using the Schedule function with them. Here is a snipbit of the email I got back:

    See the goal field inside the Phase object:
    
    http://www.web-polygraph.org/docs/reference/pgl/types.html#type:docs/reference/pgl/types/Goal
    
    http://www.web-polygraph.org/docs/reference/pgl/types.html#type:docs/reference/pgl/types/Phase
    
    Do not forget to schedule() your phases:
    http://www.web-polygraph.org/docs/reference/pgl/calls.html
    
    
    Many workloads that are distributed with Polygraph include Phase
    schedules. To see examples, search for "goal" in workloads/