Karma用于自动用户交互测试?

时间:2014-03-04 22:27:02

标签: automated-tests phantomjs karma-runner

我正在使用Karma + Mocha测试设置。 可能(?)做的事情之一就是在各种浏览器上测试用户交互,包括PhantomJS(无头webkit)。

我说可能因为我不确定如何在Karma + Mocha设置中使用基本的PhantomJS功能。 I.e:var page = require("webpage").create();应该是PhantomJS中的一个规范示例,但是Karma找不到require

现在,我可以通过将require.js包含到Karma来解决这个问题,但在我“需要”我的项目之前,我想知道Karma + PhantomJS是否确实要测试自动交互,如:

  1. 加载页面x
  2. 填写表格
  3. 提交
  4. 检查客户端是否一切顺利
  5. 这些类型的交互测试是否可以与Karma + phantomJS一起使用?

1 个答案:

答案 0 :(得分:0)

PhantomJS是一个基于节点的Qt / WebKit库。它的脚本环境与节点非常相似,但不是节点。从主页:

  

PhantomJS是一个带有JavaScript API的无头WebKit脚本。它   为各种Web标准提供快速和本机支持:DOM处理,   CSS选择器,JSON,Canvas和SVG。

Karma与PhantomJS交互,就像它支持的任何其他浏览器(FireFox,Chrome等)一样 - 加载页面,通过WebSockets向其中注入一些测试,运行它们并收集结果。

您描述的测试类型更适合验收测试框架(我更喜欢Capybara),WebDriver based toolCasperJS(直接从主页获取):

  

CasperJS是一个开源导航脚本&测试实用程序   用Javascript编写的PhantomJS WebKit无头浏览器和   SlimerJS(Gecko)。它简化了定义完整导航的过程   场景并提供有用的高级功能,方法和句法   用于执行常见任务的糖,例如:

     
      
  • 定义&订购浏览导航步骤
  •   
  • 填充&am​​p;提交表格
  •   
  • 点击&以下链接
  •   
  • 捕获页面(或部分页面)的屏幕截图
  •   
  • 测试远程DOM
  •   
  • 记录事件
  •   
  • 下载资源,包括二进制资源
  •   
  • 编写功能测试套件,将结果保存为JUnit XML
  •   
  • 抓取网页内容
  •