Seleniumなどのテスト自動化ツールはWebアプリケーションのテストに主眼をおいているため、ブラウザの操作に特化しているものが多く、また比較的プログラミングが必要なケースが多くなっています。

RPAツールであるWinActorを使えば、エクセル操作、ブラウザ操作、Outlook操作など、複数アプリケーションを連動させた自動化が可能であり、かつプログラミングスキルも不要ですので、システムのユーザ自らが自動化に挑戦することも可能です。

今回はSeleniumとRPAの位置づけの違いをまずつかんでいただき、どういったシーンで使われ、どういったプログラミングが必要となってくるかをご理解いただきます。その後、WinActorのインストールから基本的なキャプチャ&リプレイのやり方を紹介します。

細かな設定についても、プログラミングレスのGUI操作のみでどういったことができるのかをご理解いただきます。

開発者目線と利用者目線のアプローチの違い

ウォーターフォールモデルでいうところの結合試験工程では、Webアプリケーションの開発者はIE/Chrome/Firefox/Safariといった複数のブラウザの動作を手作業の打鍵により確認します。ブラウザごとにこうした作業を繰り返すのは非効率的であり、仕様変更や対応ブラウザの追加のたびにさらに同じ作業を強いられていました。

開発におけるこうした作業を自動化するために使われているのがSeleniumなどの機能テスト自動化ツールです。例えばSeleniumでは、Selenium IDEを使ってキャプチャ&リプレイが可能です。ただし、画面のプログラムソースの構造であるDOMツリーの操作をプログラミングするなど、あくまで開発者目線のツールとなっています。

システム化するための開発工程を対象にしてきたテスト自動化ツールに対し、RPAは開発の枠を飛び越え、むしろシステム化対象外の部分にフォーカスしています。類似システムとしては、皆さん馴染みの深いワークフローシステムが挙げられます。業務フロー全体を俯瞰し、これまでシステム化対象とされている作業と作業の間のシステム化対象外の部分のステータスを管理しようとしている点が共通していると言えるでしょう。

図1 : Seleniumなどの機能テスト自動化ツールとRPAとのアプローチの違い

WinActorを動かしてみる

それでは、WinActorに触れながら、RPAを体感していただきましょう。

WinActorは、NTTデータが提供する有償ツールですが、わかりやすいので例に用います。

以下、IEの作業をキャプチャ&リプレイしてみます。開発におけるテスト工程にてSelenium IDE等を使ってテスト自動化を実施したことがある方であれば、イメージが付きやすいはずです。

なお、導入作業は、インストールウィザードに従って進めれば完了しますので、ここでは割愛します。

WinActorは、デスクトップアプリケーションなので、アイコンをダブルクリックして起動します。

図2 : WinActorの起動

WinActorの画面が起動しました。ここでは評価版ライセンスで試しているので、通知が出ますが[OK]をクリックして進めます。WinActorは複数の画面で構成されていることがわかります。

図3 : WinActorのウィンドウ群

フローチャートが描かれているウィンドウに、パソコン上で実行したいテキスト入力やクリック処理などを配置します。

試しにヤフーの画面において検索する処理を、キャプチャし、自動実行する処理を作成しましょう。

