モバイルアプリ用テスト自動化ツール「Appium 2.0」まもなく登場。ドライバーの分離、プラグインによる拡張対応など、新機能を開発者Jonathan Lipps氏が解説
今回は「モバイルアプリ用テスト自動化ツール「Appium 2.0」まもなく登場。ドライバーの分離、プラグインによる拡張対応など、新機能を開発者Jonathan Lipps氏が解説」についてご紹介します。
関連ワード (機能、無料、部分等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
モバイルアプリケーションのテスト自動化ツールの代表的なツールが、オープンソースで開発されている「Appium」です。
そのAppiumの次期版となる「Appium 2.0」正式リリースが迫っています。Appium 2.0ではAppium本体から各プラットフォームへ対応するためのドライバが分離され、ドライバの開発が容易になります。
また、Appiumの機能を拡張するプラグイン機構も提供されるため、今後さまざまな拡張機能の登場が期待されるでしょう。
これらAppium 2.0の新機能について、AppiumのプロジェクトリードであるJonathan Lipps氏が、Appiumベースの商用サービスであるHeadSpinを国内で販売 している企業「コウェル」が主催するオンラインイベント「モバイルテストの最前線 ~Appiumの今とこれから、急成長HeadSpinとは?~」に登壇し、紹介しました。
この記事ではそのLipps氏のセッションから、Appium 2.0の解説部分をダイジェストで紹介します。
Jonathan Lipps氏。
私はAppiumでは多くの役割をこなしていますが、Appiumプロジェクトのアーキテクトであり、メンテナーの一人でもあります。Appiumのかなり初期、8年前あたりから参加しています。
Headspinにおいては、Headspin Universityと呼ばれる取り組みを通して、みなさんが自動化テストについて学ぶための支援をしています。
まずはAppiumについてご存じない方もいるかもしれないので、Appiumについてご紹介します。
Appiumは、モバイルアプリケーションやデバイスでテスト自動化を行うためのツールです。JavaScript Foundationがホストしており、すべてGitHub上でオープンソースとして開発されてます。
Appiumは基本的に、WebDriverインターフェイスを用いて自動化機能を提供するというものです。
Appiumの利点は、ほとんどすべてのプログラミング言語で自動化スクリプトや自動化テストを書くことができることです。そのため、利便性が高く、選択の幅が広く、柔軟な使い方ができます。
クロスプラットフォーム対応のAPIを提供している点もAppiumのさらなる利点でしょう。
つまり、同じアプリを異なるプラットフォームでテストする場合。Android用とiOS用のテストコードは非常に似通ったものになるということです。
また、Appiumには多くのユーザーがいることにも触れておかなくてはならないでしょう。それぞれの国にユーザーやフォーラムがあり、中国語圏や英語圏や日本にも大きなコミュニティがあることを存じています。
これがAppiumでテストの自動化をしている例です。
2つのデバイスを1組にして、Appiumのテストスクリプトによって2つのデバイスによるチャットアプリケーションの自動テストが行われています。
そして、もう間もなくAppium 2.0が登場予定です。すでに9番目か10番目のベータ版をリリースしています。
まず現在のAppiumにおける課題を紹介し、Appium 2.0でそれがどう解決されるのか、紹介していきます。
既存のAppiumの最初の課題は、プラットフォームごとに異なる多くのドライバのすべてがAppiumサーバにバンドルされていることです。
これらのドライバは別々に開発されています。ところが、これらはAppiumのリリースに合わせて提供されるため、実際には十分に独立して開発することが難しくなっています。
そこでAppium 2.0ではこのドライバをAppium本体とは切り離し、まったく別のものにしました。
2つ目の課題は、iOSやAndroid以外にもサポートすべきプラットフォームが多くある、ということです。そこで、誰にでもドライバを書いてもらえるように、新しいプラットフォーム用のドライバを書くためのサンプルコードやツールなどを提供していきます。
3つ目の課題は、Appiumはさまざまな技術の集合体であること、そして多くのひとたちがAppiumの新機能のアイデアを持っているのに、それを実装するための私たち実装チームの人数がそれに見合うほど多くないという点です。
そこでAppium 2.0では「Appiumプラグイン」というコンセプトを導入し、だれでもAppiumをカスタマイズできる、あるいは他のツールと統合できるようになる、といったことを簡潔なコードで可能にします。
プラグインはオープンに公開できますし、そうなれば誰でも誰かのためにプラグインを書けるようになり、また誰かが書いたプラグインを誰でも使えるようになるでしょう。
さらに、Appiumは容量が大きくインストールが面倒な点も課題でした。ここでもAppium本体とドライバーやプラグインを分離することで、必要なものだけをインストールできるようにすることでダウンロードするサイズを小さくできるようになります。
そして最後に、Appiumのなかで一貫性のない部分や非推奨の機能などを修正し、新たな標準とします。これにより以前のバージョンとの互換性が失われますが、将来に向けて前進するためにこれらを行っていきます。
ではここから、新たなドライバーエコシステムについて紹介していきましょう。
Appiumは、iOSやAndroidだけでなく、あらゆるプラットフォームの自動化を簡単にサポートすることを将来のビジョンとしています。これはとても大きな目標であり、いわば、Webブラウザに特化していたSeleniumの目標よりも大きな目標です。
Appiumでは、iOSとAndroidのドライバが最も広く使われていますが、そのほかのデバイス、Mac、Windows、さらにはRaspberry Piのデバイスを自動化することもできます。
Appium 2.0ではだれでも新たなプラットフォーム向けのドライバを書くことができるように、汎用のドライバクラスや機能を公開する予定です。私たちがすでに書いたコードを頼りに、新しいプラットフォームに対応したドライバへの拡張が簡単にできるようになるのです。
これにより、あらゆる種類のプラットフォームに対応したAppiumドライバの作成が促進され、将来的には同じAppiumのスキルを使ってあらゆる種類のアプリプラットフォームの自動化が可能になることを期待しています。
また、新たに書かれたドライバはGitHubなどのGitサーバやNPMによるパッケージマネージャ、あるいはtarファイルやzipファイルなどで簡単に公開できます。
もちろんそれらはクローズドソースにも、社内用にも、オープンソースにも、無料にもできます。こうしたことがAppium 2.0における幅広いドライバ対応になることを期待しています。
Appium 2.0では新しくコマンドラインインターフェイスが用意され、ドライバーのリストや、ローカルやリモートなどさまざまな場所からのドライバーのインストールできるようになります。
Appium 2.0では、いまRoku、KaiOS、ChromeOSなどのデバイス向けのドライバなどを開発しています。
次はAppium 2.0のもう1つの大きな新機能であるプラグインについて。
例えば、画像認識の機能があります。とても素晴らしい機能です。ただ、この機能はUI要素のテストをしているのであれば不要でしょう。
ですから、こうした機能をプラグイン化するのです。そうすれば、必要な人がこの機能をインストールすればいいのですから。
これによっても、インストールサイズを小さくし、依存性を下げてシンプルにすることにつながります。
Appiumがテストを実行したあと、成功したか失敗したかを伝えるプラグインも可能でしょう。これによってAppiumを外部ツールを経由せずにCIダッシュボードに統合することも可能でしょう。
プラグインに関してもドライバと同様に自由に公開、共有できます。またCLIも用意されており、ドライバと同様にここからプラグインをインストール可能です。
現在のバージョンとの非互換性もいくつかあります。1つはAppium 2.0では「automationNamee」と呼ばれる機能が要求されること。というのも、デフォルトではドライバが含まれなくなるためどのドライバが使えるのかを知る必要があるためです。
W3Cの標準ではない機能については「appium:」プレフィックスも必要となります。また、開始前にドライバのインストールも必要となります。
Appium 2.0は(まだ正式版提供前ですが)簡単に導入できます。ぜひ試してみてください。
AppiumはWebブラウザのテスト自動化ツールであるSeleniumを基にしています。以下の記事は、そのSeleniumについて解説したものです。
AppiumはJavaScriptファウンデーションがホストしているオープンソースです。
【コミックシーモア】無料・試し読み漫画が満載!毎日更新
無料漫画や無料の電子書籍なら国内最大級の電子コミック・電子書籍ストア「コミックシーモア」!無料のコンテンツを常時分以上配信中!人気のコミックが1冊丸ごと無料で読める 映画化・アニメ化された作品も期間限定で無料配信中!
無料ゲームや無料オンラインゲームならワウゲーム
誰でも簡単に遊べる無料ゲーム・無料オンラインゲームやおもしろゲーム、脱出ゲームのサイトです。簡単な無料ゲームからソリティアのような頭を使うゲームや本格的なゲームまで登録無料で気軽に遊べます。
映画 | 無料動画GYAO!
ヤフーの無料動画サービスGYAO!(ギャオ)では、邦画、洋画ともに、好きな映画がフルで見放題!アクション映画をはじめ、恋愛映画、コメディー映画、ホラー映画、ドキュメンタリー映画、Vシネマなど、ラインアップも豊富。
無料ゲームが盛りだくさん、かんたんゲーム - Yahoo!ゲーム
無料ゲームから、本格的に楽しめるゲームまで100種類以上! 人気ゲーム「ナンプレ」「ソリティア」はもちろん、パズル、アクション、ボードなど、あらゆるジャンルのゲームが楽しめます!
GYAO! | 無料でアニメ、映画、音楽、韓国ドラマの動画を見る …
ヤフーの無料動画サービスGYAO!(ギャオ)では、見逃したテレビ番組、今期のアニメやドラマ、映画が見放題!ほかにも、ドラマから派生したチェインストーリー、オリジナル番組、韓国ドラマ、バラエティー番組など、ラインアップも豊富。
無料ゲーム・無料スマホゲーム - gooゲーム
50タイトル以上の無料ゲームが遊べる「gooゲーム」。定番ゲームをはじめ、パズル・アクション・クイズ・脳トレ・ボードゲームなど無料ゲームが満載!スマホでも楽しめます。
無料漫画コーナー|ソク読み-マンガ試し読みを全巻配信中!
無料漫画を毎日更新!会員登録なしでスグ読める!アニメ・ドラマ化された人気漫画やSNSで話題の漫画も無料配信中!少年漫画や少女漫画・TL(ティーンズラブ)・BL(ボーイズラブ)何でも読める!スマホで無料漫画を読むならソク読み!
おすすめの無料映画30選 - 無料映画 - Yahoo!映画
今すぐ観られる無料映画の中からおすすめ映画30作品を随時更新中。映画「ラ・ラ・ランド」「LION/ライオン ~25年目のただいま~」などの人気話題作が洋画も邦画もユーザー登録不要で本編まるごと無料視聴する事ができます!GYAO!(ギャオ)で配信されている動画の中から厳選した映画をお届けします。
まんが王国|無料漫画・電子コミックが3000作品以上!お得 …
無料漫画・電子コミックが3000作品以上!お得感No.1。会員登録不要、アプリ不要ですぐ読める。1冊丸ごと無料、期間限定無料漫画、完結作品から新刊まで多数配信!国内最大級の電子コミックサイト、漫画・電子コミックを読むなら「まんが王国」。
無料・試し読み漫画が満載!少女・女性マンガ|コミックシー …
期間限定の無料コミック(少女・女性マンガ)|コミックシーモアは日本最大級の電子書籍サイト 毎週更新!新作続々入荷!!ジャンルも豊富で、購入前に無料立ち読みできるから安心して漫画が楽しめる セールやお得なキャンペーンも
28090:
2021-05-11 19:43/ フォロー&RTでその場で1,000名様に当たる?「おろし天丼」1食無料券 \ 5/31まで毎日挑戦? ※ほっかアプリのクーポンとして贈呈 ※岩手県/青森県/四国地方/淡路島対象外 ①②5/12 9:59…