2

私の Web アプリケーションでは、ユーザーを作成するために 25 のフィールドを更新する必要があります。Excel のテスト データには、25 のフィールドすべてに必要な情報を含む 100 人のユーザーのリストがあります。

ロボット フレームワークを使用して、テスト スクリプトは、Excel から単一の行 (単一のユーザー情報) を読み取り、Web アプリケーションの対応するすべてのフィールドを更新するように記述されています。

10 個のフィールド (または 'n' 個のフィールド) のみを更新したい場合、スクリプトでどのように処理すればよいですか?ここに画像の説明を入力

注: 更新されるフィールドは、テスト ケースに基づいて変更される場合があります。

4

1 に答える 1

1

あなたの状況について私が理解したところによると、これはロボットにとって簡単な仕事ではありません。ただし、ユニバーサル テスト スクリプトとケース固有の Excel ファイルを用意することで、これを処理するかなり簡単な方法があります。

  1. Excel スプレッドシートにFieldNameTabNameを入力して、ページ上の入力を見つけられるようにします。これを行う私の方法は次のようになります。

表1

  1. ExcelLibrary を使用して、TabName、FieldName、および Value をリストに取得します (使用方法については、あなたの方が慣れているようですので、お任せします)。このステップの結果として、3 つのアイテムのリストが表示されます。${SingleFieldOfSingleUser} # ['Tab1', 'Field1', 'aaa']

  2. これらのフィールドのリストを作成します。

        \  Insert Into List  ${SingleUser}  ${ColIndex}  ${SingleFieldOfSingleUser}
    
  3. 可能なすべての入力フィールドを手動で調べる代わりに、ユニバーサル カスタム キーワードを使用します。

        :FOR  ${UserAttribute}  IN  @{SingleUser}
        \  Input Attribute Into User Form  ${UserAttribute}
    
  4. キーワードは次のようになります。

    Input Attribute Into User Form
        [Arguments]  ${Attribute}
        # Try switching to the correct Tab. If already there, don't break upon error
        Run Keyword And Ignore Error  Click Element  ${Attribute[0]}
        # Input Value
        Input Text  ${Attribute[1]}  ${Attribute[2]}
    
  5. 利益!更新するフィールドに応じて、任意の数の列を含む Excel スプレッドシートを提供できるようになりました。

ここに、完全なコード リストのモックアップを残しておきます。

*** Keywords ***

(...)

Read Column Data For User
    ${SingleUser}  Create List

    :FOR  ${ColIndex}  IN RANGE  ${COLCOUNT}
    ( ... Excel-related code here ... )
    \  ${SingleFieldOfSingleUser}  Create List  ${TabName}  ${FieldName}  ${Value}
    \  Insert Into List  ${SingleUser}  ${ColIndex}  ${SingleFieldOfSingleUser}

    :FOR  ${UserAttribute}  IN  @{SingleUser}
    \  Input Attribute Into User Form  ${UserAttribute}

    (...)

Input Attribute Into User Form
        [Arguments]  ${Attribute}
        Run Keyword And Ignore Error  Click Element  ${Attribute[0]}
        Input Text  ${Attribute[1]}  ${Attribute[2]}

P.s。これを機能させるのにそれほど多くの FOR ループやリストは必要ありませんが、隠れた個人的な価値がある場合に備えて、元のコーディング パターンにできるだけ近いソリューションを作成しようとしました。

于 2016-03-07T14:27:59.210 に答える