如何使用 rspec 测试浏览器自动化代码

How to test browser automation code with rspec

提问人:jerhinesmith 提问时间:8/17/2023 更新时间:10/30/2023 访问量:53

问:

我正在做一个项目,该项目需要大量的浏览器自动化来检索数据、填充表单等。我过去曾使用水豚和硒对网站进行自动测试,但我从未使用过水豚和硒作为应用程序(现在需要测试)。

谷歌几乎一文不值,因为每次搜索“如何测试浏览器自动化代码”都会返回有关如何使用浏览器自动化来测试代码的结果(我明白,这是大多数人使用浏览器自动化的目的)。

有人做过这样的事情吗?有什么提示吗?建议?

Ruby Selenium-Web驱动程序 测试 rspec 水豚

评论


答:

1赞 Todd A. Jacobs 8/18/2023 #1

是否应该测试测试可能会引起激烈的争论。然而,在元层面上,你只是像做任何其他形式的测试一样接近它。

如果你正在尝试测试一个网络抓取应用程序或某种基于网络的“数据获取器”(无论它是否基于API或你正在填充/抓取页面),那么它只是另一个应用程序,需要与任何其他应用程序相同的单元和系统测试。

  1. 在给定以下条件下,确定每个测试应允许其通过或失败的内容:

    • 没有价值。
    • 一些应该通过测试的已知输入。
    • 一些已知的输入应该无法通过测试。
  2. 添加一些模糊测试或边界条件,以确保您的测试在无效或意外输入的情况下正确通过或失败。

真的,没什么好说的了。如果抓取给定页面,则应用程序应填充某些变量;它是否这样做,这些值是否正确?它是否正确地“填充了表单”,无论这实际上意味着什么?如果是 PDF,生成的 PDF 是否与预期的 PDF 匹配,或者至少与其中的相关部分匹配?

测试就是测试。如果您的代码是抓取工具或数据聚合器,则不会使其与任何其他类型的应用程序有根本区别。您仍然希望测试设备或系统结果的已知良好、已知不良和未定义的结果或行为。