我正在测试一个设置Karma http://karma-runner.github.io/ + Mocha http://visionmedia.github.io/mocha/。其中一件事是这个可能 (?)要做的是在各种浏览器上测试用户交互,包括PhantomJS http://phantomjs.org/(无头网络套件)。
I say might因为我不确定如何让基本的 PhantomJS 功能在 Karma+Mocha 设置中工作。 IE:var page = require("webpage").create();
应该是 PhantomJS 中的一个典型示例,但 Karma 无法找到require
.
现在,我也许可以通过包括来解决这个问题require.js
到 Karma,但在我“要求化”我的项目之前,我想知道 Karma+PhantomJS 是否确实是为了测试自动交互,例如:
- 加载页面x
- 填写表格
- submit
- 检查客户端是否一切顺利
Karma + phantomJS 可以进行这些类型的交互测试吗?
PhantomJS 是一个独立于节点的Qt http://qt.digia.com//WebKit http://www.webkit.org/为基础的图书馆。它有一个与node非常相似的脚本环境,但又不是node。从主页:
PhantomJS 是一个可使用 JavaScript API 编写脚本的无头 WebKit。它
对各种 Web 标准具有快速和本机支持:DOM 处理、
CSS 选择器、JSON、Canvas 和 SVG。
Karma 与 PhantomJS 进行交互,就像它支持的任何其他浏览器(FireFox、Chrome 等)一样 - 加载页面、通过 WebSocket 向其中注入一些测试、运行它们并收集结果。
您描述的测试类型更适合验收测试框架(我更喜欢Capybara http://jnicklas.github.io/capybara/), 基于 WebDriver 的工具 http://en.wikipedia.org/wiki/List_of_web_testing_tools, or CasperJS http://casperjs.org/(直接从主页获取):
CasperJS 是一个开源导航脚本和测试实用程序
用 Javascript 为 PhantomJS WebKit 无头浏览器编写
SlimerJS(壁虎)。它简化了定义完整导航的过程
场景并提供有用的高级函数、方法和语法
用于执行常见任务的糖,例如:
- 定义和排序浏览导航步骤
- 填写并提交表格
- 单击并关注链接
- 捕获页面(或其一部分)的屏幕截图
- 测试远程 DOM
- 记录事件
- 下载资源,包括二进制资源
- 编写功能测试套件,将结果保存为 JUnit XML
- 抓取网页内容
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)