インターネットエクスプローラを起動し、 [https://www.yahoo.co.jp]にアクセスします。

図4 : https://www.yahoo.co.jp にアクセス

[記録対象アプリケーションを選択]ボタンをクリックし、上記ブラウザを選択します。

図5 : 記録対象アプリケーションの選択

[記録:IE]ボタンをクリックします。

図6 : 記録(キャプチャ)開始

[sample]と入力し、[検索]をクリックします。

図7 : 検索処理のキャプチャ

検索結果が表示されました。

図8 : 検索結果

[停止]をクリックします。

図9 : 記録(キャプチャ)の停止

[フローチャート]ウィンドウに先ほど操作した内容が記録されました。

図10 : キャプチャ結果

ブラウザの[戻る]ボタンをクリックし、Yahoo! JAPANのトップページに戻った状態で、[実行]ボタンをクリックします。先ほど記録した操作が自動実行されます。

図11 : 記録(キャプチャ)した処理の実行

ルーチン(繰り返し)作業の実行

RPAが特に威力を発揮するのは、決まりきった繰り返し作業です。CSVを入力として、繰り返し検索してみましょう。

検索した結果を使って次の作業と組み合わせたり、申込みメールを入力に作業したり、業務フローに応じていくらでも組み合せ可能です。

「http://search.nttdata.com/ja_all/」にて、「検索」テキストボックスに検索語を入力し、「検索」アイコンをクリックするケースを想定します。

図12 : 検索画面

今回は検索語を3つ用意し、3回繰り返し検索するケースを想定します。

以下の通り、列名に「検索語」を、値に[bizrobo],[terasoluna],[visc]を入力し、[検索.csv]として保存します。

図13 : 検索.csvの設定

「変数一覧」ウィンドウにて「検索語」変数をインポートします。「変数一覧」ウィンドウが表示されていない場合は、以下から表示します。

図14 : 変数一覧ウィンドウの表示

「変数一覧」ウィンドウから「変数名インポート」をクリックします。

図15 : 変数名インポート

「検索.csv」を選択します。

図16 : 検索.csvの選択

以下の通り、インポートする変数名を確認し、OKをクリックします。

図17 : 「検索語」変数のインポート

作成した変数を設定します。

「文字列設定(IE)」をダブルクリックします。

図18 : 「文字列設定(IE)」の設定

「ウィンドウ識別名」右横のアイコンを選択し、先ほど立ち上げたブラウザを選択します。「対象コントロール設定」右横のアイコンを選択し、ブラウザ内の「検索テキストボックス」(図12)を選択します。「設定値」に「検索語」を選択し、「OK」をクリックします。

図19 : 「検索テキストボックス」の設定

「データ一覧」ウィンドウにおいてデータをインポートします。「データ一覧」ウィンドウが表示されていない場合は、以下から表示します。

図20 : 「データ一覧」ウィンドウの表示

「データインポート」をクリックします。

図21 : データインポート

「検索.csv」をクリックします。

図22 : 「検索.csv」の選択

「クリック(IE)」をダブルクリックします。

図23 : 「クリック(IE)」の設定

先ほどと同様「ウィンドウ識別名」右横のアイコンを選択し、先ほど立ち上げたブラウザを選択します。「対象コントロール設定」右横のアイコンを選択し、ブラウザ内の「検索アイコン」(図12)を選択します。

図24 : 「検索アイコン」の設定

実行ボタンをクリックします。

図25 : 処理の実行

設定された検索語を使って繰り返し検索されます。

図26 : 実行結果

裏側の仕組み

ここまで読み進めていただいた読者の皆様の中で、いくらプログラミング不要といっても、プログラミングにより自動化を行ってみたい、そもそも裏側の仕組みが知りたいと思った方はいらっしゃるのではないでしょうか?

WinActorは非常に優れたユーザインタフェースを誇っているため、GUI操作のみでほとんどの自動化が実現可能です。詳細設定タブをクリックすることで、Winactorが裏側でHTMLのDOMツリーをどのように識別しているかを確認することができます。

この例ですと、inputタグのframe indexが0でtag indexが2のタグを識別します。

図27 : テキストボックスの識別

さらには、「スクリプト実行」ノードを使うと、VBScriptにてプログラミングすることも可能です。

図28 : 「スクリプト実行」ノード

*  *  *

今回はSeleniumなどのテスト自動化との違いをつかみ、プログラミングレスで自動化可能であることを学んでいただきました。

CSVのインプットデータを与えることで繰り返し操作を実現でき、また簡単な操作で分岐も実現できます。ブラウザのみならず、エクセルやコマンドを組み合わせて利用することで、より一層効果を発揮できます。

UiPathやWorkFusionといった無料で使えるRPAツールも出てきていますので、読者の皆様の職場などで一度試してみてはいかがでしょうか。

著者紹介


正野 勇嗣 (SHONO Yuji ) - NTTデータ シニアスペシャリスト

2011年頃まで開発自動化技術のR&Dに従事。その後、開発プロジェクト支援やトラブルシューティング等に主戦場を移す。「ソースコード自動生成」に加えて、JenkinsやMaven等の「ビルド自動化」、JsTestDriverやSelenium等の「テスト自動化」を扱うようになり、多様化する開発自動化技術動向に興味。

最近は第四の自動化であるInfrastructure as Code等の「基盤自動化」の魅力に惹かれている。開発自動化技術に関する雑誌・記事執筆も行う。2児のパパ。