【问题标题】:AngularJs Testing using Cucumber BDDAngularJs 测试使用 Cucumber BDD
【发布时间】:2016-08-27 02:43:14
【问题描述】:

以下情况需要大家指导。 我正在处理一个 IT 问题,我的客户要求我做一个 POC 来测试 web 应用程序(它是使用 angularJs 构建的)。

我的客户的期望:

  • 他希望使用 BDD(行为驱动开发)以受控方式测试 Web 应用

  • 他的建议是使用 Cucumber 和 BDD 方法自动测试网页(angularJS)

我的分析结果:

  • 我们可以使用 Cucumber 和 BDD 以有效的方式自动化网页(非 angularJS Web 应用程序),方法是使用公共属性提供元素识别,但是当我考虑 angular 属性时,没有选项可以在 cucumber 中使用 angularJS 元素据我所知。

需要帮助:

  • 谁能建议我使用 Cucumber 自动化 angularJS 页面的有效方法是什么?如何在 cucumber 中获取 angularJs 页面元素属性?

【问题讨论】:

  • 虽然 cucumber 提供了一个以人类可读格式表达需求/测试用例的框架,但您需要一个可以以编程方式操作浏览器的工具,例如 protactor
  • Cucumber 或 RSpec 将为您提供 BDD 方法。对于与 Angular 应用程序和浏览器的实际交互,您需要 Selenium webdriver。 Capybara 是一个很好的 DSL,可用于 webdriver 和浏览器交互功能,使用 Ruby 作为编程语言。如果你想使用 JS 作为语言,@orde 提到的 Protractor 是一个不错的选择。

标签: angularjs automation cucumber


【解决方案1】:

检查http://www.protractortest.org/#/frameworks
它具有 protractor-cucumber-framework 的量角器框架的基本设置。

出口.config = { // 设置为“自定义”而不是黄瓜。 框架:'自定义', // 相对于当前配置文件的路径 frameworkPath: require.resolve('量角器-黄瓜-框架') // 相关的黄瓜命令行选项 黄瓜选择:{ 格式:“摘要” } };

在 cucumberjs github 页面上,您可以概览选项: https://github.com/cucumber/cucumber-js。您可以在 protractor.conf 文件的 cucumberOpts 部分中使用这些。
解释:

黄瓜选择:{ 要求:“测试/功能/mystep_definitions/**/*.js”, 格式:“漂亮” }

【讨论】:

    【解决方案2】:

    我正在为我的客户处理一个非常相似的情况。唯一不同的是,我们使用的是 .NET(因此也是 SpecFlow)

    现在我可以代表 .NET 说量角器是 Angular JS 应用程序的方式。它就像一个魅力,我可以随时找到所有元素。

    如果您对使用量角器犹豫不决,仍然可以使用 javascript executor 或 css locator 来定位每个元素。两者都适用于 Angular JS 应用程序。只要确保您等待适当的时间让您的元素被加载,否则您会得到很多 NoSuchElement 异常。

    祝你好运!

    【讨论】:

    • @Anand- 谢谢你……你能告诉我你用.net配置量角器的方式吗……我想如果你能与VS交互,我能不能用 Java 配置....
    • 对于 .net,有一个用于 Visual Studio 的量角器插件。我发现对于 Eclipse 也有一个解决方案。也许这会有所帮助:stackoverflow.com/questions/32200154/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-03
    • 1970-01-01
    相关资源
    最近更新 更多