Copyright © DeNA Co.,Ltd. All Rights Reserved.
STF と Appium をもちいた
Android アプリの自動テスト
2016/02/06(Sat)
平田 敏之@DeNA
Copyright © DeNA Co.,Ltd. All Rights Reserved.
自己紹介
 平田 敏之
⁃ DeNA (2013/04- )
• 以前はGWの開発・テストやスマホアプリの開発・テストなど
⁃ SWET G 所属
...
Copyright © DeNA Co.,Ltd. All Rights Reserved.
今日の流れ
 Androidアプリの自動テストにおける課題
 Androidアプリの自動テスト / デモ
⁃ Appium
 自動テストの実行環...
Copyright © DeNA Co.,Ltd. All Rights Reserved.
Androidアプリの自動テストにおける課題
 自動テストに何を使うか?
⁃ 最近は選択肢が増えており用途に応じて使い分けるのが良い
 自動テスト...
Copyright © DeNA Co.,Ltd. All Rights Reserved.
Androidアプリの自動テスト
 自動テスト書いていますか?
 何を使っていますか?
Copyright © DeNA Co.,Ltd. All Rights Reserved.
Androidアプリの自動テスト
 JUnit4
 Robolectric
 Espresso
 UI Automator
 Appium
Copyright © DeNA Co.,Ltd. All Rights Reserved.
Appium
Appium Client
Test Script
(Ruby / Java etc)
Appium Server
(node)
UI ...
Copyright © DeNA Co.,Ltd. All Rights Reserved.
Appium / サンプルアプリ
サンプルコード(Ruby w/appium_lib)
- button("com.thirata.appium_sa...
Copyright © DeNA Co.,Ltd. All Rights Reserved.
Appium / デモ(MERY)
世に出ているアプリでの動作例
• 対象アプリMERY
• テストケース
• loginをしてusernameを確認...
Copyright © DeNA Co.,Ltd. All Rights Reserved.
自動テストの実行環境
 自動テストを動かす環境どうしてますか?
 手元で動かしていますか?
 Jenkinsで動かしていても制約がありませんか?...
Copyright © DeNA Co.,Ltd. All Rights Reserved.
STF(Smartphone Test Farm) / Device Farm
 ブラウザから端末を操作することができる
 リモートデバッグができ...
Copyright © DeNA Co.,Ltd. All Rights Reserved.
STF / デモ
デモ動画
Copyright © DeNA Co.,Ltd. All Rights Reserved.
STFの新機能@2.0.0
 自動テストでの利用も考え、APIを追加。
⁃ 端末のstatus(利用中 / オンライン etc)が取得/変更可能
⁃...
Copyright © DeNA Co.,Ltd. All Rights Reserved.
STF / APIサンプル
 GET /api/v1/devices (端末一覧)
Curl Sample
curl -H "Authorizati...
Copyright © DeNA Co.,Ltd. All Rights Reserved.
デモ / STF + Jenkins + Appium + Docker
デモ動画
Copyright © DeNA Co.,Ltd. All Rights Reserved.
まとめ
 Androidアプリの自動テストは
⁃ STF + Jenkins + Appium + Docker
 是非、STF@2.0.0のAP...
Copyright © DeNA Co.,Ltd. All Rights Reserved.
最後に
さらに先に進むために
 SWET Gは人材を募集しております!!
⁃ (特に)クライアント周りをがっつりやりたい人
は是非!
Upcoming SlideShare
Loading in …5
×

STFとAppiumをもちいたAndroidアプリの自動テスト

114
-1

Published on

「第3回 日本Seleniumユーザーコミュニティ勉強会」の発表資料です。
書籍「Selenium実践入門」の執筆時点の課題(の一部)を解決した話です。

実際の発表時にはデモ動画がありましたが、本資料ではありません。

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
114
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • 第3回 日本Seleniumユーザーコミュニティ勉強会
    (注意)デモ動画は全て画像のみとなっております。
  • 全てにidがふられているので、簡単に操作をすることができます。
  • 実機とブラウザから操作したときのdelayをデモ動画で確認。
  • 「STF + Jenkins + Appium + Docker」により「デバイス全て」「特定デバイスのみ」に自動テストをはしらせるということが可能になった。
  • STFとAppiumをもちいたAndroidアプリの自動テスト

    1. 1. Copyright © DeNA Co.,Ltd. All Rights Reserved. STF と Appium をもちいた Android アプリの自動テスト 2016/02/06(Sat) 平田 敏之@DeNA
    2. 2. Copyright © DeNA Co.,Ltd. All Rights Reserved. 自己紹介  平田 敏之 ⁃ DeNA (2013/04- ) • 以前はGWの開発・テストやスマホアプリの開発・テストなど ⁃ SWET G 所属 • Software Engineer in Test ⁃ http://www.slideshare.net/masaki/dena-software-engineer-in-test • 主にスマホアプリ周りを担当
    3. 3. Copyright © DeNA Co.,Ltd. All Rights Reserved. 今日の流れ  Androidアプリの自動テストにおける課題  Androidアプリの自動テスト / デモ ⁃ Appium  自動テストの実行環境 / デモ ⁃ STF + Jenkins  デモ  まとめ
    4. 4. Copyright © DeNA Co.,Ltd. All Rights Reserved. Androidアプリの自動テストにおける課題  自動テストに何を使うか? ⁃ 最近は選択肢が増えており用途に応じて使い分けるのが良い  自動テストを実行する環境のよくある制約 ⁃ テストを実行する環境に端末が接続されてないといけない ⁃ 端末でテストが実行されているかの判断をしないといけない • 「Selenium実践入門」のP365-366にも同様のことを書いています。 [求む] 端末のリモートデバッグ・端末の管理をしてくれるサービス 「特定のメーカーの端末で」「API Level 18以上の端末全て」 に自動テストを実行!とかをしたい!!
    5. 5. Copyright © DeNA Co.,Ltd. All Rights Reserved. Androidアプリの自動テスト  自動テスト書いていますか?  何を使っていますか?
    6. 6. Copyright © DeNA Co.,Ltd. All Rights Reserved. Androidアプリの自動テスト  JUnit4  Robolectric  Espresso  UI Automator  Appium
    7. 7. Copyright © DeNA Co.,Ltd. All Rights Reserved. Appium Appium Client Test Script (Ruby / Java etc) Appium Server (node) UI Automator SmartPhone テスト対象アプリ Architecture  iOS/Androidに対応  Native App/ Hybrid App / Mobile Webに対応 ⁃ アプリが手に入ればOK  Ruby / Java / javascript(node.js) などでテスト コードの記述が可能 ⁃ RspecやJunitなど慣れたTesting Framework を使える
    8. 8. Copyright © DeNA Co.,Ltd. All Rights Reserved. Appium / サンプルアプリ サンプルコード(Ruby w/appium_lib) - button("com.thirata.appium_sample:id/button_sample_1").click - find("com.thirata.appium_sample:id/button_sample_2").click - textfield_exact(com.thirata.appium_sample:id/text_1").type 1 - textfields[1].send_keys("2") Layout (全てにidがふられています) <Button …. android:id=“@+id/button_sample_1” /> <Button …. android:id=“@+id/button_sample_2” /> <EditText …. android:id=“@+id/text_1” /> <EditText …. android:id=“@+id/text_2” /> デモ動画
    9. 9. Copyright © DeNA Co.,Ltd. All Rights Reserved. Appium / デモ(MERY) 世に出ているアプリでの動作例 • 対象アプリMERY • テストケース • loginをしてusernameを確認 デモ動画
    10. 10. Copyright © DeNA Co.,Ltd. All Rights Reserved. 自動テストの実行環境  自動テストを動かす環境どうしてますか?  手元で動かしていますか?  Jenkinsで動かしていても制約がありませんか? ⁃ 端末が全てJenkinsに接続されている。 ⁃ 自動テストを実行する端末を固定化している。
    11. 11. Copyright © DeNA Co.,Ltd. All Rights Reserved. STF(Smartphone Test Farm) / Device Farm  ブラウザから端末を操作することができる  リモートデバッグができる etc etc
    12. 12. Copyright © DeNA Co.,Ltd. All Rights Reserved. STF / デモ デモ動画
    13. 13. Copyright © DeNA Co.,Ltd. All Rights Reserved. STFの新機能@2.0.0  自動テストでの利用も考え、APIを追加。 ⁃ 端末のstatus(利用中 / オンライン etc)が取得/変更可能 ⁃ 端末の情報(OS / Model etc)が取得可能
    14. 14. Copyright © DeNA Co.,Ltd. All Rights Reserved. STF / APIサンプル  GET /api/v1/devices (端末一覧) Curl Sample curl -H "Authorization: Bearer OAUTH-TOKEN" https://stf.example.org/api/v1/devices Response Sample {"success":true,"devices":[{"abi":"armeabi- v7a","airplaneMode":false,"battery":{"health":"good","level":100,"scale":100,"source":"usb","status":"full","temp":27. 6,"voltage":4.348},"browser":{"apps":[{"id":"com.android.chrome/com.google.android.apps.chrome.Main","name":"C hrome","selected":true,"system":true,"type":"chrome","developer":"Google Inc."}],"selected":true},"channel":"d7V3Zoo5B2Kc6MdCrbsvcBABG+w=","createdAt":"2016-01- 26T11:29:20.444Z","display":{"density":3,"fps":60,"height":1920,"id":0,"rotation":0,"secure":true,"size":4.97124767 3034668,"url":"ws://localhost:7400","width":1080,"xdpi":442.45098876953125,"ydpi":443.3450012207031,"inches" :5},"manufacturer":"LGE","model":"Nexus 5","network":{"connected":true,"failover":false,"roaming":false,"subtype":"","type":"WIFI"},"operator":null,"owner":n ull,"phone":{"iccid":null,"imei":"359250051959219","network":"UNKNOWN","phoneNumber":null},"platform":"Androi d","presenceChangedAt":"2016-02- 01T03:36:13.365Z","present":true,"product":"hammerhead","provider":{"channel":"xxxxxx","name":"xxxxxx"},"ready ":true,"remoteConnect":false,"remoteConnectUrl":null,"reverseForwards":[],"sdk":"19","serial":"xxxxx","status":3,"sta tusChangedAt":"2016-02-01T03:36:13.216Z","version":"4.4.2","name":"Nexus 5","releasedAt":"2013-11- 14T15:00:00.000Z","image":"Nexus_5.jpg","cpu":{"cores":4,"freq":2.26,"name":"Qualcomm Snapdragon 800 MSM8974"},"memory":{"ram":2048,"rom":32768},"using":false}]} https://github.com/openstf/stf/blob/2.0.0/doc/API.md
    15. 15. Copyright © DeNA Co.,Ltd. All Rights Reserved. デモ / STF + Jenkins + Appium + Docker デモ動画
    16. 16. Copyright © DeNA Co.,Ltd. All Rights Reserved. まとめ  Androidアプリの自動テストは ⁃ STF + Jenkins + Appium + Docker  是非、STF@2.0.0のAPIをご利用ください!  STF用のJenkins pluginを現在開発中です。 ⁃ 公開をお待ち下さい!! 開発中
    17. 17. Copyright © DeNA Co.,Ltd. All Rights Reserved. 最後に さらに先に進むために  SWET Gは人材を募集しております!! ⁃ (特に)クライアント周りをがっつりやりたい人 は是非!
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×