各种自动化和测试库之间的核心区别

Core differences between various automation and testing libraries

我试图了解可用于测试 JavaScript Web 应用程序的多种工具之间的技术差异。

我不知道用于这些术语中的每一个的确切技术术语以及它们中的每一个究竟是什么以及它们适合的位置?

这是一大堆非建设性的问题,这很正常。我对其进行了编辑并将问题分开以便更好地理解。

1.你有 codeceptjs,它只是一个包装器,它需要一个像 nightmarejs/selenium.

这样的框架

这不是一个问题,而是一个陈述,说他研究过它。什么都没有。

2。现在噩梦是一个框架吗?

Nightmare 不是框架。回购协议中的 sub-title 表示它是一个 high-level 浏览器自动化库。目标是公开一些模仿用户操作(如转到、键入和单击)的简单方法,带有 API。它最初设计用于在没有 API 的站点之间自动执行任务,但最常用于 UI 测试和抓取。

简而言之,库和框架之间的区别是,库是你可以控制的地方,你可以选择和使用你想要的东西,而框架是框架可以控制的地方,一切都已经由他们挑选,您只需在它们之上添加一些数据。更多关于 this answer.

的差异

3。 electronjs是什么?

Electron 是一个在其内部使用 node 和 chromium 的框架。它允许您使用 JavaScript、HTML 和 CSS 编写 cross-platform 桌面应用程序。它基于 Node.js 和 Chromium,并被 Atom 编辑器和许多其他应用程序使用。

4。 electronjs 与 phantomjs 有何不同?哪个是无头浏览器?

PhantomJS 是一个无头浏览器,可使用 JavaScript API 编写脚本。它与铬比电子更具可比性。 Electron 是一个框架,它使用另一个称为 chromium 的无头浏览器,而 phantomjs 本身就是一个无头浏览器。

5. jasmine/mocha 放在哪里? jasmine/mocha 可以和 codeceptjs 媲美吗?

Jasemin/Mocha/Ava/Jest等都是单元测试框架。与 Nightmare/PhantomJS 一起,您可以创建脚本来为您测试各种 ui/ux 交互。

Codeceptjs 是一个测试框架,用于 end-to-end 使用 webdriver(或其他)进行测试。

要了解单元测试和 integration/end-to-end 测试之间的差异,请查看 this answer

我希望这能消除许多疑问。