簡単!自動化テストツール「Gauge」の導入からテスト実行まで
こんにちは!テスト自動化エンジニアの城間です。
今回は、テスト自動化ツール「Gauge」を使用し、使いやすいと感じたので 導入~簡単なテスト実装までまとめてみました。
みなさんの自動化テストツール選定の参考になれば幸いです。
Gaugeとは
テストを作成および実行するための無料の自動テストフレームワークです。
「テスト実装」と「テスト仕様書」を分離して記述し実行することができます。
Seleniumと連携しWebアプリの自動テストを構築するなど、さまざまなテストで導入可能です。
メリット
・WindowsでもMacでもLinuxでも使用可能
・テスト実装部分はさまざまな言語を使用可能(C#,java,javaScript,Python ,Ruby)
・見やすいレポートを出力できる
・テスト仕様書部分は日本語(マークダウン)でテスト内容を記述できる
→レビュアーが分かりやすい。
→「テスト実装」はエンジニア、「テスト仕様書」は非エンジニアと分業できる。
デメリット
・今のところなし!
Gaugeの導入
公式のインストールガイドで、OS、プログラミング言語、IDE/Editorを選択すると、それ以降のページ内容が変わる仕組みです。
(分かりやすすぎて感動)
基本的にインストールガイドをGoogleChromeの翻訳機能で翻訳しながら問題なく進めることができました。
【ざっくり手順書】
1.エディタ(Visual Studio Code)を準備 → インストールはこちら
2.Gaugeのインストール → インストールはこちら
3.Visual Studio CodeにGaugeのプラグインをインストール → インストールはこちら
4.PCの再起動
以上!!!簡単すぎ!!
Gaugeのプロジェクト作成
ではさっそくプロジェクト作成していきます。
VSCを開いて、「Shift」+「Ctrl」+「P」キーを押します。
するとコマンドパレットが表示されるので、「Create a new Gauge Project」と入力しEnter!
いろいろな言語やフレームワークの組み合わせを選べます。 今回は「java」を選択しました。
プロジェクトを作成できました!
自動テスト作成
今回は3ファイルの内容が期待通りか確認するテストを実装していきます。
作成の基本的な流れは以下の通りになります。
実装部分(javaファイル)でメソッド作成
仕様書部分(specファイル)でメソッドの呼び出し
1. 実装部分(javaファイル)でメソッド作成
実装は以下のように適当なクラスを作成し、そのメソッドに@Stepをつけます。
この時、仕様書部分(specファイル)で呼び出す名前を自由に決めることができます。
test.java
import com.thoughtworks.gauge.Step; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import static org.assertj.core.api.Assertions.assertThat;
public class test {
public static String fileToString(File file) throws IOException{
BufferedReader br = null;
try {
br = new BufferedReader(new InputStreamReader(new FileInputStream(file))); {
StringBuffer sb = new StringBuffer();
int a;
while ((a = br.read()) != -1){
sb.append((char) a);
}
return sb.toString();
}
} finally{
br.close();
}
}
@Step("動物管理システムを起動する")
public static void main1(String args[]) throws IOException{
//ここは省きます。
}
@Step("動物の名前リストを開く")
public static void main2(String args[]) throws IOException{
//ここは省きます。
}
@Step("動物の名前ファイルがであること")
public static void main3(String file, String word) throws IOException{
String fil = "C:\\Users\\XXXX\\Desktop\\Gauge\\sample\\src\\test\\text\\" + file;
String s = fileToString(new File(fil));
assertThat(s).isEqualTo(word);
}
@Step("なんちゃらであること")
public static void main4(String args[]) throws IOException{
//ここは省きます。
}
}
2. 仕様書側(specファイル)でメソッドを呼び出す
仕様書側はほぼすべて日本語で記述することができます。
先ほど実装した@stepを呼び出して仕様書を作成します。
変数は下記のように表形式で書くことが可能です。
「#」1つでこのspecのテスト名を表し、
「##」2つでシナリオ名を表しています。
自動テスト実行
テスト実行は「Run Spec」を押すだけでOKです。
Specファイルを複数作って、すべて実行したい場合はターミナルで 「gauge run specs」を実行するとOKです。
(今回は実際に実装したstepだけ実行します)
実行が完了すると、左下に結果が表示されるのでクリックします。
今回は3ケース中1ケースがエラーとなっているため赤く表示されています。
このようにレポートが出力されました。(見やすい!!)
エラーとなったケースをクリックすると、期待値と期待結果も確認できます。
終わりに
テスト自動化ツールGaugeの導入からテスト実行までをまとめてみました。Gaugeは、自動テストのケースを日本語で書くことができる点が魅力的だと感じました。
この記事を読んで、自動テストツールを選定する際の一助となれば幸いです。
_________________________________
【FREE】お役立ち資料ダウンロード
SHIFTについて
お問合せはお気軽に
https://service.shiftinc.jp/contact/
SHIFTについて(コーポレートサイト)
https://www.shiftinc.jp/
SHIFTのサービスについて(サービスサイト)
https://service.shiftinc.jp/
SHIFTの導入事例
https://service.shiftinc.jp/case/
お役立ち資料はこちら
https://service.shiftinc.jp/resources/
SHIFTの採用情報はこちら
https://recruit.shiftinc.jp/career/