【自動化テスト入門⑥】KatalonStudio | Excelを利用したデータバインディングでログインテストを10件実行する方法

IT Study

はじめに

前回は、【自動化テスト入門⑤】KatalonStudioのSpy WebとVariablesを使ってログインテストを作成する方法 まで紹介しました。

今回は、Excelファイルを利用したデータバインディング(データドリブンテスト)を行い、1つのテストケースで複数のログインテストを自動実行してみます。

この記事でわかること
  • テスト用ログインデータの準備
  • Excelファイルの作成
  • Katalon Studioへのテストデータ登録
  • Test SuiteでData Bindingを設定
  • 10件のログインテストを一括実行

開発環境

  • macOS
  • Katalon Studio
  • Google Chrome
  • Microsoft Excel
  • Next.js(テスト用アプリ)

テストで使用したサンプルアプリはGitHubで公開しています。もちろん、ご自身で用意したWebサイトでも問題ありません。


1. テスト用ログインデータを準備する

今回はデータバインディングを試すため、テスト用サイトに10件のログイン情報を登録しました

例)

IDNameEmailPasswordRole
1Administratoradmin@test.comTest1234!Admin
2Kim Minsookim@test.comKim1234!User
・・・・・・・・・・・・・・・
import { User } from "@/types/user";


//user data(10 users)
export const users: User[] = [
  {
    id: 1,
    email: "admin@test.com",
    password: "Test1234!",
    name: "Administrator",
    role: "Admin",
  },
  {
    id: 2,
    email: "kim@test.com",
    password: "Kim1234!",
    name: "Kim Minsoo",
    role: "User",
  },
  {
    id: 3,
    email: "lee@test.com",
    password: "Lee1234!",
    name: "Lee Jisoo",
    role: "User",
  },
  {
    id: 4,
    email: "park@test.com",
    password: "Park1234!",
    name: "Park Hyunwoo",
    role: "User",
  },
  {
    id: 5,
    email: "choi@test.com",
    password: "Choi1234!",
    name: "Choi Minji",
    role: "User",
  },
  {
    id: 6,
    email: "yamada@test.com",
    password: "Yamada1234!",
    name: "Taro Yamada",
    role: "User",
  },
  {
    id: 7,
    email: "tanaka@test.com",
    password: "Tanaka1234!",
    name: "Hanako Tanaka",
    role: "User",
  },
  {
    id: 8,
    email: "suzuki@test.com",
    password: "Suzuki1234!",
    name: "Ichiro Suzuki",
    role: "User",
  },
  {
    id: 9,
    email: "john@test.com",
    password: "John1234!",
    name: "John Smith",
    role: "User",
  },
  {
    id: 10,
    email: "emma@test.com",
    password: "Emma1234!",
    name: "Emma Brown",
    role: "User",
  },
];
ヒョニ
ヒョニ

GitHubに公開していますので、詳細はGitHubから確認してください。

GitHub – hyoni91/katalon-practice
Contribute to hyoni91/katalon-practice development by creating an account on GitHub.

2. Excelファイルを作成する

続いて、先ほど登録したログイン情報をExcelへまとめます。

今回は以下のような構成で作成しました。

⭐️シート名を書いておくと、管理しやすいです。

今回はログインテストを実行するため、実際に利用するのは emailpassword の2項目です。


3. ExcelファイルをKatalon Studioへ登録する

まずはテストデータを管理する任意のフォルダとファイルを作成します。

  • DataFilesへ登録

続いてFile’s InformationのFileNameを入力します。

  • Browerクリック
  • エクセルファイル選択

登録後、Excelの内容が正しく読み込まれていることを確認しましょう。

  • Sheetが複数ある場合は、選択してください。

4. Test SuiteでData Bindingを設定する

今回はTest Suiteからデータドリブンテストを実行します。

まず、新しくTest Suiteを作成します。(フォルダやファイル名は任意)

設定手順

  1. TestCaseを登録する。(Addまたはドラッグ&ドロップ)
  2. 先ほど登録したExcelファイルを選択
  3. Map Allをクリック

続いて、前回作成したログインテストをTest Suiteへドラッグ&ドロップします。

  • テストケースをドラッグ&ドロップ
  • DataBindingを開きます。
  • 右側の「Select DataBinding option」はTestSuiteを選択
  • 「TestData」下のAddを選択

該当のデータを選択し、「OK」クリック

Map Allを実行します。Test Caseで作成した変数とExcelの列名が自動的に関連付けられます。

今回はTest Caseで使用している変数が

  • email
  • password

のみなので、この2つだけが自動的にマッピングされます。

これでData Bindingの設定は完了です。


5. データドリブンテストを実行する

設定が完了したら、Test Suiteを実行します。

今回はExcelファイルに10件のログイン情報が登録されているため、

  • 1件目のログイン
  • 2件目のログイン
  • ・・・
  • 10件目のログイン

というように、1つのテストケースを10回自動で実行してくれます。

実行後はレポート画面から、それぞれのテスト結果を確認できます。


スクリプトで繰り返し処理を実装することも可能

今回紹介した方法以外にも、Groovyスクリプトを利用して繰り返し処理を実装することも可能です。

例えば、ログイン情報を配列で管理し、for文を利用して複数回ログインを実行することもできます。

def users = [
	[email: "admin@test.com", password: "Test1234!"],
	[email: "kim@test.com", password: "Kim1234!"],
	[email: "lee@test.com", password: "Lee1234!"]
]

WebUI.openBrowser('')

for (user in users) {

	WebUI.navigateToUrl('http://localhost:3000/login')

	WebUI.setText(findTestObject('Page_Create Next App/input_Email'), user.email)

	WebUI.setText(findTestObject('Page_Create Next App/input_Password'), user.password)

	WebUI.click(findTestObject('Page_Create Next App/button_login-btn'))

	WebUI.navigateToUrl('http://localhost:3000/login')
		
}

WebUI.closeBrowser()

このように、データをコード内で管理し、for文を利用して同じ処理を繰り返し実行することも可能です。

ただし、テストデータが増えるたびにコードを修正する必要があるため、多くのテストデータを扱う場合は、本記事で紹介したData Bindingを利用する方が管理しやすくなります。

また、この考え方はログインテストだけではなく、

  • 会員登録
  • 商品検索
  • お問い合わせフォーム
  • CSV・Excelデータを利用した登録処理

など、さまざまな自動テストにも応用できます。


まとめ

今回はExcelを利用したデータバインディング(データドリブンテスト)を試してみました。

同じテストケースでも、データだけを変更して何度も実行できるため、テストケースを複数作成する必要がなくなります。

次回はVariablesを利用して、テストデータをより柔軟に扱う方法について紹介したいと思います。

タイトルとURLをコピーしました