当前位置:  开发笔记 > 编程语言 > 正文

使用具有随机值的Selenium IDE

如何解决《使用具有随机值的SeleniumIDE》经验,为你挑选了4个好方法。

是否可以使用Firefox插件创建Selenium测试,该插件使用随机生成的值来帮助进行回归测试?

全文: 我想帮助我的客户进行验收测试,为他们提供一套测试,使用一些智能为数据库创建随机(或至少伪随机)值.目前我的Selenium IDE测试的一个问题是它们具有预定义的值 - 这使得某些类型的测试成为问题.



1> Thilo..:

首先,Selenium IDE相当有限,您应该考虑切换到Selenium RC,它可以由Java或Perl或Ruby或其他语言驱动.

使用Selenium IDE,您可以嵌入JavaScript表达式来派生命令参数.您应该能够在文本字段中键入随机数,例如:

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

更新:您可以在名为"user-extensions.js"的文件中定义辅助函数.请参阅Selenium参考.



2> corbacho..:

(根据Thilo回答) 您可以混合文字和随机数,如下所示:

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

例如,Gmail可以自动将使用别名的所有内容joe+testing@gmail.com转到您的地址joe@gmail.com

乘以*11111可以获得比1到9更多的随机值(在Thilo示例中)



3> 小智..:

您可以添加用户exentions.js以获取随机值.

复制下面的代码并将其保存为.js扩展名(randomgenerator.js)并将其添加到Selenium核心扩展(SeleniumIDE - > Options ---> general选项卡)

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;
}

使用方法

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

上面的代码生成6个字符串,它分配给变量x

HTML格式的代码如下所示:


    randomString
    6
    x


    type
    username
    ${x}



4> afternoon..:

这是一个在JS中生成随机字母串的单行解决方案:

"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".split("").filter(function(e, i, a) { return Math.random() > 0.8 }).join("")

用于粘贴到Selenium IDE中.

推荐阅读
手机用户2402851155
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有