# The Grinder 3.11
# HTTP script recorded by TCPProxy at Apr 22, 2016 9:33:39 AM

from net.grinder.script import Test
from net.grinder.script.Grinder import grinder
from net.grinder.plugin.http import HTTPPluginControl, HTTPRequest
from HTTPClient import NVPair
connectionDefaults = HTTPPluginControl.getConnectionDefaults()
httpUtilities = HTTPPluginControl.getHTTPUtilities()

# To use a proxy server, uncomment the next line and set the host and port.
# connectionDefaults.setProxyServer("localhost", 8001)

def createRequest(test, url, headers=None):
    """Create an instrumented HTTPRequest."""
    request = HTTPRequest(url=url)
    if headers: request.headers=headers
    test.record(request, HTTPRequest.getHttpMethodFilter())
    return request

# These definitions at the top level of the file are evaluated once,
# when the worker process is started.

connectionDefaults.defaultHeaders = \
  [ NVPair('Accept-Language', 'en-US,en;q=0.5'),
    NVPair('Accept-Encoding', 'gzip, deflate'),
    NVPair('User-Agent', 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0'), ]

headers0= \
  [ NVPair('Accept', 'image/png,image/*;q=0.8,*/*;q=0.5'),
    NVPair('Referer', 'http://192.168.135.226:8080/undertow-perf-test-app/dynamic.jsp'), ]

url0 = 'http://192.168.135.226:8080'

request101 = createRequest(Test(101, 'GET dynamic.jsp'), url0)
request102 = createRequest(Test(102, 'GET pic1.png'), url0, headers0)
request103 = createRequest(Test(103, 'GET pic4.png'), url0, headers0)
request104 = createRequest(Test(104, 'GET pic2.png'), url0, headers0)
request105 = createRequest(Test(105, 'GET pic5.png'), url0, headers0)
request106 = createRequest(Test(106, 'GET pic7.png'), url0, headers0)
request107 = createRequest(Test(107, 'GET pic12.png'), url0, headers0)
request108 = createRequest(Test(108, 'GET pic3.png'), url0, headers0)
request109 = createRequest(Test(109, 'GET pic8.png'), url0, headers0)
request110 = createRequest(Test(110, 'GET pic6.png'), url0, headers0)
request111 = createRequest(Test(111, 'GET pic9.png'), url0, headers0)
request112 = createRequest(Test(112, 'GET pic10.png'), url0, headers0)
request113 = createRequest(Test(113, 'GET pic11.png'), url0, headers0)
request114 = createRequest(Test(114, 'GET pic13.png'), url0, headers0)
request115 = createRequest(Test(115, 'GET pic14.png'), url0, headers0)
request116 = createRequest(Test(116, 'GET pic16.png'), url0, headers0)
request117 = createRequest(Test(117, 'GET pic15.png'), url0, headers0)

class TestRunner:
  """A TestRunner instance is created for each worker thread."""

  # A method for each recorded page.
  def page1(self):
    """GET dynamic.jsp (requests 101-118)."""
    result = request101.GET('/undertow-perf-test-app/dynamic.jsp', None,
      ( NVPair('Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'), ))
    grinder.sleep(30)
    request102.GET('/undertow-perf-test-app/pic1.png')
    request103.GET('/undertow-perf-test-app/pic4.png')
    request104.GET('/undertow-perf-test-app/pic2.png')
    request105.GET('/undertow-perf-test-app/pic5.png')
    request106.GET('/undertow-perf-test-app/pic7.png')
    request107.GET('/undertow-perf-test-app/pic12.png')
    request108.GET('/undertow-perf-test-app/pic3.png')
    request109.GET('/undertow-perf-test-app/pic8.png')
    request110.GET('/undertow-perf-test-app/pic6.png')
    request111.GET('/undertow-perf-test-app/pic9.png')
    request112.GET('/undertow-perf-test-app/pic10.png')
    request113.GET('/undertow-perf-test-app/pic11.png')
    request114.GET('/undertow-perf-test-app/pic13.png')
    request115.GET('/undertow-perf-test-app/pic14.png')
    request116.GET('/undertow-perf-test-app/pic16.png')
    request117.GET('/undertow-perf-test-app/pic15.png')
    grinder.sleep(100)
    return result

  def __call__(self):
    """Called for every run performed by the worker thread."""
    while True:
        self.page1()      # GET dynamic.jsp (requests 101-118)

# Instrument page methods.
Test(100, 'Page 1').record(TestRunner.page1)

