システムテスト自動化の基礎知識とMonkeyTalkの使い方スマホ向け無料システムテスト自動化ツール(1)(2/4 ページ)

» 2014年07月16日 18時00分 公開
[長谷川孝二,STAR(テスト自動化研究会)]

サンプルAndroid/iOSアプリのセットアップ

 本連載でテスト対象とするアプリをGitHubで公開しています。ごく単純なMaster-Detail形式のアプリで、顧客の氏名、メールアドレス、性別、年齢を登録することで、その顧客のマーケティング区分(F1層、M2層など)を付加して表示するものです。

 Android/iOSそれぞれ、以下のようにセットアップしてください。

Androidサンプルアプリのセットアップ

 プロジェクトを下記リポジトリからcloneするか、ページ右にある「Download ZIP」ボタンでダウンロードして展開してください。

 本アプリは、Androidの新ビルドシステム(Gradle plugin for Android)で構成されています。アプリのビルドおよび端末・エミュレーターへのインストールは、プロジェクトのルートで下記コマンドで実行できます。

$ ./gradlew installAppDebug

 また、プロジェクトをAndroid Studioにインポートするには、Android Studioのメニューから[File]→[Import Project...]を開き、サンプルコードのディレクトリを選択して[OK]をクリックします。

 GradleおよびAndroid Studioの導入については、以下の記事を参考にしてください。なお、Gradleのバージョンは1.12、Android SDK Build-toolsはr19.1、Android Studioは0.8.2で確認しています。

Androidサンプルアプリへのエージェント組み込み

 続いて、MonkeyTalkのエージェントをアプリにバンドルします。エージェントはGoogle Play Storeにリリースするアプリにはバンドルすべきではありませんので、MonkeyTalkによるテスト実行専用のプロダクトフレーバーを追加します(サンプルアプリでは一通りの設定は終わっています。ダウンロードしたMonkeyTalkエージェントファイルのコピーのみ実施してください)。

 まず、appディレクトリにあるbuild.gradleに以下のように記述を追加します。

  1. apply plugin: 'android'
  2. apply plugin: 'android-aspectj'
  3. android {
  4. (snip)
  5. productFlavors {
  6. (snip)
  7. monkeytalk {
  8. applicationId "com.nowsprinting.hellotesting.monkeytalk"
  9. }
  10. }
  11. (snip)
  12. }
  13. dependencies {
  14. (snip)
  15. monkeytalkCompile fileTree(dir: 'libs-monkeytalk', include: ['*.jar'])
  16. }
app/build.gradle(抜粋)

 2行目は、MonkeyTalkエージェントの動作に必要な「AspectJ」を利用するためのプラグインです。

 9行目では、プロダクトフレーバー「monkeytalk」を宣言し、applicationId(アプリのPackageName)を設定します。

 17行目では、フレーバー「monkeytalk」でのみエージェントのjarファイルをバンドルしています

 続いて、プロジェクトのルートにあるbuild.gradleに以下の記述を追加します。これは2行目のプラグイン「android-aspectj」を利用するための設定です。

  1. buildscript {
  2. (snip)
  3. dependencies {
  4. (snip)
  5. classpath 'com.uphyca.gradle:gradle-android-aspectj-plugin:0.9.+'
  6. }
  7. }
build.gradle(抜粋)

 次に、MonkeyTalkエージェントが必要とするパーミッションの設定を、以下のように「app/src/monkeytalk/AndroidManifest.xml」に記述します。このファイルには差分だけ記述することで、ビルド時に「app/src/main/AndroidManifest.xml」の内容とマージされたAndroidManifest.xmlが生成されます。

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android">
  3. <uses-permission android:name="android.permission.INTERNET" />
  4. <uses-permission android:name="android.permission.GET_TASKS" />
  5. </manifest>
app/src/monkeytalk/AndroidManifest.xml

 最後に、ダウンロードしたMonkeyTalkのzipファイルの中にあるagents/android/monkeytalk-agent-2.0.5.jarを、 app/libs-monkeytalk/にコピーします。

 エージェントをバンドルしたアプリのビルドおよび端末・エミュレーターへのインストールは、プロジェクトのルートで下記コマンドで実行できます。

$ ./gradlew installMonkeytalkDebug

iOSサンプルアプリのセットアップ

 プロジェクトを下記リポジトリからcloneするか、ページ右にある「Download ZIP」ボタンでダウンロードして展開してください。

 ライブラリ管理に「CocoaPods」を使用していますので、下記コマンドで依存ライブラリをインストールしてから、Xcodeで「HelloTesting.xcworkspace」を開いてください。

$ pod install

 CocoaPodsの導入については、以下の記事を参考にしてください。

iOSサンプルアプリへのエージェント組み込み

 続いて、MonkeyTalkのエージェントをアプリにバンドルします。エージェントはApp Storeにリリースするアプリにはバンドルすべきではありませんので、MonkeyTalkによるテスト実行専用のビルドターゲットを追加します(サンプルアプリでは一通りの設定は終わっています。MonkeyTalkエージェントファイルのコピーのみ実施してください)。

 ビルドターゲットは、既存の「HelloTesting」を複製して作成します。Xcodeでプロジェクトを開き、ターゲット「HelloTesting」を右クリックして「Duplicate」を選択します。

ビルドターゲットの複製

 複製したターゲットは名前を「HelloTestingWithMonkeyTalkAgent」に変えておきます。続いて、「Build Phases」タブを開き、以下の設定を行います。

  1. 「Link Binary With Libraries」を展開して「+」をクリックし、ライブラリ追加ウィンドウ左下の「Add Other...」をクリック。先ほどダウンロードしたMonkeyTalkのagents/ios/libMonkeyTalk-2.0.5.aを追加
  2. 同様に、検索バーを利用して以下を追加
    • libstdc++.6.0.9.dylib
    • libsqlite3.dylib
    • CFNetwork.framework
    • QuartzCore.framework
  3. 「Build Settings」の「Other Linker Flags」に、「-all_load」を追加

 以上で、エージェントをバンドルしたアプリを起動できるはずです。初めてiOSシミュレーターで実行するとき、「ネットワーク受信許可」を確認するダイアログが出る場合(お使いのOSによります)、「許可」をクリックしてください。デモアプリとMonkeyTalkが通信するための許可が必要です。

Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

Test & Tools 鬮ォ�ェ陋滂ソス�ス�コ闕オ譁溷クキ�ケ譎「�ス�ウ驛「�ァ�ス�ュ驛「譎「�ス�ウ驛「�ァ�ス�ー

髫エ蟷「�ス�ャ髫エ魃会スス�・髫エ蟶キ�」�ッ闖ォ�」

注目のテーマ

4AI by @IT - AIを作り、動かし、守り、生かす
Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。