【问题标题】:Karma for automatic user interaction testing?Karma 用于自动用户交互测试?
【发布时间】:2014-03-04 22:27:01
【问题描述】:

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

我说可能是因为我不确定如何让基本的 PhantomJS 功能在 Karma+Mocha 设置中工作。即:var page = require("webpage").create(); 应该是 PhantomJS 中的典型示例,但 Karma 无法找到 require

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

  1. 加载页面 x
  2. 填写表格
  3. 提交
  4. 检查客户端是否一切顺利

Karma + phantomJS 可以进行这些类型的交互测试吗?

【问题讨论】:

    标签: automated-tests phantomjs karma-runner


    【解决方案1】:

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

    PhantomJS 是一个可使用 JavaScript API 编写脚本的无头 WebKit。它 对各种 Web 标准具有快速和原生的支持:DOM 处理, CSS 选择器、JSON、Canvas 和 SVG。

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

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

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

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

    【讨论】:

    • 谢谢,这是有道理的。您是否知道任何允许在多个浏览器上进行测试的验收/端到端测试框架,例如 CasperJS?最好能够使用 CasperJS + PhantomJS 之类的东西在本地(每次更改时)进行持续测试,并在推送到 staging/prod 时让一些 CI 服务器在各种真实浏览器上测试相同的规范
    • Selenium WebDriver(和/或 Selenium Grid)是行业标准,根据您选择的语言,有许多包装库。节点:github.com/camme/webdriverjs Ruby:Capybara/Watir 和成熟的 Java/Python/your-language-here 等存在
    猜你喜欢
    • 2022-01-19
    • 2011-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-11
    • 2021-10-13
    • 2017-05-13
    相关资源
    最近更新 更多