LoginSignup
9
4

More than 1 year has passed since last update.

UiPathでPDFファイルを見た目で比較するソリューションを作ってみた! -差分がわかるPDFを出力

Last updated at Posted at 2022-01-03

はじめに

PDFファイルを見た目で比較するソリューションです。差分がわかる下記の様なPDFファイルも出力します。

そもそもの切っ掛けは、テスト自動化における帳票出力の結果を回帰テストにより、自動判定したいがために作ったソリューションです。ですので、下記の記事の続編にもなります。更に用途としてシステムのアップグレードの際の帳票出力の現新比較自動化でも使えそうです。

PDF比較ツールとしても使えそうな気がしたので、UiPathマーケットプレースにもワークフローの公開を申請中です。公開されたら、ここにダウンロード先をリンクする予定です。

作りを解説する前に

いくつかの依存関係が存在します。下記のパッケージのインストールが必要です。尚、マーケットプレースでの提供のものが含まれます。
image.png

処理概要

2つのPDFファイルを各ページ単位で画像に変換して比較します。比較した結果の差分は再度PDFファイルに変換して提供します。
ざっくり、主要な処理は下記の通りです。
①2つのPDFファイルページ数を取得します。
②ページ数分、下記③~⑤の処理を繰り返します。
③2つのPDFファイルを各ページ単位で画像ファイルに変換します。
④画像変換したファイルを比較します。
⑤比較した結果の差分画像ファイルをPDFに変換します。
⑥最後にページ単位の差分のPDFファイルを結合して一つのPDFファイルにまとめます。

ワークフローファイル

テスト自動化でも、便利ツールでも両方使える様に下記の様なインターフェースを持つワークフローで作成しています。
<パラメータ>
in_Filename1:比較する対象のPDFファイル。フルパスで指定します。
in_Filename2:比較する対象の2つ目のPDFファイル。フルパスで指定します。
out_Unmatch:一致していた場合はFalse、不一致の場合はTrueが格納されます。
in_OutputFilename:指定したファイル名で差分確認できるPDFファイルを出力します。フルパスで指定します。
image.png

テスト自動化で利用する

2つのPDFファイルのうち、1つ目は期待するPDFファイルで、事前にストレージバケットに格納したPDFファイルをローカルにダウンロードしたもの。冒頭で記載した「UiPath Action CenterのFormsにPDFを埋め込む - 出力帳票を目視で合否判定」の続編と言うことですね。
image.png

2つ目のPDFファイルは、テスト実行で、ロボット操作により帳票出力したPDFファイルとなります。テストコードでは本ワーフローを呼び出し、比較の結果を下図の様に検証アクティビティで検証します。差異がある場合は、「ドキュメントを添付」アクティビティで差分のわかるPDFファイルを実行中のテストケースにアップロードしておくと後で確認する時に便利です。

image.png

おわりに

ソリューションと書きながら、たったこれだけで実現できちゃいました(笑)
UiPathの豊富なアクティビティがあってこそ成せる技ですね。UiPath Activitiesガイドのアクティビティ数が現在、約1500で、マーケットプレースには、それ以上あります。ほしいアクティビティを探したら、だいたい見つかったりしますので、アイデアとノウハウ次第で、まだまだ色んなソリューションが作れそうです!

9
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
4