一直显示程序没有显示,比如插入空白页,在表格里面打字的时候,就出现缓存的那个圈圈,然后就用不了,的重
788
2022-05-29
1 引言
大多数测试自动化框架都是基于一套通用的敏捷测试实践。一般来说,开发团队会收集映射到一个功能的用户故事。用户故事是一句描述性的话,它说明了该功能的角色/作用、动作和原因。如果你想输入用户凭证访问系统,每个故事必须有明确定义的验收标准,以确保实现的功能符合利益相关者/目标用户的期望。
今天有很多有竞争性的测试运行器在使用,但大多数前端开发者使用Mocha, Jest, Jasmine, Karma, Puppeteer。好消息是,它们很相似,你选择哪一个并不重要。
下面我们提供了一个Mocha测试样本。同样的事情也可以用其他的测试框架来写。
假设你正在测试一个计算器的web应用程序。首先创建一个describe块,它将包含一个或多个测试。
describe('calculator', function () {})
接下来,使用it函数添加一个测试。测试中包含了你要测试的内容的描述:
describe("calculator", function () {
it("应正确显示初始数据", () => {});
});
现在,使用expect函数添加一个断言。这个断言检查计算器的显示屏是否显示了预期的信息。只有当计算器显示为零时,测试才会通过。
it("应正确显示初始数据", () => {
expect(calculator.initialState.display).to.equal("0");
});
要运行你的测试代码,在输入类似这样的命令行npm test。当框架检测到你的源代码的变化时,会执行你的测试。每次框架运行测试时,都会指示测试是否通过或失败。
2 MochaJS
2.1.1 官网
http://mochajs.org/
2.1.2 许可
MIT
2.1.3 特点
自2011年以来,MochaJS一直是最流行的javaScript测试框架之一。它在Node.js上运行,为前端和后端异步测试提供了兼容性。在良好的文档支持下,Mocha在过去的几年里已经被证明是一个成熟的框架。
托管在Github上,Mocha的灵活性得到了认可,因此,它已经被证明是JavaScript开发人员最信赖的测试程序库之一。
Mocha的主要优点:
1. 为前端和后端测试提供兼容性
2. 支持NodeJS调试器,使错误跟踪变得更容易。
3. 准确的报告
4. 提供对所有浏览器的支持,包括无头Chrome库。
5. 非常方便开发人员编写测试用例的框架。
3 JEST
3.1.1 官网
https://jestjs.io/
3.1.2 许可
MIT
3.1.3 特点
JEST可以说是Facebook使用和维护的最流行的JavaScript测试框架。JEST测试框架提供了 "零配置"的测试体验。
JEST是基于React的应用程序的首选框架。它提供了一个毋庸置疑的且非常方便的用户界面。这个框架捆绑了一些有用的功能,比如快照测试和内置的代码覆盖工具。
JEST的主要优点:
1. 兼容NodeJS、React、Angular、VueJS和其他基于Babel的项目。
2. 支持文件的标准语法。
3. 速度快,性能高。
4. 使用实时快照可以管理较大对象的测试。
4 Jasmine
4.1.1 官网
https://jasmine.github.io/
4.1.2 许可
MIT
4.1.3 特点
Jasmine于2010年推出,是一个开源的JavaScript测试框架。它能够测试所有类型的JavaScript应用程序。这个框架支持行为驱动开发(BDD)。使用Jasmine,人们可以在网站上执行类似于用户行为的测试案例。Jasmine受JS Spec、Rspec的影响很大。
Jasmine对前端测试非常有帮助。它既包括可见性测试,也包括UI在各种不同分辨率设备上的响应性测试。人们还可以通过自定义延迟和等待时间来模拟实际的用户行为。
Jasmine的主要优点:
1. 提供小巧、简洁、直接的语法,便于测试。
2. 不需要任何文档对象模型(DOM)。
3. 提供对前端和后端测试的支持。
4. 易于编码,因为所使用的语法与自然语言非常相似。
5. 强大的文件和社区支持
5 Karma
5.1.1 官网
https://karma-runner.github.io/latest/index.html
5.1.2 许可
MIT
5.1.3 特点
Karma是另一个流行的开源生产测试环境。它允许QA在不同的环境下对应用程序进行测试。Karma允许应用程序脚本在真实的浏览器和手机、平板电脑等设备上执行。Karma旨在为开发者提供一个测试环境,在这个环境中,他们不需要设置大量的配置。相反,他们只需运行测试并获得即时反馈。
使用Karma的主要好处:
1. 支持与Jenkins、Travis和Semaphore等顶级CI/CD工具的集成。
2. 可以在实际设备和浏览器上进行测试
3. 提供对PhantomJS等无头环境的支持。
4. 支持直接从终端或IDE进行远程测试
5. 是框架不可知的,这意味着可以用Mocha、Jasmine等流行框架来描述测试。人们也可以为特定的框架写一个简单的适配器。
6 Puppeteer (Node Library)
6.1.1 官网
https://github.com/puppeteer/puppeteer
https://developers.google.com/web/tools/puppeteer/get-started
6.1.2 许可
Apache 2.0
6.1.3 特点
注意:Puppeteer 是一个程序库,而不是类似于上面其他的库的框架。之所以将其包含在内,是因为它在Chrome浏览器的JavaScript测试方面提供了许多优势。
Puppeteer是一个提供高级API的Node程序库库。这个API用于通过DevTools协议控制Chrome或Chromium。Puppeteer的主要局限性之一是它只适用于Chrome和Chromium。Puppeteer可以用于特定浏览器的应用,如页面结构测试、抓取网站截图等。
还可以为单页应用(SPA)抓取和捕获预渲染的内容。
Puppeteer的其他优点包括:
1. 轻松实现UI测试、表单提交和键盘输入的自动化。
2. 轻松生成网页的屏幕截图和PDF文件。
3. 支持测试chrome扩展。
4. 人们可以很容易地使用时间线跟踪来诊断网站的性能问题。虽然Puppeteer是最近才出现在测试领域的,但已经被大量的开发者所采用。Puppeteer的未来看起来很有希望。
7 参考
https://testguild.com/top-8-essential-javascript-automation-frameworks/
https://www.browserstack.com/guide/top-javascript-testing-frameworks
https://www.lambdatest.com/blog/top-javascript-automation-testing-framework/
JavaScript
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。