我正在使用Karma + Mocha测试设置。 可能(?)做的事情之一就是在各种浏览器上测试用户交互,包括PhantomJS(无头webkit)。
我说可能因为我不确定如何在Karma + Mocha设置中使用基本的PhantomJS功能。 I.e:var page = require("webpage").create();
应该是PhantomJS中的一个规范示例,但是Karma找不到require
。
现在,我可以通过将require.js
包含到Karma来解决这个问题,但在我“需要”我的项目之前,我想知道Karma + PhantomJS是否确实要测试自动交互,如:
这些类型的交互测试是否可以与Karma + phantomJS一起使用?
答案 0 :(得分:0)
PhantomJS是一个基于节点的Qt / WebKit库。它的脚本环境与节点非常相似,但不是节点。从主页:
PhantomJS是一个带有JavaScript API的无头WebKit脚本。它 为各种Web标准提供快速和本机支持:DOM处理, CSS选择器,JSON,Canvas和SVG。
Karma与PhantomJS交互,就像它支持的任何其他浏览器(FireFox,Chrome等)一样 - 加载页面,通过WebSockets向其中注入一些测试,运行它们并收集结果。
您描述的测试类型更适合验收测试框架(我更喜欢Capybara),WebDriver based tool或CasperJS(直接从主页获取):
CasperJS是一个开源导航脚本&测试实用程序 用Javascript编写的PhantomJS WebKit无头浏览器和 SlimerJS(Gecko)。它简化了定义完整导航的过程 场景并提供有用的高级功能,方法和句法 用于执行常见任务的糖,例如:
- 定义&订购浏览导航步骤
- 填充&提交表格
- 点击&以下链接
- 捕获页面(或部分页面)的屏幕截图
- 测试远程DOM
- 记录事件
- 下载资源,包括二进制资源
- 编写功能测试套件,将结果保存为JUnit XML
- 抓取网页内容