BasicとDesktopレコーディングのたった1つの違い

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る
BasicレコーディングとDesktopレコーディングの違い

 

レコーティング(Recording)機能は、簡単に操作をアクティビティ化でき、また面倒なセレクタの設定も自動でやってくれる非常に便利な機能です。

ただ、レコーディング機能を使っているうちに、WebやCitrixは何となく分かるけど、BasicとDesktopは何が違うの?と疑問を持った事はないでしょうか。「Basic」と「Desktop」レコーディングを使い分けられていますか?

今回は4つあるレコーディングモードのうち、「Basic」と「Desktop」の違いに焦点を絞って解説します。

BasicとDesktopの違い

「Basic」と「Desktop」レコーディングの違いについて公式ドキュメントを確認してみました。

Basic (ベーシック) – アクティビティごとに全体セレクターを生成し、コンテナーは生成しません。結果として得られるオートメーションはコンテナーを使用するオートメーションより遅くなります。単一のアクティビティの場合に適しています。

Desktop (デスクトップ) – あらゆる種類のデスクトップアプリケーションと複数のアクションの場合に適しています。ベーシックレコーダーより高速で、アクティビティを取り込むコンテナー (およびトップレベルウィンドウのセレクター) を生成し、アクティビティごとに部分セレクターを生成します。

