如何在 Javascript 应用程序中进行冒烟测试和验收测试?

Posted

技术标签:

【中文标题】如何在 Javascript 应用程序中进行冒烟测试和验收测试?【英文标题】:How to do a smoke Test and Acceptance test in a Javascript Aplication? 【发布时间】:2013-02-06 19:11:09 【问题描述】:

我想进行冒烟测试,以测试我的网络应用程序与服务器本身之间的连接。有人知道怎么做吗?另外我想做一个验收测试来测试我的整个应用程序。你推荐哪个工具?

我的技术栈是:backbone 和 require.js 以及用于 BDD 测试的 jquery mobile 和 jasmine。

问候

【问题讨论】:

您是手动(手动,例如在浏览器中打开页面)还是自动(编写代码来测试此功能)进行此测试? 我想在 Jenkins 中做一个工作,运行一个执行验收和冒烟测试的测试。目前我正在调查capybara,你用过这个工具吗? 【参考方案1】:

在做 BDD 时,你应该总是嘲笑合作者。测试应该快速运行,不依赖任何外部资源,如服务器、API、数据库等。

你想在 f.e. 中制作的方式Jasmine 是要声明一个伪装成服务器的间谍。然后,您继续定义间谍在特定场景或示例中的响应。

如果您希望您的应用程序与环境无关,这是最好的方法。这在运行 Jenkins 作业时非常需要 - 围绕作业构建完整的基础架构将很难重现。

制作代表服务器的 spy/mock 对象,并在您的规范中定义外部源的行为方式 - 这样您就可以专注于您的应用程序在特定情况下提供的行为。

【讨论】:

非常感谢您回答 karolsojko。尽管如此,我不想进行单元测试,我想做一个与詹金斯一起工作的验收测试。我认为最好的选择是水豚,你用过这个工具吗?您推荐哪种工具进行验收测试? 对于验收测试(或实际执行 StoryBDD),一个不错的选择是 Cucumber.js (github.com/cucumber/cucumber-js) 或 Kyuri (github.com/nodejitsu/kyuri) 选择你的毒药;) 谢谢 karolsojko,一小时前我可以设置一个 ruby​​ + capybara + cucumber 应用程序,以便在 jenkins 中运行并成为我部署管道的一部分 :)【参考方案2】:

这不是一个完整的答案,但我们一直在为我们非常相似的堆栈使用的一个工具是mockJSON。这是一个 jQuery 插件,两者都做得很好:

    拦截对 URL 的调用,而是发回模拟数据和 可以轻松生成基于模板的随机模拟数据。

最好的部分是它完全是客户端,所以你不需要设置任何外部的东西来获得体面的测试。它不会测试与您的服务器的实际网络连接,但它可以很好地验证您的服务器将回传的数据类型。 FWIW,我们使用 Mocha 作为我们的测试框架,并且将它与我们的 BDD 工作集成没有任何问题。

original mockJSON repo 还是不错的,虽然有一段时间没更新了。我和我的同事一直在努力通过 my own fork 中的补丁和功能来保持它的运行。

【讨论】:

【参考方案3】:

我发现了一篇博文,作者解释了如何在 rails 应用程序之外使用 capybara、cucumber 和 selenium,因此可以用来测试 javascript 应用程序。这是链接:http://testerstories.com/?p=48

【讨论】:

以上是关于如何在 Javascript 应用程序中进行冒烟测试和验收测试?的主要内容,如果未能解决你的问题,请参考以下文章

互联网项目流程

可有可无的“冒烟测试”

其它测试:回归测试冒烟测试APP测试联调测试确认测试随机测试安全测试探索性测试

其它测试:回归测试冒烟测试APP测试联调测试确认测试随机测试安全测试探索性测试

如何提高送测版本的质量?

测试3.测试方法的分类