Skip to content

Rough Book

random musings

Menu
  • About Me
  • Contact
  • Projects
    • bAdkOde
    • CherryBlossom
    • FXCalendar
    • Sulekha
Menu

Writing Performance Tests in Grinder using a Framework

Posted on September 16, 2009June 10, 2012 by vivin

A Login and Logout Scenario

Our first scenario is going to be a very simple one. We're just going to log into the application and then log out. We're going to use default values and aren't going to parameterize anything:

login-logout.py
[sourcecode language="python"]
from torqueo.test.framework.Scenario import Scenario
from torqueo.test.tasks.login.LoginTask import LoginTask
from torqueo.test.tasks.login.LogoutTask import LogoutTask

#
# Make a new scenario
#

myScenario = Scenario("My Scenario", {"url0":"https://local.sitetotest.com:8443"});

# Create a new instance of the Login Task
loginTask = LoginTask()

# Create a new instance of the Logout Task
logoutTask = LogoutTask()

#Add the tasks to our scenario
myScenario.addTask(loginTask)
myScenario.addTask(logoutTask)

class TestRunner:
def __call__(self):
myScenario.run()
[/sourcecode]

Pretty simple, right? First we create an instance of a Scenario. We give it a description and also a dictionary containing the URL we're going to be using. Then, we create an instance of a login task, a logout task, and add it to our scenario. Finally, we run our scenario in the __call__ method. Now what if we want to parameterize the logins? That's not difficult either:

login-logout-parameterized.py:
[sourcecode language="python"]
from torqueo.test.framework.Scenario import Scenario
from torqueo.test.tasks.login.LoginTask import LoginTask
from torqueo.test.tasks.login.LogoutTask import LogoutTask

#
# Make a new scenario
#

myScenario = Scenario("My Scenario", {"url0":"https://local.sitetotest.com:8443"});

# Create a new instance of the Login Task
loginTask = LoginTask()

# Define our login credentials

loginCredentials = [{"username":"vivin", "password":"[email protected]"},
{"username":"jimbo", "password":"[email protected]"},
{"username":"hippy", "password":"[email protected]"},
{"username":"flippy", "password":"[email protected]"},
{"username":"batman", "password":"[email protected]"},
{"username":"beverly", "password":"[email protected]"},
{"username":"worf", "password":"[email protected]"},
{"username":"deanna", "password":"[email protected]"},
{"username":"jean-luc", "password":"[email protected]"},
{"username":"laren", "password":"[email protected]"},
{"username":"will", "password":"[email protected]"},
{"username":"tasha", "password":"[email protected]"},
{"username":"geordi", "password":"[email protected]"},
{"username":"data", "password":"[email protected]"},
{"username":"wesley", "password":"[email protected]"}]

# Set loginCredentials as a new property of loginTask since we're going to be
# using it in our parameterizing method
setattr(loginTask, "loginCredentials", loginCredentials)

# Define our parameterizing method

def parameterizeLogin(self=loginTask):
loginCredential = self.loginCredentials[grinder.threadNumber];
username = loginCredential["username"];
password = loginCredential["password"];

self.parameters["appLogin2"]["201"]["username"] = username;
self.parameters["appLogin2"]["201"]["password"] = password;

# Set parameterizeLogin the parameterizing method for "appLogin2"
loginTask.setParameterizingMethodFor("appLogin2", parameterizeLogin)

# Create a new instance of the Logout Task
logoutTask = LogoutTask()

#Add the tasks to our scenario
myScenario.addTask(loginTask)
myScenario.addTask(logoutTask)

class TestRunner:
def __call__(self):
myScenario.run()
[/sourcecode]

Pages: 1 2 3 4 5 6 7 8 9 10

52 thoughts on “Writing Performance Tests in Grinder using a Framework”

Comments navigation

Older comments
  1. Chandu says:
    August 25, 2014 at 7:12 am

    I configured, Grinderstone, PyDev and Jython on Eclipse Mars (version 4.5) with java 1.7, will can I be able to start recording scripts from Eclipse directly ? to do that should I include the startTCPProxy.sh from Eclipse or is there any other way ? Please adivise, which approach will be more productive , appreciate your response.

    Reply
  2. Chandu says:
    September 9, 2014 at 12:45 pm

    how to parameter values in quotes in jython, this is my method :
    BaseSTSSchedulerTask.__init__(self, Test(testId, “Get Service Group by ID”), hostPort, ‘/SchServices/api/servicegroup/9999’, HEADERS)

    I want to replace the value 9999 with a variable which is returned from a method., like id= Data.getID(). I tried doing this ‘/SchServices/api/servicegroup/’+id, it does not help . Any idea how to handle this ?

    Reply

Comments navigation

Older comments

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Meta

  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org

Archives

  • February 2023
  • April 2020
  • February 2020
  • January 2020
  • December 2019
  • November 2019
  • September 2019
  • August 2019
  • July 2019
  • June 2019
  • May 2019
  • March 2019
  • February 2019
  • January 2019
  • December 2018
  • November 2018
  • September 2018
  • August 2018
  • July 2018
  • June 2018
  • May 2018
  • April 2018
  • March 2018
  • February 2018
  • January 2018
  • December 2017
  • November 2017
  • October 2017
  • June 2017
  • March 2017
  • November 2016
  • August 2016
  • July 2016
  • June 2016
  • February 2016
  • August 2015
  • July 2014
  • June 2014
  • March 2014
  • December 2013
  • November 2013
  • September 2013
  • July 2013
  • June 2013
  • March 2013
  • February 2013
  • January 2013
  • October 2012
  • July 2012
  • June 2012
  • January 2012
  • December 2011
  • November 2011
  • October 2011
  • September 2011
  • July 2011
  • June 2011
  • May 2011
  • February 2011
  • January 2011
  • December 2010
  • November 2010
  • October 2010
  • September 2010
  • July 2010
  • June 2010
  • May 2010
  • April 2010
  • March 2010
  • January 2010
  • December 2009
  • November 2009
  • October 2009
  • September 2009
  • August 2009
  • July 2009
  • May 2009
  • April 2009
  • March 2009
  • February 2009
  • January 2009
  • December 2008
  • November 2008
  • October 2008
  • August 2008
  • March 2008
  • February 2008
  • November 2007
  • July 2007
  • June 2007
  • May 2007
  • March 2007
  • December 2006
  • October 2006
  • September 2006
  • August 2006
  • June 2006
  • April 2006
  • March 2006
  • January 2006
  • December 2005
  • November 2005
  • October 2005
  • September 2005
  • August 2005
  • July 2005
  • June 2005
  • May 2005
  • April 2005
  • February 2005
  • October 2004
  • September 2004
  • August 2004
  • July 2004
  • June 2004
  • May 2004
  • April 2004
  • March 2004
  • February 2004
  • January 2004
  • December 2003
  • November 2003
  • October 2003
  • September 2003
  • July 2003
  • June 2003
  • May 2003
  • March 2003
  • February 2003
  • January 2003
  • December 2002
  • November 2002
  • October 2002
  • September 2002
  • August 2002
  • July 2002
  • June 2002
  • May 2002
  • April 2002
  • February 2002
  • September 2001
  • August 2001
  • April 2001
  • March 2001
  • February 2001
  • January 2001
  • December 2000
  • November 2000
  • October 2000
  • August 2000
  • July 2000
  • June 2000
  • May 2000
  • March 2000
  • January 2000
  • December 1999
  • November 1999
  • October 1999
  • September 1999
©2023 Rough Book | Built using WordPress and Responsive Blogily theme by Superb
All original content on these pages is fingerprinted and certified by Digiprove