レコーディングの種類(https://studio.uipath.com/docs/about-recording-types)

翻訳の問題もあるかもしれませんが、専門的な言葉が並んでいて正直少し分かりづらいですね。以下でもう少し詳しく説明します。

違いはセレクタの作成方法

この2つのレコーディングで異なるのは「セレクタの作成方法」が違うという点です。

セレクタとは、「クリック等の操作をする際に、どのウインドウの、どの部分に対して行うか」をUiPathに伝えるためのものです。

Windows上のアプリケーションは、画面サイズの変更やファイル名を指定して保存するだけでも変わってしまうため、複数のPCで同じ様に操作できなければ自動化はできません。

セレクタがあることにより、画面サイズが変わっても、ウインドウの名称が変わっても同じ画面を対象として操作することができます。PC上の様々な要素を自由に操作できるものセレクタのおかげなのです。

セレクタの説明補足画像

全体セレクタと部分セレクタ

公式ドキュメントでは、Basicレコーディングは「全体セレクタ」を生成し、Desktopレコーディングは「部分セレクタ」を生成する、としています。

これはどういう事かというと、Basicレコーディングでは全てのセレクタをアクティビティ毎に作ります。一方、Desktopレコーディングでは、最初に対象ウインドウのセレクタを作り、後続の操作では同じウインドウ内での操作であるとして、ウインドウのセレクタは無視します。

まとめると以下のようになります。

  • Basicはアクティビティ毎に何度もセレクタを作り直す。
  • Desktopは最初にウインドウのセレクタを作り、そのセレクタを再利用する。

Basicの全体セレクタ。1行目がエクセルウインドウのセレクタ。これをアクティビティ毎に生成する。

Basicレコーディングで生成された全体セレクタ

Desktopの部分セレクタ。エクセルウインドウのセレクタが存在しない。

Desktopレコーディングで生成された部分セレクタ

コンテナーとはなお公式ドキュメントにある、Desktopレコーディングで作成されるコンテナーとは、「Attach Window」アクティビティの事で、この中に含まれるアクティビティは同一のウインドウで操作するという意味になります。つまり、ウィンドウが変わればコンテナーも新たに作成されます。

セレクタの作り方が違うと何が変わるの?

セレクタの作り方が違うだけで何が変わるの?と思う方もいるかもしれません。

例えばBasicレコーディングはアクティビティ毎に「全てのセレクタを作り出す」ため、アプリケーションが複数あっても位置を正しく判断できる反面、何度もセレクタを作り直すため、その分処理速度が落ちます。

Desktopレコーディングは最初にウインドウのセレクタを作り、そのセレクタを再利用するため、速度はBasicと比べると早い(といわれています)反面、複数のアプリケーションをまたぐ操作は得意ではありません。

そのため、BasicとDesktopレコーディングの使い分けは、以下のように対象画面数と操作数(アクティビティ数)で判断するとよいでしょう。

画面画面内操作モード
複数少ないBasic
単数多いDesktop
単数少ないBasic
複数多い状況によって※

※画面数も多く、その中で行われる操作も多い場合は、対象ごとに処理を分けた方が良いと思います。

実行速度を測定してみる

速度に違いがあるといっても実際にどの程度違うのか、BasicとDesktopレコーディングで計測してみました。

測定方法

対象

エクセルのリボンにある、「ホーム」「挿入」「ページレイアウト」「数式」「データ」「校閲」「表示」「開発」の8つのタブを順にクリックする処理をレコーディング機能を使って作成する。

計測方法

ログに出力される、開始時間と終了時間の差を処理時間とする。

ログに出力される開始時間と終了時間

処理時間結果

UiPath Studioで実行した場合の処理結果です。

basicレコーティングの結果(平均:5.904秒)

#開始時間終了時間
112:07:12.39112:07:18.2805.889
212:12:16.98812:12:22.8985.910
312:13:19.01812:13:24.9665.948
412:13:48.34212:13:54.2545.912
512:14:14.59212:14:20.5445.952
612:14:40.73612:14:46.6065.870
712:15:04.04712:15:09.9225.875
812:15:28.25712:15:34.1645.907
912:15:51.97612:15:57.8645.888
1012:16:14.93212:16:20.8175.885
 平均5.904

Desktopレコーティングの結果(平均:5.899秒)

#開始時間終了時間
112:08:00.91412:08:06.9075.993
212:16:56.62212:17:02.5435.921
312:17:22.78412:17:28.6225.838
412:17:47.83612:17:53.7715.935
512:18:13.52312:18:19.4485.925
612:18:38.74412:18:44.6055.861
712:19:03.98712:19:09.8645.877
812:19:31.94212:19:37.8435.901
912:19:56.14212:20:02.0015.859
1012:20:19.57312:20:25.4485.875
 平均5.899

せっかくなのでもう少し調査してみました。

Desktopレコーディングではウインドウセレクタを生成しないとのことなので、下図の通りエクセルタブの名称だけ残して他のセレクタを削除してみました。

Desktopレコーディングで生成されたセレクタをタブ名を除いて削除

セレクタの削除(平均:6.049秒)

同じように10回実行してみたところ、かえって遅くなってしまいました。恐らく、それぞれタブの名称を画面内から探す必要が出てしまい遅くなっているのだと思われます。

#開始時間終了時間
116:32:12.19516:32:18.2306.035
216:32:53.21316:32:59.2876.074
316:33:23.64816:33:29.7076.059
416:33:53.40916:33:59.4706.061
516:34:32.33116:34:38.3856.054
616:35:02.89716:35:08.8885.991
716:35:35.98416:35:42.0376.053
816:36:37.07416:36:43.1366.062
916:37:21.58216:37:27.6026.020
1016:37:48.05016:37:54.1326.082
 平均6.049

Indexにしてみた結果(平均:5.862)

それならばと、本件の趣旨とは少しずれますが、タブ名での指定をIndex指定にしたところ少し早くなることが確認できました。

タブ名部をIndex表記に変更したセレクタ

#開始時間終了時間
116:44:18.74216:44:24.5745.832
216:45:27.98216:45:33.8575.875
316:46:01.65816:46:07.5145.856
416:46:32.20616:46:38.0695.863
516:46:58.23316:47:04.0725.839
616:47:32.53916:47:38.4125.873
716:47:57.52616:48:03.3765.850
816:48:23.37616:48:29.2715.895
916:48:48.46916:48:54.3605.891
1016:49:13.11216:49:18.9595.847
 平均5.862

アクティビティ数が8つと少ないことや、試行回数も少ないためあまり差異はでていません。この差を大きいとみるか小さいとみるかは、プロジェクトの内容や開発者によって異なりそうですね。

まとめ

BasicレコーティングとDesktopレコーディングではセレクタの作成方法が異なるため、対象とする画面の数やアクティビティの数で使い分けていきましょう。
また少数のアクティビティではそれほど速度の違いはありませんが、大量かつ深いセレクタの場合は目に見える差が出るかもしれませんね。

 

 

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

SNSでもご購読できます。