>  > アクティー バン HH3 HH4 LEDヘッドライト H4 Hi/Lo 信玄 XR 車検対応 2年保証
DUNLOP ダンロップ エナセーブ EC204 ENASAVE サマータイヤ 225/50R18 MANARAY EUROSPEED ユーロスピード G10 ホイールセット 4本 18インチ 18 X 8 +35 5穴 114.3

アクティー バン HH3 HH4 LEDヘッドライト H4 Hi/Lo 信玄 XR 車検対応 2年保証

アクティー バン HH3 HH4 LEDヘッドライト H4 Hi/Lo 信玄 XR RACING 車検対応 2年保証 ■アクレブレーキパッド

HeadSpinでモバイルアプリのテスト・モニタリングはどう変わるか

メルカリの自動化&品質保証グループ(Automation & QA Group:通称AQA)の tadashi0713 です。

私は普段、テスト自動化・CI / CD 改善・その他社内の生産性を上げるための自動化を行っています。

今回は社内で HeadSpinというサービスをトライアルしてみたので、サービス自体やその感想についてご紹介したいと思います。

HeadSpinとは

HeadSpinはモバイルアプリのパフォーマンスをモニタリングする環境として 【1年保証】【新品】【最短当日発送】RX-8ラジエーター SE3P M/T (N3H1-15-200C)、デバイスファーム・自動テスト実行環境・モニタリングをノンストップで提供しているサービスです。

多様なネットワーク、ロケーション、デバイスを使い、お客さまが使う状況に近い形でパフォーマンスのテストを行うことができます。

www.headspin.io

jp.techcrunch.com

モチベーション

メルカリでは、iOS / AndroidのUIテスト自動化を行なっています。

これらのテストは本番環境に対してではなく 、検証環境に対して行なっています。

そのため、本番環境に対するテスト(主にリリース前 / 後)は現状手動で行なっています。

将来的にはこの本番環境に対するテストも自動化していきたいというモチベーションがあり、HeadSpinを使うことによってこれらを簡単に、かつお客さまが使う状況に近い形でテストできるのではないかと考えました。

具体的には

  • 実機を利用する
  • 4Gなどのネットワークを利用する
  • 東京などのロケーションで利用する

またHeadSpinを使うと、本番環境でのパフォーマンスモニタリングもできるため、それらを活用したエンジニアへのフィードバックもできるのではと考えました。

HeadSpinの主な機能

デバイスファーム

HeadSpinでは様々なロケーション・ネットワークの端末がデバイスファームとして用意されており、それらをWebUI上でコントロールすることができます。

AndroidはOSSツールの Open STF をベースに作られており、同じ操作性でコントロールすることができます。

またHeadSpinはiOSにも対応しているところが特徴的で、画面操作やアプリインストール、スクリーンショット撮影や画面回転などがWebUI上から可能です。

HeadSpin上でのiOSのデバイスコントロール画面(デモ環境)

自動テスト実行環境

HeadSpinでは上記のデバイスに対して簡単に自動テストを実行させることができます。

Appium / Espresso / XCTest / EarlGray などのテストフレームワークがサポートされています(詳細はこちら)

今回のトライアルでは 『アルト』 純正 HA36S サイドシルスカッフ パーツ スズキ純正部品 ステップ 保護 プレート alto オプション アクセサリー 用品、iOS/ Android どちらともAppiumを利用しました。

Appiumの場合には、HeadSpin上に表示されるWeb Driver URLとCapabilitiesを指定することで、指定のデバイスでテストを実行させることができます。

HeadSpin上で表示される、Appiumの設定画面(デモ環境)

# Rubyでのサンプルコード
def desired_caps
 {
  

バン HH3 Hi/Lo XR HH4 2年保証 XR 車検対応 LEDヘッドライト アクティー 2年保証 信玄 H4

caps: { platformName: 'iOS', deviceName: 'iPhone', automationName: 'XCUITest', udid: ENV['HEADSPIN_UDID'], bundleId: ENV['BUNDLE_ID'], }, appium_lib: { server_url: ENV['HEADSPIN_URL'] } } end Capybara.register_driver(:appium) do |app| Appium::Capybara::Driver.new app, desired_caps end

またAppiumの場合、AppiumサーバーはHeadSpin側で提供されています。

