2019」1日目の記事です。13における実行性能の劣化問題を調べていた時に知ったことです。内容はこのissueの一部です。Appiumの実行形態とその実行性能Appiumは基本的には中間サーバとしてテストケースとテスト対象の操作を仲介します。ある利用者がテストケースを特定の開発言語なりで記述、実行するとします。そのテストケース実行系の中でAppiumサーバに対してHTTPリクエストを送出し、リクエストを受け取ったAppiumサーバーは自身が管理する実行端末上で動作するサーバーに対して操作を要求したり、自身で端末を直接操作します。その操作結果をテストケース実行系に対して返信します。この一連の流れが1つのセットとなり、Appiumのもつ個々の操作が行われます。1つのAppiumのコマンド実行時間には、HTTP通信の往復時間が必ずオーバーヘッドとして存在することになります。実行系全体が同一端末に存在する場合、その時間はごく僅かであることが多いです。物理的に異なる環境でテストケースの実行元と実行環境が離れている場合、そのHTTPリクエストにかかる時間は秒単位で大きくなる可能性もあります。Driverと表現する実行系があります。Appiumは中間サーバとして機能すると先ほど述べました。Appium自体はその実行端末を操作する側の実装があれば、様々な端末を対象に同様のコマンド実行を実現できます。Driver、WindowではWinAppDriverなど存在します。