我试图了解可用于测试JavaScript Web应用程序的多个工具之间的技术差异。
我迷失了关于每一个的确切技术术语以及它们中的每一个究竟是什么以及它们适合哪里?
答案 0 :(得分:0)
这是一个很正常的非建设性问题。我已对其进行了编辑并将问题分开以便更好地理解。
<强> 1。你有codeceptjs只是一个包装器,它需要一个像nightmarejs / selenium这样的框架。
这不是一个问题,而是一个声明,他说他研究过它。没什么可说的。
<强> 2。现在噩梦是一个框架吗?
梦魇不是一个框架。回购上的副标题说它是一个高级浏览器自动化库。目标是使用API公开一些模拟用户操作(如goto,type和click)的简单方法。它最初设计用于在没有API的网站上自动执行任务,但最常用于UI测试和抓取。
库和框架之间差异的真正简短版本是,一个库是你掌控的地方,你选择和使用你想要的东西,一个框架是框架控制的地方,一切都已被选中它们只是在它们之上添加一些数据。更多关于this answer的差异。
第3。什么是electronjs?
Electron是一个框架,在它的引擎盖下使用节点和铬。它允许您使用JavaScript,HTML和CSS编写跨平台桌面应用程序。它基于Node.js和Chromium,由Atom编辑器和许多其他应用程序使用。
<强> 4。 electronjs与phantomjs有何不同?哪一个是无头浏览器?
PhantomJS是一个无头浏览器,可以使用JavaScript API编写脚本。它比铬更能与电子相比。 Electron是一个使用另一个名为chrome的无头浏览器的框架,而phantomjs本身就是一个无头浏览器。
<强> 5。茉莉/摩卡适合哪里?茉莉/摩卡是否与codeceptjs相当?
Jasemin / Mocha / Ava / Jest等是单元测试框架。与Nightmare / PhantomJS一起,您可以创建脚本,为您测试各种ui / ux交互。
Codeceptjs是一个使用webdriver(或其他)进行端到端测试的测试框架。
要了解单元和集成/端到端测试之间的差异,请检查this answer。
我希望能够解除许多疑虑。