イントロ
初投稿となります、ヨシナといいます。約3年QAエンジニアをしています。よろしくお願いします。
最近まではSeleniumというブラウザ操作自動化ツールを使用していて、現在は似たようなツールMagicPodを使っています。主な違いは、Seleniumはコードを書くツール、MagicPodはノーコードのツールです。Seleniumは2年半の経験があり、MagicPodは使い始めてから3カ月になりました。本記事ではMagicPodに触れ始めてから感じている各ツールのメリットとデメリットについて書きます。
コードとノーコード
ノーコードツールの一番のメリットは何といってもコードを書く必要がないことです。SeleniumはPythonで書き、フレームワークや環境を構築して実際に運用できるようになるまで半年かかりました。又、プログラミングの知識が必要であり、QAエンジニアは必ずしもプログラミングを経験していません。MagicPodは画面の要素をクリックするだけでテストケースを簡単に作成できます。
要素の管理
MagicPodではテストケースの作成が簡単になった分、要素の管理が難しくなったと思います。Seleniumでは全ての要素のロケーターをコンフィグファイルで管理し、UIに変更があった際は一行を変更するだけで対応が可能でした。使っている要素も一覧になっていて分かりやすいです。MagicPodではテストケースに入って変更に該当するUI要素を操作しないといけません。
open_btn=//button[id=”open”]
close_btn=//input[id=”close”]
...
(図2)ロケーターの管理例
インフラ
MagicPodはSaaS ( Software as a Service )のため、ユーザはインフラの管理が不要です。Seleniumではユーザが実行環境を管理し、停電、ドライバーの更新、実行環境のアップデートなどに対応する必要があります。管理する分、リソースなどに対する柔軟性はありますが、メンテナンスコストは高くなります。
(図3)ブラウザのドライバーは定期的に更新される (引用: https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/?form=MA13LH#downloads )
ステップの作りやすさ
フレームワークが整っている場合、Seleniumで要素の操作は一瞬で書けます。クリックや入力などの一般的な操作を関数やメソッドにし、コードエディタのオートコンプリート機能で行いたい操作がすぐでてきます。セレクターも変数で持っておくことが可能なため、一つの要素に対し複数の操作を簡単に書けます。MagicPodでは最初、行いたい操作をメニューで選択し、セレクターを設定します。同じロケーターに対して複数のステップを作成する際はステップごとにロケーターの設定が必要です。
class Page:
def __init__(self):
self.browser = None
def click(self,locator:str):
self.browser.click(locator)
class HomePage(Page):
def __init__(self):
self.browser = None
self.open_btn_locator = "//input[id='open']"
def click_open_btn(self):
self.click(self.open_btn_locator)
(図4)一般操作をメソッドにしたサンプルコード
まとめ
MagicPodを使用する前はSeleniumの方が使いやすいと思いました。コードを書く分、柔軟性があり、様々な操作を行うことが可能です。その反面、MagicPodは運用のしやすさがあります。プログラミングの知識が不要、メンテナンスコストも低いです。両方にメリットとデメリットがある中、最終的にはどのように運用するかで各ツールの効果が表れると思います。こちらについてはまた別の記事で書きます。
KIYOラーニング株式会社について
当社のビジョンは『世界一「学びやすく、分かりやすく、続けやすい」学習手段を提供する』ことです。革新的な教育サービスを作り成長させていく事で、オンライン教育分野でナンバーワンの存在となり、世界に展開していくことを目指しています。
プロダクト
- スタディング:「学びやすく・わかりやすく・続けやすい」オンライン資格対策講座
- スタディングキャリア:資格取得者の仕事探しやキャリア形成を支援する転職サービス
- AirCourse:受け放題の動画研修がついたeラーニングシステム(LMS)
KIYOラーニング株式会社では一緒に働く仲間を募集しています
https://www.wantedly.com/companies/kiyo-learning/projects
https://herp.careers/v1/kiyolearning