Selenium对Karma进行了哪些测试?

时间:2012-12-20 02:06:29

标签: javascript selenium functional-testing karma-runner browser-automation

我知道Karma是一个JavaScript测试运行器,可以在真实的浏览器中运行测试。如果是这种情况,Selenium会提供什么样的测试覆盖率,而不是Karma。

3 个答案:

答案 0 :(得分:25)

Karma和Selenium之间存在巨大差异。 Selenium有一个内置的浏览器控制机制,而Karma没有。因此,Selenium更适合端到端测试,例如使用nightwatch.js。 Karma是专为单元测试而设计的,因此在它上面进行端到端测试要困难得多,你可以添加一个phantomjs启动器,但它永远不会与使用Selenium的真实浏览器测试相同......我认为两者都是如果你有一个适配器,他们可以运行任何js测试框架......摩卡,茉莉,qunit等......

永远的永恒:

可以用Karma编写e2e测试。您需要创建一个iframe或打开一个新窗口并运行一个脚本,该脚本执行导航,触发事件,从父框架或窗口提交表单等。测试页面需要允许您的Karma服务器使用CORS,或者您需要禁用浏览器安全性。我正在研究e2e testing library,这正是这样做的。

答案 1 :(得分:10)

有许多版本的Selenium,最新的(我相信)是Selenium Web Driver,它允许您创建一个驱动程序,通过模拟与UI交互的操作来为您处理浏览器,就像用户一样(通过Json电线)。

我目前对Karma的理解(可能我添加的非常有限)是它在很大程度上依赖于执行javascript。因此,Karma必须在元素上调用更改事件(如'blur'和'hover over'),而Selenium只需单击,Tab键,将光标移动到。 Selenium的浏览器仅限于其网页here上指定的浏览器。

答案 2 :(得分:0)

这取决于您正在测试的内容。如果你使用javascript来编写单元测试 - 通过jasmine / mocha / chai或等价物 - 那么karma很大程度上依赖于javascript和selenium的论点并不是多余的。

根据我的经验,我只使用很少的专用自动测试仪,虽然硒语言可能是他们的选择,但是selenium方法库并不像jquery那样容易记忆等效的选择器引擎。

专用自动化测试人员学习语言的难度,以及开发人员对学习较少语言缺乏兴趣,使公司缺乏投资以进行更复杂的自动化测试

多年来,有一些关于jquery与selenium的扩充实现,但是没有一个实际上有很多跟随,大多数是用java编写的。

Webdriverio有一个npm包有一些jquery功能 - https://www.npmjs.com/package/webdriverio-jquery

Karma有一种方法可以导入整个jquery引擎 - https://github.com/bessdsv/karma-jasmine-jquery

这取决于正在测试的内容。如果你正在测试前端代码,那么使用javascript是有意义的,并且使用jquery比使用selenium语言更容易,而且当前karma支持jquery比webdriver更好。

使用jquery进行自动化测试可以将可转移技能用于开发,反之亦然,使开发人员能够进行自动化测试。