Page 1 of 1

使用 Selenoid 和 Docker 进行基于容器的测试

Posted: Mon Jan 27, 2025 9:56 am
by suchona.kani.z
另一方面,容器是轻量级的,几乎可用于任何任务,并且可以包含任何类型的软件。然而,它们与主机共享重要的操作系统文件。 Docker、AWS 和 Google 等都提供了使用容器的软件。该软件允许 IT 专业人员创建系统所需软件的映像,然后与同事共享该映像。容器是根据这些映像创建的,用于执行其任务,然后关闭。它们的大小从几 KB 到几百 MB 不等。

Selenoid 是一个开源项目,支持本地并行执行 Selenium 测试。 Selenoid 允许在任何浏览器和已创建图像的版本中运行测试。 Opera、Chrome、Firefox 等均可用。微软浏览器存在一个困难,因为 Docker 基于 Linux,但它们仍然可以运行。因为使用了Docker容器,所以不需要创建本地机器作为运行特定浏览器的VM,也不需要存在于测试网络上。根据需要下载并交换所需的图像。这是最好的简单性。它取代了构建复杂的 Selenium Grid 网络或使用基于云的 Selenium Grid 网络的需要。意外的浏览器升级也是不可能的。由于它是开源的,因此公司无需支付许可费用,而且由于 Selenoid 在 Linux 上运行,因此运行测试的计算机上的操作系统无需支付许可费用。

测试本身仍然是很可能无论如何都会创建的 Selenium 测试。 Selenium 提供了使用 Java、TypeScript/JavaScript(使用 Codecept.js)、C#、Perl、Python、Ruby 等编程语言执行基于行为的测试的能力。测试可以 赌博电子邮件列表 使用 Gherkin 语法进一步抽象为人类编写的文本,因此测试作者不需要具备任何编程知识,而是可以依靠一些程序员来创建抽象测试步骤,以便在应用程序的任何位置使用。

让我们回到最开始的场景。一家公司希望在内部测试其软件而不访问外部服务。成本在这里发挥作用。将执行以下计划。

开发人员将继续为应用程序的所有部分(微服务、前端、接口等)编写单元测试。这些单元测试作为 CI/CD 流程的一部分执行。
将成立测试基础设施团队。该团队负责创建测试环境,并承担以下任务:
实施和配置Selenoid
维护Selenoid运行的服务器
与基建部门沟通
支持和培训这些测试
您不负责业务逻辑或实施测试。

测试开发人员负责编写在浏览器中执行步骤的代码。这些开发人员创建的每个功能都是为了在整个测试网站上工作而编写的。如有必要,他们将通知开发人员需要对网站进行某些更改才能启用此类通用功能(例如添加属性或报告用户界面尚未一致实现)。如有必要,您可以支持测试作者使用现有功能或通过培训。
测试作者使用 Gherkin (Cucumber) 编写通过 UI 运行的测试。这样做的优点是,编写测试的人员可以专注于业务逻辑和用户界面,而不是实现代码。这些测试文档还可以作为应用程序功能和行为的动态文档。
手动测试保持在绝对最低限度。尽管指定了手动测试并且可以在以后重复使用,但它们不能用于回归测试。此外,这些测试非常昂贵,因为它们需要由人实时执行。
敏捷团队的开发过程中可以使用手动测试来执行完成定义所需的检查。一旦开发票证关闭,就会编写新的票证来开发自动化测试。

集成测试是使用行业标准执行的并且是自动化的。
前端测试
使用 Codecept.js 实现通过 Selenium 完成,因为它与主 UI (TypeScript) 是相同的语言,
使用 Selenoid 在 Linux 机器上安装的容器中运行。
在 JIRA 中进行描述和跟踪。创建并上传 PDF 文件,其中包含每个测试步骤的详细信息(包括屏幕截图)。
Windows 浏览器还可以在未进行任何测试以降低成本时处于脱机状态的 Windows 计算机上运行。