2016-12-22 14 views
2

変数ファイルにusernameとpwdを設定し、各ユーザ名のテストステップとして次のデータ行に進む必要があります。Robot Frameworkのデータ駆動シナリオ

リソースファイルを使用してデータを駆動していて、最初のFORスクリプトがユーザー名1(eeny)を処理すると、ネストされたFORループはすべてのパスワードを一度に渡します。

*** Variables *** 
@{users} eeny meeny miny moe 
@{pwds} pwd pwd1 pwd2 pwd3 

*** Test Cases *** 

Login Test 
    :FOR ${u} IN @{users} 
    \ Open Browser ${URL} 
    \ set window size 1440 900 
    \ set selenium speed .5 
    \ input text id=username ${u} 
    \ :FOR ${p} IN @{pwds} 
    \ \ input text id=password ${p} 
    \ \ click button css=button.primary 
    \ \ wait until page contains css=p.logout 
    \ \ capture page screenshot 
    \ \ click element css=p.logout 

は現在、私は同じ時間にユーザ名とパスワードの両方の変数を宣言していFOR文FOR文のネストされた、またはのためにしようとしていますが、データを取得し、多次元配列を使用するための変更の戦術に反対しておりませんそれ以上にうまくいくかどうかは同じです。

答えて

1

「データ駆動型テストテンプレート」またはExcelまたはcsvのデータを読み込むことで、データ駆動型テストを実行できます。

「テストテンプレートによるデータ駆動」
ここでは、複数回実行する関数またはソースコード以外のユーザー定義キーワードを作成します。 'Test Template'としてSettingsセクションに宣言してください。
TestCase名に引数を付けると、毎回Test Templateが実行されます。
ここ
「エクセルから読み込んで駆動されるデータ」サンプルコード

*** Settings *** 
Documentation  This Test Suite Deals with Data Driven Testing using Test Template Method 
Test Teardown  Close All Browsers 
Test Template  Validate Login with Differnt Valid Credentials 

*** Variables *** 
${URL}   http://ururl 
${Browser}  chrome 
${Title}   HomePage 
${delay}   5s 

*** Test Cases *** USERNAME PASSWORD 
Test User    user1  user1 

Admin User   admin  admin 

*** Keywords *** 
Validate Login with Differnt Valid Credentials 
    [Arguments] ${Uname} ${Pwd} 
    Open the Browser and enter the URL ${URL} ${Browser} 
    Enter the User Name ${Uname} 
    Enter the Password ${Pwd} 
    Click on Submit button 
    Verify HomePage displayed ${Title} 

Open the Browser and enter the URL 
    [Arguments] ${URL} ${Browser} 
    Open Browser ${URL} ${Browser} 

Enter the User Name 
    [Arguments] ${UserName} 
    Sleep ${delay} 
    Input Text id=username ${UserName} 

Enter the Password 
    [Arguments] ${Password} 
    Input Text id=password ${Password} 

Click on Submit button 
    Click Button css=.btn.btn-primary 

Verify HomePage displayed 
    [Arguments] ${Title} 
    Sleep ${delay} 
    Title Should Be ${Title} 

Excelシートから値を読み込み、実行する複数回、ここ
あなたが言及した理由のサンプルコード

*** Settings *** 
Documentation  CLM Registration Test Case 
Test Teardown  Close All Browsers 
Library   Selenium2Library 
Library   Collections 
Library   ExcelLibrary 
Library   String 

*** Variables *** 
${delay}   2s 
${excelName}  LoginTestData.xls 
${rowCount}  ${EMPTY} 
${cellCount}  ${EMPTY} 
${URL}   http://Ur test Test URL 
${Browser}  chrome 

*** Test Cases *** 
ReadFromExcelSheet 
    Open Excel Sheet ${excelName} 
    @{sheetNames} Get Sheet Names 
    ${sheetName} Set Variable @{sheetNames}[0] 
    ${rowCount} Get Row Count ${sheetName} 
    ${cellCount} Get Column Count ${sheetName} 
    #for loop to read all the rows in excel 
    : FOR ${rindex} IN RANGE 1 ${rowCount} 
    \ @{rowValues} Create List 
    \ @{rowValues} Get Values ${sheetName} ${rindex} ${cellCount} 
    \ Log to console row values are for index ${rindex} : @{rowValues} 
    \ Sleep ${delay} 
    \ Open Browser ${url} ${Browser} 
    \ Enter User Name @{rowValues}[0] 
    \ Enter Password  @{rowValues}[1] 
    \ Click on Submit Button 

*** Keywords *** 
Open Excel Sheet 
    [Arguments] ${excelName} 
    Open Excel ${excelName} useTempDir=False 

Get Values 
    [Arguments] ${sName} ${row} ${cCount} 
    Log to console user is in Get Values function 
    @{rValues} Create List 
    : FOR ${cindex} IN RANGE 0 ${cCount} 
    \ Log to console get the data from ${sName}[${cindex}][${row}] 
    \ ${cellValue} Read Cell Data By Coordinates ${sName} ${cindex} ${row} 
    \ Insert Into List ${rValues} ${cindex} ${cellValue} 
    [Return] @{rValues} 


Open The Browser 
     [Arguments] ${url} ${Browser} 
     Open Browser ${url} ${Browser} 

Enter User Name  
     [Arguments] username 
     Input Text id=username username 


Enter Password  
     [Arguments] password 
     Input Password id=password password 

Click on Submit Button 
     Click Button css=.btn.btn-primary 
+0

優れている? – shicky

+0

私たちはExcelからデータを読み込み、データ駆動型のテストを行うことができるので、私はExcelを言及しています –

+0

私たちはできるが、質問をしている人は明らかにこの必要性を示していない?特定のケースでは確かに貴重なものになるかもしれませんが、助けようとしている人たちを混乱させないように注意してください。 – shicky

3

あなたは、1つのテストケースと複数のテストケースの間に誤解があると思います。あなたが上記のものを入力すると、ユーザー名が入力され、1つのパスワード、送信、ログアウトが繰り返されます。次のページに同じ要素がある場合にのみ、別のパスワードを入力しようとします。

私はここを見て持つことをお勧め:http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#data-driven-style

はまた、あなたがテストのテンプレートを提供する必要があり、同様の質問の数を見て、あなたはそれが2つのテストケースのために働いていたときに、後にループを心配だろう私のおすすめ。

関連する問題