寻找用于 PDF 文件回归测试的内容感知库

软件测试 自动化测试 爪哇 回归测试
2022-02-03 23:28:48

我正在使用带有 Java 的 Rational Functional Tester 对 Web 应用程序进行一些自动化回归测试。我需要测试该应用程序生成的一些 PDF 文件,将它们与已手动验证的“基本”PDf 文件进行比较。测试是基于内容的,这意味着页面上的配置差异很小是可以容忍的。日期或购买 ID 等某些内容是可变的,不应被视为错误,因此我需要与正则表达式或类似内容进行比较。具有可调容差的图像匹配将是一个很好的优势,用于比较 QR 码和其他条形码。

当发生错误时,我想要一个带有基本页面和错误页面的屏幕截图。

实际上我围绕这个库构建了一个包装器以满足我的要求

http://www.inetsoftware.de/other-products/pdf-content-comparer

它对 PDF-1.3 非常有效,但似乎该库对 PDF-1.4 格式的文件的支持很差。无法更改 Web 应用程序的输出格式,并且回归错误在打印中很常见。

有什么 PDF 比较器库可以推荐吗?首选语言是 Java,因为 RFT 是基于 Java 的,但一切都很好。

4个回答

我不知道任何有令人满意的结果的 PDF 库。我目前的方法是将 PDF 转换为文本并从那里开始工作。A-PDF Text Extractor是我在这里选择的工具。

虽然过去并不完全是一个库,但我使用Beyond Compare来进行此类比较。它支持被脚本化。我基本上创建了脚本,该脚本驱动了我想要执行的比较,然后我从我的测试工具中执行了应用程序。看起来发布您的库的公司最近发布了 2.0 测试版。你试过吗?

我知道您的帖子已经很老了,但是有一个用于测试 PDF 内容的库:https ://github.com/codeborne/pdf-test

非常容易使用。只需像这样写断言:

PDF pdf = new PDF(new File("src/test/resources/50quickideas.pdf"));
assertThat(pdf, containsText("50 Quick Ideas to Improve your User Stories"));

您可以将 PDF 结果文件和相应的基本文件转换为图像,然后对图像进行逐位比较。您可以建立某种公差,例如灰度值小于 2% 来处理条形码。

对于日期或购买 IDS 等可变区域,您可以在进行图像比较之前在结果图像中将它们涂黑。

要将 PDF 转换为图像,您可以使用我们的java 库 jPDFImages,您将获得每个页面的缓冲图像。

如果您需要帮助,请联系我们。这是一个有趣的问题,因为我们正在考虑很快开发一个 PDF 比较库。