jmeter-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kyle McAbee" <k.mca...@treev.com>
Subject RE: how to pass in username and password for load testing?
Date Mon, 15 Nov 2004 16:22:58 GMT
Dear Mr. Li:

Perhaps a simple work-around for your problem would be to record the log-on sequence. I use
Badboy to record series of HTTP requests, because I was not able to get the JMeter HTTP proxy
recorder to record. (Other users have succeeded with it, though.) Badboy includes a web browser
and can display web pages.

1. Download Badboy from www.badboy.com.au.
2. Use Badboy to navigate to your log on page.
3. Specify a user name and password, and log on.
4. Save the Badboy script (just in case). 
5. Export the script to JMeter, creating a JMeter test plan.
6. Use JMeter to open the exported test plan.
7. Click on the last HTTP Request element and check the Send Parameters. If you see parameters
whose values are the user name and password, you have created a one-user test for logging
on.

The next thing you will need to do for load testing is to learn to parameterize: create variables
for the user name and password. (The JMeter user manual and FAQ can be helpful here.) JMeter
offers different ways to do this. In my opinion:
a. To always use the same user name and password: Create a User Defined Variables element
and put it before and above the Thread Group element. Define the user name and password variables
there.
b. To use a list of user names and passwords in the same order for each test run: Prepare
a text file with user names and passwords in the desired order. Use the __StringFromFile function
in the Send Parameters of the HTTP Request to read the user names and passwords.
c. (My favorite) To use a group of user names and passwords at random: choose a regular naming
pattern for user names, such as "user1", "user2", "user3", and so on. Use the same string
for the password: user1's password is "user1". Define a User Parameters element that constructs
the user names from the base string ("user") and a number generated by the __Random function.

The following topic from my test department's internal documentation describes the technique.
The example describes how to construct account numbers, but you can adapt the instructions
to construct user names and passwords. You probably will not need the left-padding with zeros
to construct user names.

By the way, if you work in the Windows world as I do, remember that JMeter names are case-sensitive!
JMeter will treat "${Password}" and "${password}" as different variables.
------------------
Selecting strings at random from large set (JMeter)

Updated: 11/4/2004

Problem

You want to randomly contruct strings from a set of strings that vary by a regular pattern.
The constructed string must include a number left-padded with zeros. A typical example would
be bank account numbers.

Solution

The advantages of using the __javaScript and __Random functions to construct strings rather
than using the _StringFromFile function to read strings from an input file are:

·	You do not need to create an input file of strings.
·	Each constructed string can be, in effect, a randomly selected string from a desired set
of strings. Strings read from an input file by _StringFromFile are always selected by their
order in the file.

To demonstrate the solution, assume that you want to randomly select account numbers from
a set of strings that follow this pattern: 

·	Each account number begins with the same base string.
·	Each account number ends with a three-digit number in the range 1-100, left-padded with
zeros.

Steps

To randomly select account numbers that follow the desired pattern, follow these steps:

1.	In the test plan, create a User Parameters element.
2.	Select this checkbox: "Update Once Per Iteration".
3.	Define these user parameters:

-----------
Name	User1
-----------
RandomNumber	${__Random(1,100,ReuseRandomNumber)}
Head	57111020
Tail	${__javaScript('000' + '${RandomNumber}',Dummy1)}
AccountNumber	${Head}${__javaScript('${Tail}'.substring('${Tail}'.length-3\,'${Tail}'.length),Dummy2)}
-----------
Note   The number of zeros in the Tail parameter must match the subtracted number in the AccountNumber
parameter: "length-X".
	Note   Only the RandomNumber variable must be in a User Parameters element with a selected
"Update Once Per Iteration" check box. The other variables can be in a User Parameters element
with a cleared "Update Once Per Iteration" check box. However, it is most efficient to have
all variables in a User Parameters element with the selected check box. 

4.	Reference ${AccountNumber} in appropriate HTTP Request elements.
------------------
Sincerely yours,

Kyle McAbee

-----Original Message-----
From: Li, Charles [mailto:Charles.Li@dep.state.fl.us]
Sent: Monday, November 15, 2004 10:31 AM
To: JMeter Users List; Peter Lin
Subject: RE: how to pass in username and password for load testing?


How can I tell?
The login page has fields for me to enter username and password.

Thanks,
Charles Li

This is the source of the page:

+++++++++++++++++++++++++++++++++++
<html lang="en">
<HEAD>
<TITLE>OTN WebStore Login Page</TITLE>
<LINK rel="stylesheet" href="includes/styles.css" type=
    "text/css">

<!-- To prevent caching -->

<SCRIPT> 
function submitForm() {
  var frm = document.login;
  
  // Check if all the required fields have been entered by the user before
  // submitting the form
  if( frm.j_username.value == "" ) { 
    alert("Please enter your Username");
    frm.j_username.focus();
    return ;
  }

  if( frm.j_password.value == "" ) {    
    alert("Please enter your password");
    frm.j_password.focus();
    return ;
  }  
  frm.submit();
}
</SCRIPT>
</HEAD>
<BODY>
<FORM name="login" action="j_security_check" METHOD=POST>
  <TABLE border="0" cellspacing="0" cellpadding="0" width=
      "100%" valign="top">
    <TR> 
       <TD><img src="images/vsmLogo.gif" border="0"></TD>
  </TABLE>
  <TABLE width="100%" border="0" cellspacing="0" cellpadding=
      "1" bgcolor="white">
    <TR bgcolor="#838357"> 
      <TD align="left" width="76%"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A
