カスタム UI テストステップ

  • リリースバージョン: Washingtondc
  • 更新日 2024年02月01日
  • 読む11読むのに数分
  • HTML および JavaScript ページコンポーネントを取得し、それらがサポートするテストアクションを特定することによって、UI ページや UI マクロなどのカスタマイズされたユーザーインターフェイスをテストします。

    カスタム UI テストステップでは、自動テストフレームワーク (ATF) はターゲット Web ページからテスト可能なコンポーネントを取得して識別する必要があります。

    注:
    Now UI は、カスタム UI テストステップではサポートされていません。

    テスト可能なコンポーネント

    テスト可能なページコンポーネントは、これらの特性を備えた標準の HTML と JavaScript で構成されています。

    ユーザーの操作によって設定またはクリックされる
    テスト可能なページコンポーネントを使用すると、ユーザーは値を設定したりクリックしたりできます。
    DOM (Document Object Model) からアクセス可能
    テスト可能なページコンポーネントは DOM からアクセスでき、DOM の JavaScript 操作をサポートします。カスタム UI テストステップは、シャドウ DOM 内のページコンポーネントにアクセスできません。
    JavaScript にアクセスできる
    テスト可能ページコンポーネントは JavaScript でアクセスできます。カスタム UI テストステップは、ファイルフィールドなどのオペレーティングシステムと直接やり取りするページコンポーネントにアクセスしたり、Excel ファイルや PDF ファイルなどの非 HTML コンテンツを表示したりすることはできません。
    新しいブラウザータブまたはウィンドウは、カスタム UI テストステップではサポートされていません。
    カスタム UI テストから除外されない
    テスト可能なページコンポーネントは、カスタム UI テストから除外されません。自動テストフレームワーク (ATF) は、他のテストステップカテゴリで既にテスト可能なページコンポーネントを除外し、Now Platform 機能に関連づけられたページコンポーネントも除外します。
    ページインスペクターにアクセス可能
    テスト可能なページコンポーネントは、ページインスペクター から表示したときに結果を返さなければなりません。テスト設計者は、ページのテスト可能なコンポーネントを識別するためにページインスペクターを使用できます。
    テスト可能なページコンポーネントの例には、これらの UI 要素があります。
    • ボタン
    • リンク
    • ページテキスト
    • UI コントロール
    • UI マクロ
      • ui_date
      • ui_date_time
      • ui_reference
    • UI ページ
    • ウィザード

    テスト不可能なページコンポーネントの例としては、これらの UI 要素があります。

    表 : 1. テスト不可能なページコンポーネントの例
    テスト不可能な理由 テスト不可能なページコンポーネント
    設定またはクリックできない 非表示のコントロール
    HTML コメント
    div、section、span などの HTML レイアウト要素
    HTML スクリプト要素
    DOM からアクセスできない ダッシュボード
    イメージ
    リスト
    レポート
    シャドウ DOM
    JavaScript でアクセスできる Excel ファイル
    ファイルフィールド
    PDF ファイル
    Now Platform の機能である Flow Designer
    Studio
    アップグレードモニター
    他のテストステップカテゴリでテスト可能 フォームフィールドラベル
    フォームフィールド値
    サービスカタログ
    ワークスペース

    設定可能なページコンポーネント

    設定可能コンポーネントは、テキスト入力フィールドなどの動的な値を持つ UI 要素です。設定可能コンポーネントは、これらのテストアクションとテストステップをサポートします。

    表 : 2. 設定可能コンポーネントのテストオプション
    ページインスペクターのアクション カスタム UI テストステップ
    コンポーネント値を設定 コンポーネント値 (カスタムUI) の設定
    コンポーネント値を取得 ページ (カスタムUI) のテキストをアサートする
    コンポーネント値の検証 (カスタム UI)
    コンポーネントが無効 コンポーネント ステータスの検証 (カスタム UI)

    設定可能なコンポーネントには、カスタム UI テストステップで設定できる値を決定するデータタイプがあります。たとえば、特定のレコードへの参照を表示するためのページコンポーネントは、システム ID 値のみを表示するための参照データタイプを持つことができます。

    自動テストフレームワーク (ATF) では、UI 開発者は、カスタム UI テスト中に使用するデータタイプを指定できます。UI 開発者は、ページコンポーネントにデータタイプをアサインして、テストステップで有効な値が設定されるように確保できます。次のデータタイプがサポートされています。
    • 日付
    • 日時
    • 参照

    詳細については、「コンポーネントデータタイプを上書きする」を参照してください。

    クリック可能なページコンポーネント

    クリック可能なコンポーネントとは、チェックボックスやラジオの入力など、ユーザーがクリックすることで操作できる UI 要素のことです。クリック可能なコンポーネントはこれらのテストアクションをサポートします。

    表 : 3. クリック可能なコンポーネントのテストオプション
    ページインスペクターのアクション カスタム UI テストステップ
    コンポーネントをクリック [コンポーネント (カスタム UI)] をクリックします
    コンポーネント値を取得 ページ (カスタムUI) のテキストをアサートする
    コンポーネント値の検証 (カスタム UI)
    コンポーネントが無効 コンポーネント ステータスの検証 (カスタム UI)

    クリック可能なコンポーネントは動的な値を持たないのでデータ型を持ちません。

    取得されたページコンポーネント

    自動テストフレームワーク (ATF) は、テストするカスタム UI ページごとに取得したページコンポーネントのリストを格納します。カスタム UI テストステップは、[コンポーネント][コンポーネント値 (Component values)] フィールドから取得したコンポーネントのリストを表示します。

    デフォルトでは、ページコンポーネントのリストは静的であり、テスト設計者が手動で [コンポーネントの取得] をクリックしたときにのみ更新されます。管理者は、システムプロパティ sn_atf.page_data_capture.enabled を有効にして、カスタム UI テストステップが実行されるたびにページコンポーネントのリストを更新できます。テスト設計時にこのプロパティを有効にすると、テスト設計者は常に最新のページコンポーネントリストにアクセスできるようになります。テスト設計が完了した後にこのプロパティを無効にすると、テストステップは以前に取得したページコンポーネントのリストを使用できるため、テストの実行速度が向上します。

    Now Platform は、取得したページコンポーネントのリストをデータとして扱い、それらを更新セットまたはアプリケーションファイルに含めません。あるインスタンスから別のインスタンスにテストを転送するとき、テスト設計者は手動でページコンポーネントを再度取得する必要があります。

    設計上の考慮事項

    カスタム UI ページとページコンポーネントをテストするときは、これらの設計上の考慮事項に従ってください。

    ページインスペクターを使用してテスト可能なページコンポーネントを識別する
    ページインスペクターは、どのページコンポーネントがカスタム UI テストに使用できるかを決定します。ページインスペクターに利用できないページコンポーネントは、カスタム UI テストには利用できません。
    テストするカスタム UI に移動する
    ターゲットのカスタム UI に移動するには、既存のテストステップを使用します。たとえば、ナレッジベース記事をテストするには、既存のテストステップを使用してモジュールに移動するか、既存のレコードを開きます。ほとんどのカスタム UI テストでは、テストの一部として既存のテストステップカテゴリを使用する必要があります。
    コンポーネント領域を使用してページコンポーネントを識別します
    コンポーネント領域は、<div> または <section> 要素などのコンポーネントを含む HTML レイアウト要素を表します。この領域は、テストデザイナーがページレイアウト内の場所を指定することによってコンポーネントを区別するのに役立ちます。
    Now Platform UI ではなくカスタム UI をテストする
    自動テストフレームワーク (ATF) は、Now Platform 機能のカスタム UI テストを回避します。たとえば、ダッシュボードやグラフィカルデザイナーをテストすることはできません。代わりに、カスタム UI ページと要素を検証するためのテストを構築します。これらのユーザーインターフェイスは直接制御できるからです。
    HTML 属性を使用してページコンポーネントのテストプロパティを上書きする
    自動テストフレームワーク (ATF) 固有の HTML 属性を使用して、特定のページコンポーネントのテストプロパティを変更します。 コンポーネントテストアクションを上書きする」を参照してください。
    テストを別のインスタンスに移動するときはページコンポーネントを再度取得する
    カスタム UI テストステップは、UI コンポーネントをメタデータとして格納しません。テスト担当者がインスタンス間でテストを移動するときは、ページコンポーネントを手動で再度取得する必要があります。

    カスタム UI テストの例

    取得したコンポーネントのリストを使用して、カスタム UI テストステップを設計できます。たとえば、ナレッジベース記事のレビューとコメントをテストしたいとします。ナレッジベース記事には、カスタム UI 手順がテストする必要があるページコンポーネントがいくつか含まれています。

    図 : 1. ナレッジ記事ページの例
    KB0011110「インスタンス開発者向けの ServiceNow セキュアコーディングガイド」を表示しているページ
    たとえば、これらのページコンポーネントはカスタム UI テストステップが必要です。
    1. 記事の閲覧数。
    2. 記事を役に立ったとしてマークするボタン。
    3. コメントを残すテキスト領域。
    これらのステップは、ナレッジベース記事へのカスタム UI テストを示しています。サンプルテストは、これらの既存の UI テストステップとカスタム UI テストステップで構成されています。
    1. モジュールに移動。「ナレッジ」アプリケーションの「発行済み」モジュールに移動します。
    2. 既存のレコードを開く。ID が「Knowledge:KB0011110」の「ナレッジ」フォームを開きます。
    3. UI アクションをクリックします。「ナレッジ」フォームの UI アクション「記事の表示」をクリックします。
    4. ページ (カスタム UI) のテキストをアサートする。「開発者」というテキストがページにあることをアサートします。
    5. コンポーネント値を設定(カスタムUI)。次のようにページ上のコンポーネントを設定します。 'Textarea <textarea>[article_comments]‘ = 他の場所の記事への URL ではなく実際の記事で更新する。
    6. コンポーネント (カスタム UI) をクリック。「ボタン <button>:コメント」コンポーネントをクリックします。
    7. ページ (カスタム UI) のテキストをアサートする。「他の場所の記事への URL ではなく実際の記事で更新する。」というテキストがページ上にあることをアサートします。
    図 : 2. ナレッジベース記事テストのテストステップの例
    7 つのテストステップがあるテスト例を表示するスクリーンショット。

    カスタム UI コンポーネントのバージョンと順序

    カスタム UI テストステップのいずれかでコンポーネントを選択すると、カスタム UI バージョンが表示される場合があります。複数の重複するコンポーネントがある場合は、コンポーネントの順序が表示されます。重複するコンポーネントの順序を示す画像
    注:
    カスタム UI バージョンは、カスタム UI バージョンが異なるコンポーネントが少なくとも 2 つある場合にのみ表示されます。
    注:
    順序は、コンポーネントのドロップダウンメニューに重複するコンポーネントがある場合にのみ表示されます。表示された順序に従って、それらを明確にすることができます。
    注:
    異なる複数の重複コンポーネントがある場合は、[カスタム UI バージョン] と [順序] の両方が表示されます。

    コンポーネントの識別

    sn-atf-id 属性を使用して、コンポーネントを識別する代替方法を実装します。これは、コンポーネントの名前または ID 属性が動的で、テストが実行されるたびに変わる場合に便利です。一貫した値を持つ sn-atf-id 属性を追加して、テストの実行時に ATF がコンポーネントを識別できるようにします。また、テストを構築するときにコンポーネントを識別することもできます。たとえば、ボタンコンポーネントで
    <button sn-atf-id="consistentValue">Test</button>
    注:
    Rome リリース以降、sn-atf-id 属性を持つコンポーネントがページ上に 1 つだけある場合、ATF はそのコンポーネントの他の属性に関係なくそのコンポーネントを検索します。

    ATF コンポーネントの識別の改善

    [ページ領域] 列に含まれるラベルパスを使用して、コンポーネントを識別します。Rome リリース以降、 sn_atf.element.use_label_path プロパティはデフォルトで true に設定されています。

    コンポーネントに sn-atf-area 属性がある場合、[ページ領域] 列には sn-atf-area 値が表示されます。 sn-atf-area 属性が存在しない場合、そのコンポーネントのラベルパスが [ページ領域] 列に表示されます。
    コンポーネントのラベルパスを示す画像
    注:
    同じ名前の [ラベル] 値が複数ある場合、ラベルパスは正しいコンポーネントを識別するのに役立ちます。
    注:
    コンポーネントに sn-atf-area 属性またはラベルパスがない場合は、デフォルトとして表示されます。
    コンポーネントのデフォルト値を示す画像
    リストから必要なコンポーネントを選択して [送信] をクリックすると、テストステップの説明も詳細な情報で更新されます。
    送信されたテストステップの更新された説明を示す画像