Using Selenium IDE with random values Using Selenium IDE with random values selenium selenium

Using Selenium IDE with random values


First off, the Selenium IDE is rather limited, you should consider switching to Selenium RC, which can be driven by Java or Perl or Ruby or some other languages.

Using just Selenium IDE, you can embed JavaScript expressions to derive command parameters.You should be able to type a random number into a text field, for example:

type fieldName javascript{Math.floor(Math.random()*11)}

Update: You can define helper functions in a file called "user-extensions.js". See the Selenium Reference.


(Based on Thilo answer)You can mix literals and random numbers like this:

javascript{"joe+" + Math.floor(Math.random()*11111) + "@gmail.com";}

Gmail makes possible that automatically everything that use aliases, for example, joe+testing@gmail.com will go to your address joe@gmail.com

Multiplying *11111 to give you more random values than 1 to 9 (in Thilo example)


You can add user exentions.js to get the random values .

Copy the below code and save it as .js extension (randomgenerator.js) and add it to the Selenium core extensions (SeleniumIDE-->Options--->general tab)

Selenium.prototype.doRandomString = function( options, varName ) {    var length = 8;    var type   = 'alphanumeric';    var o = options.split( '|' );    for ( var i = 0 ; i < 2 ; i ++ ) {        if ( o[i] && o[i].match( /^\d+$/ ) )            length = o[i];        if ( o[i] && o[i].match( /^(?:alpha)?(?:numeric)?$/ ) )            type = o[i];    }    switch( type ) {        case 'alpha'        : storedVars[ varName ] = randomAlpha( length ); break;        case 'numeric'      : storedVars[ varName ] = randomNumeric( length ); break;        case 'alphanumeric' : storedVars[ varName ] = randomAlphaNumeric( length ); break;        default             : storedVars[ varName ] = randomAlphaNumeric( length );    };};function randomNumeric ( length ) {    return generateRandomString( length, '0123456789'.split( '' ) );}function randomAlpha ( length ) {    var alpha = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'.split( '' );    return generateRandomString( length, alpha );}function randomAlphaNumeric ( length ) {    var alphanumeric = '01234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'.split( '' );    return generateRandomString( length, alphanumeric );}function generateRandomString( length, chars ) {    var string = '';    for ( var i = 0 ; i < length ; i++ )        string += chars[ Math.floor( Math.random() * chars.length ) ];    return string;}

Way to use

Command                Target     Value-----------           ---------   ----------randomString           6           xtype                username       ${x}

Above code generates 6 charactes string and it assign to the variable x

Code in HTML format looks like below:

<tr>    <td>randomString</td>    <td>6</td>    <td>x</td></tr><tr>    <td>type</td>    <td>username</td>    <td>${x}</td></tr>