DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUGĀ·
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=43002>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED ANDĀ·
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=43002


[EMAIL PROTECTED] changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEEDINFO                    |ASSIGNED




------- Additional Comments From [EMAIL PROTECTED]  2007-07-31 10:48 -------
The response payload is about ~10K with JSP's that call Java application code.  
Normal unladen execution times are about ~8ms.   The web pages include one or 
more images/flash applications.   The test client ignores these however.  There 
are NO SLEEPS between requests, as we are trying to similate normal traffic 
through our load balancing appliances.   I'm attaching the grinder config file 
and JPython test script.

Here is the grinder configuration file:
====================================================================
# grinder configuration

##### Required fields #####
PROJECT=RefAppLoadTest

#TEST_SCRIPT=ReferenceAppTest_S9_DualNic_noimages_random_nosleep.py
#TEST_SCRIPT=ReferenceAppTest_noimages_random_nosleep.py
TEST_SCRIPT=ReferenceAppTest_DefaultContext_Random_NoSleep.py
#TEST_SCRIPT=ReferenceAppTest_noimages_nosleep_spiking.py
#TEST_SCRIPT=ReferenceAppTest_DefaultContext_Random_20RPS_rhvm2-3-4.py
#TEST_SCRIPT=ReferenceAppTest_DefaultContext_Random_TestResults1field_5RPS.py

# Duration of the full test (minutes)
# This time must match the time required for the test script
# to run
TEST_DURATION=10
#TEST_RUNS=2

# The users will be evenly distributed across all clients,
# using the floor of NUM_USERS/LOAD_CLIENTS
LINUX_LOAD_CLIENTS=sedplatfc5,sedplatfc3,sedplatfc4
#LINUX_LOAD_CLIENTS=sedplatfc5
WIN_LOAD_CLIENTS=

# Total number of users across all load clients
NUM_USERS=120

# Number of users to start with each grouping
USERS_IN_GROUP=30

# Time in seconds between the start of each group of users
GROUP_RAMPUP_TIME=120

# Total number of spike users
SPIKE=0

# How long between spikes in seconds
SPIKE_INTERVAL=180

# Deviation around the spike in milliseconds
SPIKE_SIGMA=750

# The server to test
# Barista sedplat9
#TARGET_SERVER=sedplat9:9100

# Tomcat sedplat9
#TARGET_SERVER=sedplat9:9000

# Tomcat sedplat3
#TARGET_SERVER=sedplat3:9000
#TARGET_SERVER=sedplat4:9000

#Tomcat on Red Hat
#TARGET_SERVER=sedplatfc1:9000

#Tomcat on Red Hat Virtual
TARGET_SERVER=sedplat9.go.com:9000

#Stouted Ref App
#TARGET_SERVER=sedplat5

#Quantified Stouted Advarked Ref App
#TARGET_SERVER=sedplat8:8082

# The process to monitor on the server
#TARGET_PROCESS=DPReferenceAppB
TARGET_PROCESS=DPReferenceApp.
#TARGET_PROCESS=inetinfo

# The interval to retrieve performance data samples from the server (seconds)
SAMPLING_PERIOD=5



##### Optional fields #####
# Defaults to no perfmon logging
#PERFMON=true

# Defaults to true
USE_CONSOLE=true

Here is the Python script
=====================================================================
# The Grinder 3.0-beta30
# HTTP script recorded by TCPProxy at Sep 28, 2006 3:16:38 PM
import random

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()

requestsPerSecond = 50

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

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

connectionDefaults.defaultHeaders = \
  ( NVPair('User-Agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; 
rv:1.8.0.7) Gecko/20060909 Firefox/1.5.0.7'),
    NVPair('Accept-Encoding', 'gzip,deflate'),
    NVPair('Accept-Language', 'en-us,en;q=0.5'),
    NVPair('Accept-Charset', 'ISO-8859-1,utf-8;q=0.7,*;q=0.7'),
    NVPair('INLINEREPLACE', 'Yes'), )
    
