はじめに
前回は、【自動化テスト入門⑤】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件のログイン情報を登録しました。
例)
| ID | Name | Password | Role | |
|---|---|---|---|---|
| 1 | Administrator | admin@test.com | Test1234! | Admin |
| 2 | Kim Minsoo | kim@test.com | Kim1234! | 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から確認してください。

2. Excelファイルを作成する
続いて、先ほど登録したログイン情報をExcelへまとめます。
今回は以下のような構成で作成しました。
⭐️シート名を書いておくと、管理しやすいです。

今回はログインテストを実行するため、実際に利用するのは email と password の2項目です。
3. ExcelファイルをKatalon Studioへ登録する
まずはテストデータを管理する任意のフォルダとファイルを作成します。
- DataFilesへ登録

続いてFile’s InformationのFileNameを入力します。
- Browerクリック
- エクセルファイル選択

登録後、Excelの内容が正しく読み込まれていることを確認しましょう。
- Sheetが複数ある場合は、選択してください。

4. Test SuiteでData Bindingを設定する
今回はTest Suiteからデータドリブンテストを実行します。
まず、新しくTest Suiteを作成します。(フォルダやファイル名は任意)

設定手順
- TestCaseを登録する。(Addまたはドラッグ&ドロップ)
- 先ほど登録したExcelファイルを選択
- Map Allをクリック
続いて、前回作成したログインテストをTest Suiteへドラッグ&ドロップします。
- テストケースをドラッグ&ドロップ
- DataBindingを開きます。
- 右側の「Select DataBinding option」はTestSuiteを選択
- 「TestData」下のAddを選択

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

Map Allを実行します。Test Caseで作成した変数とExcelの列名が自動的に関連付けられます。
今回はTest Caseで使用している変数が
- 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を利用して、テストデータをより柔軟に扱う方法について紹介したいと思います。
