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

2024-03-27

我正在测试一个设置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 是否确实是为了测试自动交互,例如:

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

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(使用前将#替换为@)

Karma 用于自动用户交互测试? 的相关文章

  • 您可以同时使用 Protractor 和 Appium 来测试混合应用程序吗?

    这是我的场景 我有一个基于 Angular JS 构建的网站 我能够使用量角器使网站自动化 然而 在网站上执行的某些操作会反映在 Android 和 IOS 设备中 这就是我想要实现的目标 像平常一样在网站上运行我的测试 但我也想触发命令来
  • 尝试在节点集群后面扩展时 phantomjs-node 崩溃

    相关 GitHub 问题 https github com sgentle phantomjs node issues 280 https github com sgentle phantomjs node issues 280 我有一个简
  • 如何从 page.open 发出的请求中查看 HTTP 状态代码?

    我有一个 phantomJS 脚本 其中包含以下内容 page open url function status if status fail handle failure 状态检查有时会起作用 但即使请求返回 500 状态仍然是 成功 如
  • Cypress 获取 href 属性

    我有一个测试用例 其中有一个在新选项卡中打开的链接 由于 Cypress 不支持多个选项卡 我想获得href该链接的属性 然后在同一选项卡中打开它 我正在尝试这样做 但由于某种原因它不起作用 it Advertise link should
  • 如何仅在夹具级别执行“beforeEach”,而不是针对该夹具下的每个测试

    我只想在固定装置级别运行 beforeEach 而不是在该固定装置下的每个测试中运行 fixture Fixture A for Use Case1 beforeEach login test A Test 1 async t gt awa
  • 无法在 SQL Server 2017 中创建 tSQLtCLR 程序集

    我最近安装了 SQL Server 2017 Express 和 localdb 正式版 在尝试安装 tSQLt 框架时 我发现了 SQL Server 2017 中实现的一项新安全功能 clr strict security 选项 这个新
  • 类型错误:无法读取 Jasmine 中未定义的属性(读取“订阅”)

    我正在尝试为以下方法编写测试用例 subscriptionPackages this managePackageService getPackages subscribe response gt this packagePlan respo
  • Jenkins 未找到 SureFire 报告

    我已经在本地 jenkins 服务器中创建了一个 Maven 项目作业 项目 并添加了jenkin的TestNG插件来查看测试报告 但该作业没有显示我的 TestNg 结果 我看到以下错误 TestNG 报告处理 开始使用模式在工作区中查找
  • 用于屏幕文本的 OCR(光学字符识别)

    我正在尝试创建一个软件 通过捕获屏幕截图来自动化 PC 然后使用 OCR 光学字符识别 来查找要单击的特定按钮 例如 我已经有了鼠标和键盘控制部分 但现在 我需要 OCR 来处理屏幕截图 我发现 Tesseract OCR 似乎不能很好地处
  • PhantomJs - 如何渲染多页 PDF

    我可以使用 phantomJS 创建一页 PDF 但我在文档中找不到如何创建不同的页面 每个页面都来自 html 视图 并将它们放入一个 PDF 中 我正在为 NodeJS 使用 node phantom 模块 只需要指定一个paperSi
  • rspec 中的相关测试

    我编写功能测试 并且我需要进行的测试取决于之前测试的通过情况 假设我有一个按钮 可以打开一个窗口 其中有一个功能 也就是说 为了检查此功能 我需要首先检查按钮的正确操作 即打开窗口或不起作用 因此 我需要这样做 如果单击按钮时测试失败 则测
  • Cypress:信用卡支付的自动测试[重复]

    这个问题在这里已经有答案了 我正在做信用卡付款的自动测试 不幸的是 测试在 到期日期 项中失败了 my code cy getWithinIframe name cardnumber type 4242424242424242 cy get
  • 测试 AngularJS 指令的焦点

    如何测试 AngularJS 指令中的焦点 我希望以下内容能够发挥作用 describe focus test function it should focus element function var element
  • CasperJS - 在网站上注册并验证 Gmail 上发送的邮件 - 对于 slimer 和 phantom -

    Edit 这是windows的行为 linux就失败了 首先 如果您使用 casper 成功导航 gmail 没有随机等待时间 从 20 秒到 5 分钟 请告诉我 我想在我们的网站上注册 然后使用 Gmail 自动验证我的注册 整个注册步骤
  • 在 Puppeteer 中如何将 Chrome 窗口从默认配置文件切换到所需的配置文件

    我的要求是在新的配置文件上测试 chrome 扩展 我提到https peter sh experiments chromium command line switches https peter sh experiments chromi
  • 错误:找不到模块“jasmine-core”

    我安装了以下内容进行测试 devDependencies jasmine core 2 4 1 karma 0 13 22 karma jasmine 0 3 7 karma phantomjs launcher 1 0 0 运行后karm
  • 硒脚本

    我想使用 selenium 脚本逐个单击网页上的一堆链接 每次单击都会刷新页面 然而 selenium 不支持像 visited 这样的 css 伪类 所以我无法区分已经点击的和我接下来要点击的 有办法解决我的问题吗 这是我的代码 http
  • Selenium 中的断言和验证

    有人可以解释一下断言和验证之间的区别吗 我知道验证意味着它检查它是否存在 如果不存在 则测试失败并停止在那里 正确吗 那么 即使断言失败了 断言还会继续吗 我已经阅读了文档 但仍然无法理解它 不 你已经搞反了 在 Selenium IDE
  • Sonar 中的 javascript 代码覆盖率

    我是使用 Sonar 和插件进行 javascript 代码覆盖的新手 使用 Sonar 分析时 有哪些可能性可以找出 javascript 代码的质量 包括代码覆盖率 目前我正在使用 karma runner 它提供代码覆盖率报告 可以在
  • 如何在使用 Robot Framework 时修剪或去除字符串中的空格

    如何在使用 Robot Framework 时修剪或去除字符串中的空格 如果我有一个字符串 Hello How are you 如何将其转换为 HelloHowareyou 去除所有空格 str strip 也有效 它使用扩展变量语法 ht

随机推荐