문제

를 만드는 것이 가능합니다 셀레늄 테스트를 사용하는 파이어 폭스 플러그인을 사용하는 임의로 생성된 값을 할 수 있도록 회귀분 테스트?

전체 기사: 나는 데 도움이하고 싶은 나의 클라이언트는 승인 테스트를 제공하여 그들을 테스트를 사용하는 몇 가지 스마를 만드는 임의의(또는 적어도 의사 무작위)값 데이터베이스입니다.문제 중 하나 내 셀레늄 IDE 테스트에서는 순간 그들은 미리 정의된 값을 만드는 일부 유형의 시험 문제가 있습니다.

도움이 되었습니까?

해결책

먼저,셀레늄 IDE 은 오히려 제한,당신은 로의 전환을 고려해야 셀레늄 RC 할 수 있는 구동에 의해 Java 또는 펄 또는 루비나 일부 다른 언어가 있습니다.

를 사용하여 셀레늄 IDE 포함할 수 있습니다 JavaScript 표현하는 파생 명령을 매개 변수입니다.할 수 있어야를 입력 임의의 번호를 텍스트 필드,예를 들어:

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

업데이트: 정의할 수 있는 도우미 기능에"라는 파일 user-extensions.js".보 셀레늄 참조.

다른 팁

(Thilo 답변에 근거)리터럴과 랜덤 숫자를 다음과 같이 혼합 할 수 있습니다.

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

Gmail은 예를 들어 별칭을 사용하는 모든 것을 자동으로 가능하게합니다. joe+testing@gmail.com 주소로 이동합니다 joe@gmail.com

*11111을 곱하여 1 ~ 9보다 더 많은 임의의 값을 제공합니다 (Thilo 예에서)

사용자 exentions.js를 추가하여 임의의 값을 얻을 수 있습니다.

