Selenium IDE - registration test (trying to get a pass on the automation part)
I have a quick question, I looked around the site and was not able to find another question relevant to what I wanted to ask. I am trying to implement Selenium IDE and use it agiants a company website. I want to 开发者_运维知识库be able to record a registration and then have the registration play back. The problem I run into is when the test is played back it always fails. The reason is becase the account cannot be re-created again. Is there a way I can get the test to pass after I have recorded a registration process?
this works for me to create a random email id-
<tr>
<td>storeEval</td>
<td>Math.round (Math.random() * 1357)</td>
<td>random</td>
</tr>
<tr>
<td>type</td>
<td>email</td>
<td>selenium${random}@domain.com</td>
</tr>
To create a random user
<tr>
<td>storeEval</td>
<td>Math.round (Math.random() * 1357)</td>
<td>random</td>
</tr>
<tr>
<td>type</td>
<td>user</td>
<td>selenium${random}</td>
</tr>
The problem is not with your Selenium test, but with the page itself. If you are trying to register the same user again, it is actually expected to fail - you might even record test that validates it.
You have to options - either clean the database so that the test always runs on the same data set or make your script more intelligent. The first option requires you to have full access to tested site (which is usually the case) but you can safely assume that the test results are predictable most of the time.
On the other hand by making the tests more intelligent I meant using random user name (or generating unique name some other way) - more coding and I am not sure whether it is possible with plain Selenium IDE.
You can generate random data while execution of scripts for email/name
Username/ID:- javascript{Math.floor(Math.random()*11)}
--- increased number of digit by increasing number of 1
Email :- javascript{"abc+" + Math.floor(Math.random()*11111) + "@gmail.com";}
Yaasir,
The Selenium IDE gladly executes JavaScript. That means, you may use not only Math.random, but also something that generates more unique identifier. I am using all the way the timestamp. This is easy and the result is so unique, you would not possibly get same number unless you reset time on your test machine ( in that case possibility of getting same identifier becomes slightly bigger than zero). Here is the line I use
<tr>
<td>store</td>
<td>javascript{new Date().getTime()}</td>
<td>timestamp</td>
</tr>
As a result, you will get similar to this number 1375400227202
精彩评论