Hi ,

Before few days I had asked questions on Selenium test cases.
I had included the email address of Peter Goron in that email.
I got excellent reply from him so thought to share with community memeber.

Peter,
Thanks for your kind reply.
I am sharing the contents of your email on the mailing list.I hope it won't
be of any problem for you.
I will get back to you with more questions  :-)

Here is the contents of Peter's reply :
---------------------------------------------------------------------------------------------------------------------------
Hi Ashish,

My answers are inline.


Dear Peter,

Thanks for your kind reply.
I was waiting for reponse on this topic.
But I thought that you would be busy so didn't ping you again.


>         Ashish Vijaywargiya sent the following on 7/15/2007 10:32 AM:
>         > Hi,
>         >
>         > We are trying to prepare selenium test cases on Ofbiz for
>         client
>         > demonstration.
>         > We are facing some issues with those test cases.
>         >
>         > 1) For running "successive" test cases I used browser
>         "Refresh" button
>         > but I
>         > think there might be some better option to handle this.
>         > Is there any option exists in Selenium IDE ??
I'm not sure to understand what you try to do.

If you want to chain execution of different tests, there is the notion of
test suite. A list of tests to run one after the other (see
http://labs.libre-entreprise.org/plugins/scmcvs/cvsweb.php/ofbizNeogia/neogia/manufacturing/webapp/manufacturing/tests/ManufacturingTestSuite.html?rev=1.9;content-type=text%2Fplain;cvsroot=neogia
)

Otherwise if you just want to replay the same test in a loop, I'm not
aware of a such feature in selenium. Bur if the loop is finite, you can
achieve a similar result by using a test suite that refers x times the
same test.

>         > 2) Suppose I have a condition to create the new user each
>         time.
>         > As I can put the value of user login say "user1" for the
>         first time but
>         > when
>         > this test case runs second time it generates error (It hangs
>         up in
>         > between).
>         > So Is there any option to put a "counter" or Javascript code
>         in the Test
>         > cases so I could create the "user2" when this test case runs
>         second time ??

The general problem behind you issue is how to run a test multiple times
wihtout risking duplicated primary keys or having to remove all data
created by the test.

One solution is to always create business objects with different
identifiers. Selenium provides a nice feature to do that:
you can define variables during the test execution and use them anywhere
in the test script after their creation.

Here an example based on one of my test
(
http://labs.libre-entreprise.org/plugins/scmcvs/cvsweb.php/ofbizNeogia/neogia/manufacturing/webapp/manufacturing/tests/TestCreateNomenclature.html?rev=1.6;content-type=text%2Fplain;cvsroot=neogia
)

<!-- create a variable named uid that contains an unique identifier -->
<tr>
      <td>store</td>
      <td>javascript{(new Date()).getTime() % 10000}</td>
      <td>uid</td>
</tr>


<!-- use of the variable named uid to fill a form entry -->
<tr>
      <td>type</td>
      <td>partyId</td>
      <td>user-${uid}</td>
</tr>
- Show quoted text -


>         > 3) What is the difference between click and clickAndWait ??
>         > I would like to understand why I'm getting different
>         behaviors from click
>         > and clickAndWait functions. Here is the scenario:
>         > I want to perform the login and then verify some text on the
>         page (what
>         > should be pretty straight forward...) My first approach was
>         using the click
>         > function + pause function. Something like below:
>         >
>         > <tr>
>         > <td>click</td>
>         > <td>submit</td>
>         > <td></td>
>         > </tr>
>         >
>         > <tr>
>         > <td>pause</td>
>         > <td>3000</td>
>         > <td></td>
>         > </tr>
>         >
>         > The approach above worked fine and I was able to proceed
>         with my test.
>         > However, I was looking the clickAndWait functionality and,
>         per my
>         > understanding, this function should have a simlar behavior
>         to my code
>         > above.. then I wrote the following:
>         >
>         > <tr>
>         > <td>clickAndWait</td>
>         > <td>submit</td>
>         > <td></td>
>         > </tr>
>         >
>         > The code above is getting a "Permission Denied" message. I
>         already check
>         > the
>         > URLs and I'm not launching a different domain (before I
>         click I have
>         > http://domain/Login/ and after the submission I have
>         http://domain/App/).

I think the right solution is to use clickAndWait command instead of
click+pause because it always success contrary to click+pause (we dont
known the page response time).

I see no reason why you don't observe the same behavior with clickAndWait.
Maybe it's because your are testing the login page that can be a little
tricky to test due to the session handling.

To be sure to always start a test in a clean session, my tests always do
the same actions :
1. logoff
2. login
3. check error

Here, an example of my standard login procedure under selenium  from
(
http://labs.libre-entreprise.org/plugins/scmcvs/cvsweb.php/ofbizNeogia/neogia/manufacturing/webapp/manufacturing/tests/TestProcessRouting.html?rev=1.2;content-type=text%2Fplain;cvsroot=neogia
)
<!-- Begin of standard login procedure -->
<tr>
<td>open</td>
<td>/manufacturing/control/logout</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>USERNAME</td>
<td>admin</td>
</tr>
<tr>
<td>type</td>
<td>PASSWORD</td>
<td>ofbiz</td>
</tr>
<tr>
<td>select</td>
<td>locale</td>
<td>value=fr</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>submitButton</td>
<td></td>
</tr>
<tr>
<td>assertElementNotPresent</td>
<td>//[EMAIL PROTECTED]'errorMessage']</td>
<td></td>
</tr>
<!-- End of standard login procedure -->



Best regards,

Peter Goron
--------------------------------------------------------

On 7/15/07, Ashish Vijaywargiya <[EMAIL PROTECTED]>
wrote:

Hi,

We are trying to prepare selenium test cases on Ofbiz for client
demonstration.
We are facing some issues with those test cases.

1) For running "successive" test cases I used browser "Refresh" button but
I think there might be some better option to handle this.
Is there any option exists in Selenium IDE ??

2) Suppose I have a condition to create the new user each time.
As I can put the value of user login say "user1" for the first time but
when this test case runs second time it generates error (It hangs up in
between).
So Is there any option to put a "counter" or Javascript code in the Test
cases so I could create the "user2" when this test case runs second time ??

3) What is the difference between click and clickAndWait ??
I would like to understand why I'm getting different behaviors from click
and clickAndWait functions. Here is the scenario:
I want to perform the login and then verify some text on the page (what
should be pretty straight forward...) My first approach was using the click
function + pause function. Something like below:

<tr>
<td>click</td>
<td>submit</td>
<td></td>
</tr>

<tr>
<td>pause</td>
<td>3000</td>
<td></td>
</tr>

The approach above worked fine and I was able to proceed with my test.
However, I was looking the clickAndWait functionality and, per my
understanding, this function should have a simlar behavior to my code
above.. then I wrote the following:

<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>

The code above is getting a "Permission Denied" message. I already check
the URLs and I'm not launching a different domain (before I click I have
http://domain/Login/ and after the submission I have http://domain/App/).


I know that so many persons are using Selenium IDE since very long.
I am also looking at Selenium Forum for help but early help from Ofbiz
community members would be greatly appreciated.

--
Thanks & Regards
Ashish Vijaywargiya
Indore , India


--
Thanks & Regards
Ashish Vijaywargiya
Indore, India

Reply via email to