href=
          "main.do?login=true" class="WhiteText">Home</A></TD>
    </TR>
    <TR bgcolor="#DFDFBF"> 
      <TD width="76%" class="BlueText">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Welcome
to OTN WebStore </TD>    </TR>
      
         
  </TABLE>
  
  <TABLE width="100%" border="0" cellspacing="0" cellpadding=
      "1" bgcolor="white">
      <!--
    <TR> 
      <TD align="right" class="SubHeading">Sign in with your username and
password to continue </TD>
    </TR>
    -->
    <TR> 
      <TD width="70%" valign="top"> 
        <P>&nbsp;</P>
        <BLOCKQUOTE> 
          <P class="BlueBold"> New to OTN WebStore ?</P>
          <P class="BlackText"><A href=
              "registration.do?command=displayForm" class="Link"> Sign Up
Now</A> to enjoy unrivalled online shopping experience</P>
        </BLOCKQUOTE>
        <DIV style="margin-left: 4em"> 
          <BLOCKQUOTE> 
            <P class="BlueText">At OTN WebStore you will find</P>
          </BLOCKQUOTE>
          <UL class="BlackText">
            <LI>What you need. Fast.</LI>
            <LI>Exceptional choice.</LI>
            <LI>Great deals.</LI>
          </UL>
        </DIV>
      </TD>
      <TD width="30%" valign="top"> 
        <TABLE width="100%" border="0" cellspacing="0"
            cellpadding="1" bgcolor="#B3B18E">
          <TR> 
            <TD align="top"> 
              <TABLE width="100%" bgcolor="#F0F0E6" border="0"
                  cellspacing="0" cellpadding="3" height="128">
                <TR> 
                  <TD> 
                    <CENTER>
                      <B class="bluebold"><FONT size=
                          "+1">Existing WebStore Users</FONT></B><BR>
                      <FONT size="-1">Enter your username/ password
here</FONT>
                    </CENTER>
                    <br>
                    <TABLE width="100%" border="0" cellspacing=
                        "0" cellpadding="5">
                      <TR align="center"> 
                        <TD align="right" class="Prompt"> User Name</TD>
                        <TD align="left">
                          <INPUT type="text"
                            name="j_username" maxlength=20>
                        </TD>
                      </TR>
                      <TR align="center"> 
                        <TD align="right" class="Prompt"> Password</TD>
                        <TD align="left">
                          <INPUT type="password"
                            name="j_password" maxlength=20 >
                        </TD>
                      </TR>
                    </TABLE>
                    <BR>
                    <CENTER>
                      <A HREF="javascript:submitForm()"><img
src="images/buttons/signup.gif" border="0"></A>
                      <br>
                      <A
                          href="notifypasswordform.do"
                          class="HeaderLink">Forgot your password? Click here
to proceed</A> 
                      <P><A
                          href="changepasswordform.do"
                          class="HeaderLink">Change your password? Click here
to proceed</A></P>
                    </CENTER>
                  </TD>
                </TR>
              </TABLE>
            </TD>
          </TR>
        </TABLE>
      </TD>
    </TR>
  </TABLE>
</FORM>




<IMG src="images/line.gif" width="100%" height="12"> 
<TABLE width="100%" border="0" cellspacing="0" cellpadding="1"
    bgcolor="white">
  <TR> 
    <TD align="left"><FONT face="Verdana, Arial, Helvetica, sans-serif" 
      size="-2"> 
      Number of visitors:4</FONT> </TD>
    <TD align="center"><FONT face="Verdana, Arial, Helvetica, sans-serif" 
      size="-2"> 
      
      <A href="guestbook.do" class="HeaderLink">Questions, Comments,
Suggestions ? Let us know your views through guest book</A>.</FONT>
    </TD>
    <TD align="right" class="BlackSmall"><A href="terms.do"
class="HeaderLink">
    Terms of Use</A></TD>
  </TR>
</TABLE>
<br>
<b><FONT face="Verdana, Arial, Helvetica, sans-serif" 
      size="-2"> Powered by <font color="red" size="-2"><i>Oracle Application
Server Containers for J2EE 10g (9.0.4.1.0)</i></font></font></b>

</BODY>
</html>
+++++++++++++++++++++++++++++++++++



-----Original Message-----
From: Peter Lin [mailto:woolfel@gmail.com]
Sent: Monday, November 15, 2004 10:27 AM
To: JMeter Users List
Subject: Re: how to pass in username and password for load testing?


is the authentication form based or http protcol based.

in other words.  is the username passed as request parameters, or
basic authentication?


peter



On Mon, 15 Nov 2004 10:24:42 -0500, Li, Charles
<charles.li@dep.state.fl.us> wrote:
> I have a sample application that I want to use for load test with JMeter.
> How do I pass in username and password to test pages that are protected by
> authentication?
> 
> In the source, I have the following:
> ====================================
>   if( frm.j_username.value == "" ) {
>     alert("Please enter your Username");
>     frm.j_username.focus();
>     return ;
>   }
> 
>   if( frm.j_password.value == "" ) {
>     alert("Please enter your password");
>     frm.j_password.focus();
>     return ;
> ====================================
> 
> I added the following parameter:
> frm.j_username.value=electowner
> frm.j_password.value=welcome
> 
> But, first I want to test that it actually reads the username and password,
> so I did this:
> 
> I try it on the browser and it did not read the username and password.
>
(http://server:port/vsm/authownerhome.do?frm.j_username.value=electowner&frm.
> j_password.value=welcome)
> 
> How should I pass in the username and password?
> 
> Thanks,
> Charles Li
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: jmeter-user-help@jakarta.apache.org
> 
>

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


Mime
View raw message