Katalon Studioとはどんなソフトウェアか

# はじめに

わたしはWebアプリケーションのUIをテストする作業をソフトウェアで自動化する技術に関心があります。2018年1月以来わたしは [Katalon Studio](https://www.katalon.com/) というソフトウェアに注目しています。[Katalon Studio](http://www.katalon.com/)とはどういうソフトウェアか？ Katalon Studioの特徴を要約した文章が[Capterra > Automated Testing Software > Katalon](https://www.capterra.com/p/157828/Katalon-Studio/)にありました。

>###About Katalon Studio
>Katalon Studio revolutionizes the use of open-source test automation frameworks such as Selenium and Appium by eliminating their technical complexities to allow testers to efficiently setup, create, run, report and manage their automated tests. It also offers a viable alternative to commercial test automation solutions that are unaffordable to many small and medium-sized teams. Katalon Studio is made available to the test automation community at no cost.

>###Katalon Studioについて
>Katalon Studioはオープンソースのテスト自動化フレームワーク（SeleniumとAppium）をぐっと扱いやすくしてくれます。テスターはKatalon Studioを使ってSeleniumとAppiumをすんなりセットアップすることができます。自動化テストを効率的に作成・実行し、レポートを出力し、テスト全体を管理することができます。高価な商用テスト自動化ソリューションを導入するのをためらう中小規模のチームにとってKatalon Studioはぴったりです。Katalon Studioは無償で利用可能です。

なるほど、そのとおり。ですがもう一歩踏み込んだ説明がほしいところです。わたしは約3ヶ月間、Katalon Studioをやってみました。その経験にもとづきわたしなりに [Katalon Studio](https://www.katalon.com/) を紹介したいとおもいます。

# フル・スクラッチなSeleniumテスト

デスクトップPC上でSeleniumとWebブラウザを使って自動化テストしようと志したとしましょう。

2017年末時点ならわたしはフル・スクラッチなSeleniumテストを作ったでしょう。ビルドツール [Gradle](http://gradle.monochromeroad.com/docs/userguide/userguide.html) を基盤として使う。Gradleのビルド・スクリプトにtestターゲットを作りこむわけですが、JavaではなくてGroovy言語でテストコードを書く。JUnitじゃなくてテストフレームワーク [Spock](http://spockframework.org/spock/docs/1.1/spock_primer.html) を使う。テスト対象となるWebページを表すPage ObjectをGroovyで書くために[GEB](http://www.gebish.org/manual/current/)を使う。しまいに [Selenium](https://www.seleniumhq.org/)プロジェクトの [WebDriver Java language binding](https://www.seleniumhq.org/download/) と [ChromeDriver](https://sites.google.com/a/chromium.org/chromedriver/downloads) が登場する。わたしのテストコードがChromeブラウザを遠隔操作してWebサイトのページを問い合わせる。そして応答された画面のなかをわたしのテストコードがあれこれ仔細にチェックする。このように構築された自動化テストを絵にすると次の図になります。この図のなかで水色に塗った部分がわたしがエディタで書いたテストコードを表します。

![Selenium_testing_full_scratch.png](https://qiita-image-store.s3.amazonaws.com/0/52995/1a658731-0fd5-e29d-dc11-c487765dba92.png "図1 Seleniumテストをフル・スクラッチで自作した場合")

# Katalon Studioで構築したSeleniumテスト

いっぽう、Katalon Studioを使って同等な自動化テストを実現することができます。それを絵にすると次のような図になります。この図のなかで水色と白のグラデーション模様で塗った部分がわたしが自作したテストコードです。Katalon StudioのGUIツールによってテストコードの下書きを半自動的に生成することができます。テスタはテストコードをKatalon Studio組み込みのエディタで修正しデバッグします。

![Selenium_testing_with_KatalonStudio.png](https://qiita-image-store.s3.amazonaws.com/0/52995/e65dd0df-32e6-4858-fc9a-fb071345427b.png "図2 SeleniumテストをKatalon Studioで作成した場合")


# Katalon Studioの特徴

ふたつの図を見比べながらKatalon Studioの特徴を述べましょう。

## 自動化テストを開発する環境を簡単・確実に構築できる

フル・スクラッチなSeleniumテストの場合、テスタが自分のPCにテスト実行環境を準備するのが面倒です。基盤となるソフトウェアをネットからダウンロードしてインストールし正しく設定することを自力でやらねばならない。Java実行環境を入れる、Groovyをいれる、Gradleをいれる、SpockとGEBをいれる、Seleniumのjarをいれる、Selenium WebDriver Java language bindingをいれる、ChromeDriverをいれる、`build.gradle`ファイルを正しく記述する、などなど。こうした準備が完了してはじめてテストコードを書くことができる。経験あるJava/Groovyプログラマならこなせるでしょうが、この分野の経験が乏しい人には敷居が高すぎるといわざるをえません。

いっぽう、Katalon Studioはテスト実行環境一式をZIPファイルに入れて提供します。テスタが[ダウンロードサイト](https://www.katalon.com/download/)からZIPファイルをダウンロードして展開してみると基盤ソフト一式が一切合切含まれているのがわかります。`java.exe`が含まれている。`groovy-all-2.4.7.jar`がある。`selenium-server-standalone-x.x.x.jar`がある。`chromedriver.exe`がある。Katalon StudioのZIPファイルを展開したディレクトリの直下にある `katalon.exe` 起動するとKatalon Studioが立ち上がり、その時点ですでにテストが実行可能になっている。準備がとても簡素。だからプログラミングの経験が乏しい人でもKatalon Studioを使ってSeleniumベースの自動化テストを学びはじめることができる。

## GUIツール群とcom.kms.katalonのライブラリ群

フル・スクラッチなSeleniumテストにおいてわたしのテストコードが果たしていた役割の大部分が、Katalon StudioにおいてはKatalon Studio組み込みのGUIツール群とcom.kms.katalonのライブラリ群に置き換えられます。だからテスタが自作しなければならないテストコードの量がフル・スクラッチの場合に比べて圧倒的に少なくて済みます。

フル・スクラッチなSeleniumテストでGradle、Spock、GEBが担当していた役割は、Katalon Studioが提供する組み込みの機能で代替されます。


## Selenium IDE後継以上のもの

かつて[Selenium IDE](https://www.seleniumhq.org/projects/ide/)という手軽なWeb UIテストツールがありました。[Official Selenium Blogの記事](https://seleniumhq.wordpress.com/2017/08/09/firefox-55-and-selenium-ide/)にあるように、バージョン55以降のFireFoxではもはやSelenium IDEは動かない。しかしSelenium IDE後継へニーズは根強くあると思われます。Katalon Studioには [Record & Playback](https://docs.katalon.com/katalon-studio/docs/create_test_case_using_record_playback.html)機能が組み込まれておりSelenimu IDE後継の役を果たしています。

なおKatalon Studioの開発元であるKMS Technology社はGoogle Chromeブラウザのプラグイン[Katalon Recorder](https://chrome.google.com/webstore/detail/katalon-recorder-selenium/ljdobmomdgdljniojadhoplhkpialdid)を提供しています。Selenium IDEと同じようなものがほしいという人はKatalon Recorderから入るのもいいかもしれません。[Quick Startページ](https://www.katalon.com/resources-center/blog/katalon-automation-recorder/)にKatalon RecorderとKatalon Studioの比較表が掲載されています。また[日々のブラウザ操作業務をマクロで効率化〜SeleniumとKataonを使ってみた〜](https://www.gixo.jp/blog/11714/)にKatalon Recorderに関する詳しい紹介があります。しかしわたしは元Selenium IDE愛好者にたいしてKatalon RecorderよりもKatalon Studioに手を出してみてはいかが？とお勧めします。

## Report機能が充実

フル・スクラッチなSeleniumテストの場合、テストを実行した結果のレポートはSpockフレームワークが出力したxmlファイルのみです。大きなXMLファイルをエディタで開いて中を読み解くのはなかなか疲れる作業です。
それにくらべてKatalon Studioはテスト結果を会話的に閲覧する[Basic Report](https://docs.katalon.com/katalon-studio/docs/basic-report.html)というGUIを備えています。大局観から個々のFAILUREへとドリルダウンしながら見ることができるので便利です。

開発元KMS社は自動化テストの実行結果を分析するツールに注力しています。わたしはまだ触っていませんが[Katalon TestOps](https://www.katalon.com/testops/)というプロダクトもあります。ただしTestOpsは有償です。

## Katalon StudioはEclipseベースのドメイン特化型IDE

Katalon Studioを起動して眺めた人は「なんだかEclipseと見た目が似ているなあ」と思うでしょう。それもそのはず。Katalon Studioは[Eclipse Rich Client Platform](https://wiki.eclipse.org/Rich_Client_Platform)を基盤として作られています。テキストエディタのsettingsのUIなんかまるでEclipseと同じです。Katalon Studioで作ったプロジェクトのディレクトリの内容もEclipseで作ったプロジェクトのディレクトリとそっくりです。Eclipseを知っている人はKatalon Studioに親しみを覚えるでしょう。

真に汎用的な統合開発環境であるEclipseを基盤としつつWebサイトの画面を自動化テストするためのコードをGroovy言語で開発することに特化したDomain-specificなIDEそれがKatalon Studioであるといえます。


## カスタマイズはGroovy言語で

使い手がどのプログラミング言語を好むか？それがKatalon Studioを採用するかどうかの分かれ道かもしれません。Katalon StudioはGroovy言語で実装されています。テスタがカスタマイズするときもGroovy言語でコードを記述することが必要です。わたしはJava/Groovyが好みなのでそれを喜びました。しかしC#でやりたい人、JavaScript/Nodeでやりたい人もいるでしょう。そういう人にKatalon Studioは魅力的でないかもしれません。


## 無償で利用可能であること

Katalon Studioは[KMS Technology](https://www.kms-technology.com/)社が開発したソフトウェアです。[License Agreement](https://www.katalon.com/license-agreement/)の*LICENSE*の条項にはKatalon Studioを無償で利用できるとあります。商用で販売されているテスト自動化ツールはけっこう高価です。Katalon Studioならダウンロードしてすぐ学習を始めることができます。なお2019年10月にKatalon Studio version7がリリースされてver6.xまでは無料だった機能が一部有償化されました。それについては後述します。


## ドキュメント

[Katalon Studioのドキュメント](https://docs.katalon.com/display/KD)は十分充実した内容だとおもいます。ぜんぶEnglishですが。

## ユーザForum

Katalonのユーザが集う[ユーザフォーラム](https://forum.katalon.com/)があります。ここでKatalon Studioに関する質問をすることができます。先達がきっと速攻で答えてくれます。ぜんぶ英語ですが。

## 部分的にオープンソース化しつつあること

2018/12/26 訂正: Katalon Studioはオープンソース・ソフトウェアではありません。２０１８年夏までKMS Technology社はKatalon Studioのソースコードをまったく公開していませんでした。しかし2018年の秋頃からKatalon開発チームが[GitHub](https://github.com/katalon-studio)で彼らのコードの一部を公開するようになりました。ユーザーとのインターフェース部分である[built-inのkeywordsのソースコード](https://github.com/katalon-studio/keywords)はすっかり公開されています。ユーザがKatalonの動作に疑問を持った時にGroovy言語で書かれたソースコードを読んで考えることができるようになりました。わたしもソースコードを読んで改善できる箇所を見つけた時[ユーザフォーラム](https://forum.katalon.com/)に投稿したことが一度ならずあります。

## 開発プロジェクトが活きている

2018年3月にKatalon Studioの最新版はv5.3.1でした。2018年12月20日時点で最新版がv5.10.0です。[リリースノート](https://docs.katalon.com/katalon-studio/new/all-versions.html)をみればわかるように、2018年には月に1回以上のペースでバージョンアップがされています。ユーザ要望がすみやかに実現され、バグ対策がとっととおこなわれています。2019年10月には[v7.0のベータ版](https://www.katalon.com/enterprise/)が公開されました。

# 結び

次回はKatalon Studioのインストールについて書くつもりです。

# 関連する記事
- [Katalon Studioをインストールした](https://qiita.com/kazurayam/items/135cb30233d11c2f4840)
- [Katalon StudioでRecordしてみた](https://qiita.com/kazurayam/items/433876c0b3bc7f33f019)
- [Katalon Studioでテストを自作した](https://qiita.com/kazurayam/items/bdf71ed70fdc32bb1758)
- [Katalon Studioでテストを自作した(2)](https://qiita.com/kazurayam/items/29282b749def80a806de)
- [Katalon Studio with aShotでスクリーンショットを取る](https://qiita.com/kazurayam/items/ec9015e781819a5734b1)
- [Katalon Studio+MaterialsでWebサイトのスクリーンショットを整然と保存する](https://qiita.com/kazurayam/items/6d76148fa866129696b7)
- [Katalon StudioでVisual Testingを実現した](https://qiita.com/kazurayam/items/bcf72a03f50fc5db4373)
- [あなたのWebサービスをVisual Testingする方法](https://qiita.com/kazurayam/items/7da4bd82b52fe18209db)
- [WebページをMIME HTMLに保存する話（CDPとKatalon Studioを使って）](https://qiita.com/kazurayam/items/203e43e3fda51b5a0586)
- [Webページのリンク切れを見つける話（Katalon Studioで）](https://qiita.com/kazurayam/items/34df548944237e1c7436)

# Ver7で一部が有償化された

2019年10月にKatalon StudioのVer7.0がリリースされました。GitHubの[Releaseページ
](https://github.com/katalon-studio/katalon-studio) をみれば履歴をたどることができます。開発元Katalon.comはVer7.0のリリースと同時に製品体系を再編し一部の機能を有償化しました。具体的には https://www.katalon.com/pricing/ を参照のこと。製品体系が

1. Katalon Studio --- 無償
2. Katalon Studio Enterprize (KSE) --- 有償
3. Katalon Runtime Engine (KRE) --- 有償

の三本立てとなりました。Version 6.xに含まれていた機能のほとんどはVersion 7.0のKatalon Studioの無償版に継承されています。しかしVersion 6.xまで Console Mode という名前で呼ばれていてKatalon Studioに含まれていたものがKatalon Runtime Engineと名付けられ、単品で有償化されました。コマンドラインでKatalon Studioを実行することがタダではなくなったわけです。従来タダだったものを有償化したことについてユーザフォーラムにはネガティブな書き込みがいくつかなされました。Jenkinsの制御のもと継続的インテグレーションのサイクルのなかでKatalon Studioを使っていた上級ユーザがいくつかGood byeといって去っていったようです。しかし開発元はKRE有償化という方針を変えないつもりのようです。Katalon Studioという製品の開発を継続していくために必要な収益をあげたいという台所事情がうかがえます。

Katalon Studio Enterprizeには無償版のKatalon Studioに含まれていない上級者向けの機能がバンドルされています。具体的には https://www.katalon.com/pricing/#how-is-katalon-studio-enterprise-different-from-katalon-studio を参照のこと。

# V9.1でCustom Keywordsが有償化されたがV10.0で無償に戻された

Katalon Studioのプロジェクトの`Keywords`フォルダの下にカスタムなGroovyクラスのソースコードを配置してそのclassをTest Caseからcallすることができます。それをCustom Keywordsと呼ぶことにしますが、v9.0まではCustom Keywordsは無償版のKatalon Studioでも制限なしに利用できました。ところが2023年12月にリリースされたv9.1.0からCustom Keywordが無償版では使えなくなりました。わたくし個人としては「いったい何を考えているんだ Katalonは」と呆れました。詳しくは下記のForumトピックを参照のこと。

- https://forum.katalon.com/t/customkeyword-is-changed-from-free-to-premium-feature/109722

しかし2024年12月にv10.0がリリースされ、Custom Keywordsが無償版でも利用可能に戻されました。