headers= \
  ( NVPair
('Accept', 'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/
plain;q=0.8,image/png,*/*;q=0.5'),
    NVPair
('Referer', 'http://sedplat9.go.com:9000/ReferenceApplication/ReferenceApplicati
on/dynamic/homePage'), )

url0 = 'http://sedplat9.go.com:9000'

articleIds = ['36', '113', '114', '115', '116', '117', '118', '119', '120', 
              '121', '122', '123', '124', '125', '126', '127', '128', '129', '13
0', '132', '622']

aboutIds = ['314','315','316','317','318', '319', '320', '321', '621']

# Create an HTTPRequest for each request, then replace the
# reference to the HTTPRequest with an instrumented version.
# You can access the unadorned instance using request101.__target__.
homePageRequest = HTTPRequest(url=url0, headers=headers)
homePageRequest = Test(1, 'Homepage').wrap(homePageRequest)

eventHomeRequest = HTTPRequest(url=url0, headers=headers)
eventHomeRequest = Test(2, 'Event Home Page').wrap(eventHomeRequest)

eventRequest = HTTPRequest(url=url0, headers=headers)
eventRequest = Test(3, 'Event Page').wrap(eventRequest)

eventItemRequest = HTTPRequest(url=url0, headers=headers)
eventItemRequest = Test(4, 'Event Item Page').wrap(eventItemRequest)

newsPageRequest = HTTPRequest(url=url0, headers=headers)
newsPageRequest = Test(5, 'News Page').wrap(newsPageRequest)

newsArticleRequest = HTTPRequest(url=url0, headers=headers)
newsArticleRequest = Test(6, 'News Article').wrap(newsArticleRequest)

aboutRequest = HTTPRequest(url=url0, headers=headers)
aboutRequest = Test(7, 'News Article').wrap(aboutRequest)

class TestRunner:
  
  """A TestRunner instance is created for each worker thread."""
  def __init__(self):
    ####### INCLUDE THESE TWO LINES TO HAVE GROUP RAMPUP TIME 
####################
    threadGroup = grinder.threadID / 30        
    grinder.sleep((1000 * 120 * threadGroup) + INITIAL_SLEEP_TIME, 0)
    ####### END RAMPUP TIME 
######################################################
    self.sleepTime = 1000 / requestsPerSecond

  # Home Page
  def getHomePage(self):
    result = homePageRequest.GET('/ReferenceApplication/dynamic/homepage')
    self.token_appRedirect = \
      httpUtilities.valueFromBodyURI('appRedirect') # 'homepage'
    self.token_count = \
      httpUtilities.valueFromHiddenInput('count') # '0'
    self.token_login_submit = \
      httpUtilities.valueFromHiddenInput('login_submit') # '1'

    return result

  # Single method for any Event pages
  def getEventHomePage(self):
    result = eventHomeRequest.GET('/ReferenceApplication/dynamic/eventspage')
    self.token_appRedirect = \
      httpUtilities.valueFromBodyURI('appRedirect') # 'homepage'
    return result

  # Single method for any Event pages
  def getEventPage(self, dateStr):
    result = eventRequest.GET('/ReferenceApplication/dynamic/eventspage?date=' 
+ dateStr)
    return result
  
  def getNewsPage(self):
    result = newsPageRequest.GET('/ReferenceApplication/dynamic/newsPage')
    self.token_appRedirect = \
      httpUtilities.valueFromBodyURI('appRedirect') # 'newsPage'
    return result

  def getNewsArticlePage(self, id):
    result = newsArticleRequest.GET('/ReferenceApplication/dynamic/newsArticle?
id=' + id)
    return result

  def getAboutPage(self, id):
    result = aboutRequest.GET('/ReferenceApplication/dynamic/aboutFeature?id=' 
+ id)
    return result
    

  def getEventItemPage(self, eventId):
    result = eventItemRequest.GET('/ReferenceApplication/dynamic/aboutEvent?
id=' + str(eventId))
    return result

  def __call__(self):
    """This method is called for every run performed by the worker thread."""
    self.getHomePage()      # GET homepage 
    self.getEventHomePage()      # GET default eventspage
 
    eventMonthStr = '20060701'   
    # Randomly request 3 of the 5 eventpages
    for i in range(3):
        rand = random.randint(0,4)
        if rand == 0:          
            eventMonthStr = '20060701'
        elif rand == 1:          
            eventMonthStr = '20060801'
        elif rand == 2:          
            eventMonthStr = '20060901'
        elif rand == 3:          
            eventMonthStr = '20061001'
        elif rand == 4:          
            eventMonthStr = '20061101'
        self.getEventPage(eventMonthStr)
            
        #Randomly pick 3 events. Events range from 133-286, 325-355, 587-617
        eventId = random.randint(133,286)  
        self.getEventItemPage(eventId)
        eventId = random.randint(325,355)        
        self.getEventItemPage(eventId)
        eventId = random.randint(587,617)        
        self.getEventItemPage(eventId)

    # GET default newspage
    self.getNewsPage()      

    
    # Randomly request 4 newsarticles
    for i in range(4):
        idx = random.randint(0,len(articleIds)-1)
        self.getNewsArticlePage(articleIds[idx])


    # Randomly request 3 abouttopics
    for i in range(3):
        idx = random.randint(0,len(aboutIds)-1)
        self.getAboutPage(aboutIds[idx])

    #grinder.sleep(self.sleepTime)



-- 
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to