見出し画像

簡単!自動化テストツール「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!

◆詰まりポイント
ここでエラーが出てしまった方は、GaugeのPathが通っていない可能性があるので Windowsの場合は再起動、Macの場合はPathの設定を行ってみてください。 javaを選択する予定の方はJDKのインストールとPathの設定も必要です。

いろいろな言語やフレームワークの組み合わせを選べます。 今回は「java」を選択しました。

プロジェクトを作成できました!

自動テスト作成

今回は3ファイルの内容が期待通りか確認するテストを実装していきます。

作成の基本的な流れは以下の通りになります。

  1. 実装部分(javaファイル)でメソッド作成

  2. 仕様書部分(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は、自動テストのケースを日本語で書くことができる点が魅力的だと感じました。
この記事を読んで、自動テストツールを選定する際の一助となれば幸いです。

_________________________________

執筆者プロフィール:城間 栄樹
前職では3年ほど保守開発を経験。
2021/11/01 SHIFTにテスト自動化エンジニアとして入社。
【趣味】サウナ、登山

【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/