そのため、Appiumをローカル環境やCI環境でインストールする必要がありません。

それによって、今回の場合はRubyの実行環境のみ必要になったので、CircleCIを使って定期的にテスト実行できる環境を簡単に作ることができました。

version: 2.1
orbs:
 ruby-orbs: sue445/ruby-orbs@volatile
jobs:
 test:
 docker:
 - image: circleci/ruby:2.5.3
 steps:
 - checkout
 - ruby-orbs/bundle-install
 - run: bundle exec rspec
workflows:
 version: 2.1
 hourly_test:
 triggers:
 - schedule:
 cron: "0 * * * *"
 filters:
 branches:
 only:
 - master
 jobs:
 - test


また、AppiumのGUIツールであるAppium Desktopでも、HeadSpinのデバイスと簡単に接続することができます。

tech.mercari.com

Appium DesktopでのHeadSpin接続画面

パフォーマンスモニタリング

WebUI上でのデバイス操作や、自動テスト実行によるパフォーマンスは、Sessionとして記録することができます。

それぞれのSessionのUIでは、フレームレートやCPUなどのデバイスのパフォーマンスと、APIやCDNへのレスポンスタイムなどを見ることができます。

HeadSpin上でのSessionUI(デモ環境)

Sessionに記録しているタイミングで動画も記録されているため、具体的にどの部分・操作でそのパフォーマンスが出ているかは直感的に見つけることができます。

また、これらのデータをHeadSpin側で提供されているDBに格納することができます。

このDBをGrafanaやLookerなどのBIツールと連携することによって、継続的にモニタリングすることができます。

Grafanaを使ったダッシュボード

感想

ここからは実際のトライアルを元にした私の感想です。

SDKを入れる必要がない安心感

HeadSpinを使うに当たっては、アプリケーションに別途SDKなどを入れる必要はありません。

SDKを入れたことによる思わぬ不具合やパフォーマンス低下などを心配する必要がないのは、導入するに当たってハードルが低く感じました。

iOSのデバイスファーム・テスト実行環境・パフォーマンスツールとしての独自性

先ほども書いた通り、AndroidにはOSSツールとしてOpen STFがありますが、iOS版はありませんでした。

HeadSpinではiOSのデバイスファームとしてだけではなく、テスト実行環境・パフォーマンスツールまでノンストップで提供されています。

テスト実行環境をある程度任せられる

先ほども書いた通り、Appiumなどのテスト実行環境などをHeadSpinに任せることができるため、自分たちがメンテナンスしないといけない部分はかなり少ないと感じました。

また、デバイスを操作するためのadb・ideviceコマンドもHeadSpinのAPI経由で呼び出すことができるため、柔軟性が高い印象を受けました。

何をモニタリングし、

、どのエンジニアにフィードバックするか

これは私たちの中でも悩んだ部分でした。

当初はパフォーマンスに関しては主にモバイルエンジニア(iOS / Android)向けにフィードバックする想定でした。

しかしHeadSpinでは tanabe タナベ ストラットタワーバー フロント用 イスト NCP65 1NZ-FE 2002/05~2007/06 送料1620円(税込) ※北海道・沖縄・離島は送料別途、外側からネットワークなども含めたパフォーマンスを測るため、モバイルアプリケーションのコードレベルでフィードバックできるものではありません。

モバイルアプリケーションのみのフィードバックをしたい場合には、一工夫したり別のツールと組み合わせる必要が出て来るかと思います。

逆に言うと 日立 イグニッションコイル ホンダ バモス、HeadSpinではお客さまが実際に使う状況で、APIやCDNへのレスポンスタイムを含めたトータルのパフォーマンスを計測することができます。

これによって、モバイルエンジニアだけでなくバックエンドエンジニア・SREエンジニアなどに価値ある情報・フィードバックを提供できるかもしれません。

まとめ

メルカリだと Playz PX(プレイズ) PX-RV 245/40R19 98W XL、特にJP版はサービスとしての規模も大きくなり、様々なお客さまが快適に使ってもらう重要性は高くなっていると考えています。

その中で、実際にお客さまが使う状況でアプリケーションがどのようなパフォーマンスへの影響が出ているのかは重要な情報です。

すぐに効果が出るものではありませんが、HeadSpinで得られた情報・フィードバックを元にお客さま体験を向上させるためのアクションが取れていければと思います。