#はじめに
PDFファイルを見た目で比較するソリューションです。差分がわかる下記の様なPDFファイルも出力します。
そもそもの切っ掛けは、テスト自動化における帳票出力の結果を回帰テストにより、自動判定したいがために作ったソリューションです。ですので、下記の記事の続編にもなります。更に用途としてシステムのアップグレードの際の帳票出力の現新比較自動化でも使えそうです。
PDF比較ツールとしても使えそうな気がしたので、UiPathマーケットプレースにもワークフローの公開を申請中です。公開されたら、ここにダウンロード先をリンクする予定です。
#作りを解説する前に
いくつかの依存関係が存在します。下記のパッケージのインストールが必要です。尚、マーケットプレースでの提供のものが含まれます。
#処理概要
2つのPDFファイルを各ページ単位で画像に変換して比較します。比較した結果の差分は再度PDFファイルに変換して提供します。
ざっくり、主要な処理は下記の通りです。
①2つのPDFファイルページ数を取得します。
②ページ数分、下記③~⑤の処理を繰り返します。
③2つのPDFファイルを各ページ単位で画像ファイルに変換します。
④画像変換したファイルを比較します。
⑤比較した結果の差分画像ファイルをPDFに変換します。
⑥最後にページ単位の差分のPDFファイルを結合して一つのPDFファイルにまとめます。
#ワークフローファイル
テスト自動化でも、便利ツールでも両方使える様に下記の様なインターフェースを持つワークフローで作成しています。
<パラメータ>
in_Filename1:比較する対象のPDFファイル。フルパスで指定します。
in_Filename2:比較する対象の2つ目のPDFファイル。フルパスで指定します。
out_Unmatch:一致していた場合はFalse、不一致の場合はTrueが格納されます。
in_OutputFilename:指定したファイル名で差分確認できるPDFファイルを出力します。フルパスで指定します。
#テスト自動化で利用する
2つのPDFファイルのうち、1つ目は期待するPDFファイルで、事前にストレージバケットに格納したPDFファイルをローカルにダウンロードしたもの。冒頭で記載した「UiPath Action CenterのFormsにPDFを埋め込む - 出力帳票を目視で合否判定」の続編と言うことですね。
2つ目のPDFファイルは、テスト実行で、ロボット操作により帳票出力したPDFファイルとなります。テストコードでは本ワーフローを呼び出し、比較の結果を下図の様に検証アクティビティで検証します。差異がある場合は、「ドキュメントを添付」アクティビティで差分のわかるPDFファイルを実行中のテストケースにアップロードしておくと後で確認する時に便利です。
#おわりに
ソリューションと書きながら、たったこれだけで実現できちゃいました(笑)
UiPathの豊富なアクティビティがあってこそ成せる技ですね。UiPath Activitiesガイドのアクティビティ数が現在、約1500で、マーケットプレースには、それ以上あります。ほしいアクティビティを探したら、だいたい見つかったりしますので、アイデアとノウハウ次第で、まだまだ色んなソリューションが作れそうです!