今回はシンプルなテストを作成して Katalonの使い方を覚えようと思います。
日本語が使えない
テストを作る前の注意です。
Katalon Studio 6.1.4 時点では、日本語を使えない場所が多々あります。
特に、WebRecorderなどを使用してクリックするコンポーネントに名前をつけるとき、日本語を入力してしまうと、保存時に日本語部分が消えてしまうので注意してください。
新プロジェクトの作成
プロジェクトの作成
ここでは File - New - Project で新しいプロジェクトを作成します。
テストプロジェクトは API用やMobile用など、特定のサービスを対象にしたプロジェクトを作成することもできます。
プロジェクト内のフォルダ
プロジェクトを作成するといくつかのフォルダが表示されます。
ここでは基本的な3つのフォルダについて確認します。
Profiles
環境別に設定値を変えたい場合、ここで設定値を登録しておきます。 開発環境、ステージング環境でログインURLが違い場合に、それぞれのURLを登録しておく、というような使い方ができます。Object Repository
画面上の項目を Object Repository として登録しておくことができます。WebRecorderで作成したり、自分で作成することもできます。Test Cases
ここにテストケース(シナリオ)を作成します。画面上でクリックできる項目は ObjectRepositoryから選択することができます。実際は Groovyスクリプトになっているので、スクリプト内で操作対象を定義することもできます。
テストケースの作成
操作の記録
ここでは WebRecorderを使って、画面操作を録画してみます。
メニューバーにある WebRecorder のアイコンをクリックします。
ここではURLにQiitaのURL (https://qiita.com) を指定してみます。
次に、右のドロップダウンリストから chrome を選択します。
すると、Chromeが自動的に起動しQiitaのトップページが表示されます。
自動テストの対象になっているブラウザには「Chromeは自動テスト ソフトウェアによって制御されていません」という表示があります。
このとき WebRecorderには2つの操作が記録されています。
Open Browser
Chromeブラウザを起動する
Navigate To Url
指定したURLを起動中のブラウザで開く
次に、自動テスト中のブラウザで、右上にあるログインのリンクをクリックします。
WebRecorderを確認すると、いまのクリック操作が登録されています。
Click
指定したコンポーネントをクリックする
操作したコンポーネントの情報 (TestObject)
テスト中に操作したコンポーネントは TestObject を呼ばれます。
TestObjectはWebRecorder内でその位置情報をXPathとして確認することができます。
SelectionMethod XPath
右上のRunボタンの上にある「Show Captured Objects」をクリックします。
すると、画面が右側に広がり、Aタグの情報が表示されます。
Selector Editor に表示されているXPathが、このコンポーネントを指定するときのパスになります。
この画面では Selection Method として「XPath」が選択されていますが、「Attributes」を選択すると、タグやClass名などの属性を組み合わせたXpathを構築することができます。
※ xpath:neighborがたくさんありますが、これは AutoHealing smart XPath 機能で使われるようです
SelectionMethod Attribute
右端のチェックボックスをON/OFFすることで、属性の組み合わせを変更できるので、確実に一意になる組み合わせを定義することもできます。
操作記録の停止
WebRecorder右上の StopRecordingボタンをクリックして記録を停止し、OKボタンでRecorderを閉じると、これまでに操作したコンポーネントを保存する画面が表示されます。
このままOKをクリックした場合、Object Repository に Page_Qiita フォルダを作成し、このフォルダ内に a_ という名前で ログインリンクの位置情報(Xpath)が保存されます。
今回はこのままの状態でOKをクリックします。
次に今の操作をテストケースとして保存するダイアログが表示されます。ここで任意のテストケース名を入力してOKをクリックします。
元の画面に戻ると、いま保存したテストケースが TestCases フォルダに表示され、操作したコンポーネントの情報は Object Repository に保存されます。
操作の再生
記録した操作を再生するには、メニューバーのRunボタンをクリックします。
この場合、Firefoxがデフォルトブラウザになっているので、記録の再生はFirefoxブラウザを起動して行われます。
ブラウザを指定したい場合は、Runボタンの横にある▼をクリックし、ブラウザを選択します。
新しいブラウザが起動し、いま記録した操作が実行されます。
このときKatalonの画面では再生中のログが表示され、すべて正しく実行すると緑色のバーが表示されます。
TestObject名に日本語が使えない
WebRecorderで操作コンポーネントを確認するとき、Object Name のところは編集可能なので、操作を記録しながら、コンポーネントに分かりやすい名前を付けることができます。
ここではAタグに「ログインリンクのAタグ」という名称を付けました。
しかし、ここで日本語の名称を登録した場合、テストケースを保存してKatalonの画面に戻ると、日本語の部分がすべてなくなり「A」だけしか残りません。
現時点では日本語に対応していないため、名称を付ける場合はがんばって英語名称をつけましょう。
TestObject名についての一考
テストする画面数が増えてくるとTestObjectも増えていきます。
WebRecorderでは自動的に名称を付けてくれますが、そのまま利用すると TestCaseの作成時に ObjectRepositoryから選択するのが難しい場合があります。
このため、プロジェクトメンバーと命名規則を決めておくと良いと思います。
たとえば、ObjectRepository内で
- 画面単位のフォルダを作成
- 画面内のパーツごとにフォルダを作成
- TestObject名は 「パーツ名_Htmlタグ名_名称」 とする
といったような規則を作っておきます。
私がTestObjectを作ったとき、はじめは htmlタグ名は不要かなと思っていたのですが、ObjectRepositoryを使ってテストケースを作成するとき、
- アプリケーションの画面を見る
- クリックしたいコンポーネントを確認する
- ObjectRepositoryを探す
という流れになり、コンポーネントを確認するときに Htmlタグを意識していたように思ったので、TestObjectに Htmlタグ名が入っていると探しやすい印象がありました。