#6ではLT枠で発表させて頂きました。今回は発表で紹介したrecordVideoについての補足と、UIテストを録画する方法を改めて紹介したいと思います。以後の内容についての動作確認は以下の環境で行いました。ioに含まれるiOSシミュレータの画面を録画するツールです。8.2より追加された機能です。使い方はシンプルで、iOSシミュレータを立ち上げてから以下のコマンドを実行するだけです。./test.mov実行するとプロセスが立ち上がり、録画が開始されます。録画の終了はctrl+cです。上記のコマンド中のbootedは「起動しているシミュレータ」という意味になります。以下のようにシミュレータのUDIDを指定することも可能です。5sのシミュレータのものです。--helpで確認することができます。recordVideoでUIテストの様子を録画するrecordVideoを使ってiOSシミュレータの画面を録画することができたので、次はUIテストの開始と終了に合わせて自動的に録画の開始と終了を実行させてみましょう。今回は以下のシェルスクリプトを作成して簡単に制御してみました。$PIDこれだけでテストの起動と終了に合わせて録画ができるようになりました。RSpecと組み合わせるテストに合わせて録画することはできましたが、以下の点をまだ改良できそうです録画するiOSシミュレータの指定がbootedなので複数のシミュレータが起動している場合は選択できない。RSpecでのテストに組み込むためのコードをRubyで書いてみました。終了に時間がかかる場合があるので待つ。endendRecorderクラスはrecordVideoを扱いやすくするためのクラスです。start()とstop()で録画をコントロールするのと、Appiumのdriverから録画するシミュレータを特定しています。listを組み合わせて実現しています。driverのcapabilityからdeviceName(端末名)とplatformVersion(iOSのバージョン)を取り出します。listの実行結果にはシミュレータのUDIDが含まれているので、先程のdeviceNameとplatformVersionと照合することによりUDIDを得ることができます。次はRecorderクラスを実際に使用するコードです。RSpecを使う場合には共通処理をヘルパーとしてテスト本体とは分離することが多いと思いますので、そこに組み込みます。endendRSpecはRSpec.configureでbefore(:each)とafter(:each)に処理を仕込むことが可能なのでこれを利用しています。before(:each)で録画を開始し、after(:each)で録画を終了することでテストケース毎に録画を分割しています。テストケースが無事に成功した場合には動画を削除することで、失敗したテストケースの動画だけがscreenshot/のディレクトリに最終的に残ります。必要な処理はこれだけで、実際のテストケースを書くファイルには対応は不要です。デモ録画した動画のデモです。実際のUIテストはこの前後に別のテストケースが実行されており、失敗したこのテストケースの部分だけ動画が保存されます。5sのシミュレータで録画したものであり、25秒の動画で4.5MBのサイズでした。#6で発表したLTの補足という形でrecordVideoの紹介と、UIテストの様子を録画するTipsを紹介させて頂きました。RSpecでのUIテストと組み合わせてみましたが、recordVideo自体はRubyやAppiumに依存するツールではないため他にも活用方法が考えられると思います。UIテストハンズオンを実施しましたこんにちは。SWETグループの外山(@sumio_tym)です。先日、社...2018-11-05本日(11/5)販売開始:書籍「Androidテスト全書」のUIテスト部分を執筆しましたこんにちは。SWETの外山(@sumio_tym)です。Nightを立ち上げたSWETの@tarapoです。2017の第18日目で...2017-11-13Bluepillを導入してiOSのUIテスト実行を並列化するはじめまして、SWETグループの細沼(@tobi462)です。(1)リンクプライバシーポリシースターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。