こんにちは、アイスリーデザインの荒澤です。
皆さん、テスト自動化は進んでいますか?
今回はアプリなどのテスト自動化のためのテストフレームワークの一種であるAppiumについて説明したいと思います。
Appium公式サイト
目次
1.はじめに
近年、Webサイトだけにはとどまらず、
アプリなどでもUIやシナリオテストのテスト自動化が進んでいます。
テスト自動化ツールとしてSeleniumなどが有名ですが、
今回はAppiumを取り上げます。
Appiumはアプリのテストを自動化するためのツールになります。
既存のアプリのソースコードに手を加えることなく、テストを実行できたり、iOSとAndroidでテストスクリプトを分ける必要がありません。
今回は、備忘録も兼ねてAppiumの環境構築~Appiumのサンプルコード(iOS)実行と、自分が書いたテストスクリプト(iOS)の実行までの手順をご紹介します。
2.使用環境
ソフトウェア | バージョン |
---|---|
OS | 10.11.6(El Capitan) |
XCode | 8.1 |
Appium | 1.6.6-beta |
3.環境構築
1 |
$ brew install node |
1 |
$ npm install -g appium |
1 |
$ npm install wd |
以下のモジュールは直接Appiumとは関係ありませんが、Appiumのサンプルコード内で使用しているためインストールしておきます。
1 2 |
$ npm install chai $ npm install colors |
Appiumに必要なツール類が正しくインストールされているか確認します。
1 |
$ appium-doctor --ios |
全てにチェックがついていれば完了です。
設定
AppiumからiOS Simulatorの使用を許可します。
1 |
$ sudoauthorize-ios |
サンプルコードを取得
GitHubからファイルを取得します。
1 |
$ git clone git@github.com:appium/sample-code.git |
4.サンプルコードの実行
Appiumを起動
以下コマンドでAppiumを起動させます。
1 |
$ appium & |
実行後、以下のメッセージが表示されたら、準備万端です。
1 2 |
[Appium] Welcome to Appium v1.6.6-beta (REV 9586390418dbcb8655bf7c62bb315c2a2090722e) [Appium] Appium REST http interface listener started on 0.0.0.0:4723 |
終了するには以下コマンドを実行します。
1 |
$ killall -9 node |
iOS Simulatorの情報を確認
Xcodeを開き、Window > Deviceを選択し、
起動するSimulatorを設定します。
cap.jsでiOS Simulatorの情報を記述します。
サンプルコードの実行
カレントディレクトリをサンプルコードがあるフォルダまで移動します。
その後、以下コマンドにてテストを実行します。
今回は、ios-simple.jsを動かしてみます。
1 |
$ npm run ios-simple |
iOS Simulatorが起動するのに時間がかかってしまいますが、
起動後は自動でテストが行われます。
5.自分でテストコードを作成する
今回、ストップウォッチのアプリを作成しましたので、
このアプリをテストをするためにサンプルコードをもとに簡単にテストコードを書きます。
ソースコードの書き方に関しては、
今回使用しているMOCHAやChaiのドキュメントを参考にしました。
今回は簡単に、スタート→ストップ→再スタート→ストップ→リセットのテストスクリプトを作成しました。
app.jsにテストするアプリの.appファイルの絶対パスを記述します。
ソースコードが書けたら、package.jsonにファイル名を追加します。
そうしたら、実際にテストを実行してみます。
今回詰まった所
今回Appiumを使う上で、環境設定にかなり時間を使ってしまいました。
理由としては、iOS Simulatorの設定や.appファイルの設定で、どこにどのように書けば良いのか大変悩みました。
アプリのテスト自動化はUIテストだけでなくシナリオテストでもできますので、今後取り入れていくことで、テストをより効率的に行うことができるのではと考えられます。
今後、アプリのテストを行うのに手動でのテストだけでなく、できるところは自動化にしていけたらと思っています。
よりよいアプリを作成するために、自動化ツールを活用していきましょう。
____________
in-Pocket is presented by i3DESIGN
i3DESIGN(アイスリーデザイン)は渋谷とウクライナに拠点を構えるIT企業です。
「デザイン思考」の手法を取り入れたクライアントワークと、Google対応の自社クラウドサービス「GOMOBILE」の提供を行っています。
ビジネスの創出に必要な”右脳”であるUX/UI分野と”左脳”の開発分野が融合した組織で、サービスデザイン・UI制作・プロジェクト管理・設計・開発・品質管理・システム運用を一貫してご提供できることが、i3DESIGNの強みです。
お問い合わせはこちらから