아래 코드를 복사하여 .js Extension (randomgenerator.js)으로 저장하고 Selenium Core Extensions (Seleniumide-> 옵션 ---> 일반 탭에 추가하십시오.

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 charactes 문자열을 생성하고 변수 x에 지정됩니다.

HTML 형식의 코드는 다음과 같습니다.

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

다음은 JS에서 임의의 문자를 생성하는 한 줄 솔루션입니다.

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

셀레늄 IDE에 붙여 넣는 데 유용합니다.

작은 대안 세트에서 무작위로 선택한 1 라이너 :

javascript{['brie','cheddar','swiss'][Math.floor(Math.random()*3)]}
<tr>
<td>store</td>
 <td>javascript{Math.random().toString(36).replace(/[^a-z]+/g, '').substr(0, 8)}</td>
<td>myRandomString</td>
</tr>

나는 GeneraterAndomString 기능을 약간 개선했습니다. FF가 충돌하면 동일한 임의의 숫자를 다시 사용할 수있는 것이 좋습니다.

기본적으로 직접 문자열을 입력하도록 요청합니다. 아무것도 입력하지 않으면 생성됩니다.

function generateRandomString( length, chars ) { var string=prompt("Please today's random string",''); if (string == '') {for ( var i = 0 ; i < length ; i++ ) string += chars[ Math.floor( Math.random() * chars.length ) ]; return string;} else { return string;} }

위의 Rajendrachary의 게시물을 이해하는 동안, 나는 새로운 Selenium IDE 확장을 쓰는 데 시간을 보냈습니다.

내 확장자는 사용자가 Lorem Ipsum 텍스트로 변수를 채울 수있게합니다. 구성 가능한 옵션이 여러 가지가 있으며 멋진 작은 명령으로 바뀝니다. "5 단어 | WordCaps | nomarks"와 같은 작업을 수행하여 구두점없이 5 개의 Lorem Ipsum 단어를 생성 할 수 있습니다.

설치 및 사용을 철저히 설명했으며 여기에서 전체 코드베이스

코드를 들여다 보면 유사한 기능을 구축하는 방법에 대한 아이디어가 나타납니다.

여기에서 Gmail 예제의 또 다른 변형 :

<tr>
  <td>runScript</td>
  <td>emailRandom=document.getElementById('email');console.log(emailRandom.value);emailRandom.value=&quot;myEmail+&quot; + Math.floor(Math.random()*11111)+ &quot;@gmail.com&quot;;</td>
 <td></td>
</tr>

Selenium RC는 셀레늄 IDE보다 훨씬 더 많은 자유를 제공합니다.

  • (1) 특정 필드에 값을 입력
  • (2) 특정 HTML 양식으로 테스트 할 필드를 선택하십시오.
  • (3) 특정 필드 세트를 테스트하려면 실행 순서/단계를 선택하십시오.

Selenium IDE를 사용하여 필드에서 임의의 값을 입력하는 방법을 물었습니다. 다른 사람들은 Selenium RC를 사용하여 필드에서 임의의 값을 생성하고 입력하는 방법에 답했습니다. 이는 테스트 단계 (1)에 속합니다. "특정 필드에 값을 입력하십시오".

Selenium RC를 사용하면 단계 (2) 및 (3)을 쉽게 수행 할 수 있습니다. Java, PHP, CSHARP, Ruby, Perl, Python과 같은 지원되는 언어로 프로그래밍을 수행하여 실행 단계에서 필드를 테스트 할 수 있습니다.

다음은 단계 (2) 및 (3)을 수행하는 단계입니다.

  • HTML 필드 목록을 작성하여 쉽게 반복 할 수 있습니다.
  • rand_step이라고 말하면서 무작위 변수를 작성하십시오.
  • 필드를 제어하기 위해 임의 변수를 만듭니다.
  • 결국, 임의 변수를 만들어 특정 필드에 입력 된 값을 제어합니다.
  • 이제 퍼지 알고리즘 내부에서 rand_step의 값을 먼저 반복 한 다음 각 반복과 함께 Rand_field를 통해 반복 한 다음 결국 rand_value를 통해 반복합니다.

보다 내 다른 대답 퍼지 테스트, 셀레늄 및 흰색/블랙 박스 테스트 정보

Math.random은 "충분히 좋다"는데 실제로는 랜덤 클래스 종종 Math.random ()보다 바람직합니다. Math.random을 사용하면 실제로 얻을 수있는 숫자가 완전히 무작위가 아닐 수 있습니다. "Effective Java Second Edition"이라는 책은 항목 #47 에서이 책을 다룹니다.

수백 개의 테스트로 복사하고 붙여 넣은 솔루션 하나 더.

<tr>
    <td>store</td>
    <td>javascript{var myDate = new Date(); myDate.getFullYear()+&quot;-&quot;+(myDate.getMonth()+1)+&quot;-&quot;+myDate.getDate()+&quot;-&quot;+myDate.getHours()+myDate.getMinutes()+myDate.getSeconds()+myDate.getMilliseconds();}</td>
    <td>S_Unique</td>
</tr>
<tr>
    <td>store</td>
    <td>Selenium Test InternalRefID-${S_Unique}</td>
    <td>UniqueInternalRefID</td>
</tr>
<tr>
    <td>store</td>
    <td>Selenium Test Title-${S_Unique}</td>
    <td>UniqueTitle</td>
</tr>
<tr>
    <td>store</td>
    <td>SeleniumEmail-${G_Unique}@myURL.com</td>
    <td>UniqueEmailAddress</td>
</tr>

각 테스트 스위트는 일련의 변수를 설정하여 시작합니다 (큰 스위트라면 Set_variables.html과 같은 별도의 파일을 사용). 그런 다음 해당 변수를 스위트 전체에 사용하여 테스트 데이터를 설정, 테스트 및 삭제할 수 있습니다. 변수는 임의의 숫자가 아닌 날짜를 사용하므로 날짜를 공유하는 객체를 찾아 테스트 스위트를 디버깅 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top