问题标签 [specflow]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
excel - 从 Excel 工作表读取测试场景数据时,“用于编码 UI 测试的 Excel 加载项”能否提供帮助
这需要详细解释。
想象一下,我在一个工作表中有一个带有测试用例的 Excel 电子表格,并且我可能在另一个工作表中预期(验证)消息(除了第一个工作表中的预期消息)。
在一个到第二个工作表中的字段值之间也有一些联系。
请参阅:欢迎,<First Name> <Last Name>作为示例。
您可以在“测试用例”工作表的“预期结果”字段中看到该字段的值是:“用户被带到我的帐户页面并显示以下欢迎消息:“&Messages!$B$1244&”,其中首先名字是戴夫,姓氏是布朗。”
所以“&Messages!$B$1244&”表示工作表“Messages”中的字段 B1244
现在的问题。
如果为我提供了所有测试用例,例如电子商务网站的以下示例,我该如何使用基于此输入的编码 UI 测试?我可以自动化 Excel,使用测试用例工作表中的步骤并将其与数据输入和验证的编码 UI 记录相结合。
我相信我需要进行手动编码,部分使用来自 Coded UI 记录器的记录输入步骤和验证,并可能使用手动编程进行验证。我想听听其他人是否做过类似的事情。
我想通过编写功能/用户故事将其合并到 Specflow BDD 中,这些测试用例将成为场景。
任何成功,关于使用 Excel 测试自动化作为数据驱动测试的想法。
谢谢拉德
b>在阅读了一些关于编码 UI 测试的信息后: 当然可以,但是数据/句子如下:
“启动测试店面”<br> “单击登录链接”
“注册成功。
用户被带到我的帐户页面
并显示以下欢迎消息:
欢迎,其中名字是
大卫,姓氏是布朗。”
包含动作和数据,所以我需要深入到句子的某些部分以将其转换为动作并绑定到参数。如果我理解得很好,数据绑定只能用于将列值绑定到某些参数。所以我需要一些方法来自动识别这些句子的含义,并从其中的一部分中使用一些绑定。
所以如果我有一句话:
“启动测试店面”将被翻译为:
CurrentBrowser.Navigate(Helper.TranslateTargetUrlFrom(“test storefront”)) 其中“test storefront”可能解析为http://testserver.com/index店面主页,我可以忽略 URL 的数据列,或者我可以捕获 Launch 关键字来表示CurrentBrowser.Navigate(ColumnValue(Data)) 并忽略句子的“测试店面”部分。
“单击登录链接”可以翻译为 CurrentBrowser.FindLink(“登录”).Click(),
所以在这种情况下,我需要知道 Sign In 是链接的文本,我需要再次提取“Sign In”来表示链接的文本。
我认为这是 CodedUI 的手动风格,我可以对一些动作进行少量记录,并依赖于从给定句子中手动提取术语。
我想知道如何在语义上编写更好的测试用例以实现自动化。我可能需要某种自由形式的测试用例解析器来识别某些单词的语义,例如:单击、导航、启动、输入、单击下方等,并通过重用现有的辅助方法和记录的操作将其转换为代码进行一些手动绑定,但不是使用列中的整个数据值,而是提取值。
对这种自动化有什么想法吗?
watin - 使用 WatiN 和 SpecFlow 对 UI 组件进行 BDD
我的问题集中在我的设置当前是否遵循关于带有 UI 验收测试的 BDD 的最佳实践方法。我正在使用带有 SpecFlow 的 WatiN 来构建我的 UI 验收测试,并将我的应用程序部署到 AppHarbor(一个云平台即 .Net 应用程序的服务)。AppHarbor 在部署时运行您的单元/集成测试,并且只有在您的测试通过时才会推送您的站点。所以我首先编写了一个基本的失败测试,如下所示:
与此测试相关的步骤使用 WatiN 打开浏览器并验证视图的标题属性是否设置为“欢迎”。我正在检查环境以确定使用 WatiN 浏览器测试的 URL。例如,如果在开发中导航到“http://localhost:49641/”作为主页。否则,导航到“http://myappharborapp.com/”。
我的问题是,如果您是第一次部署此应用程序,页面或视图实际上不存在,因此测试失败(因为该站点尚未上线)。例如,如果我稍后添加“关于”页面视图并首先编写失败的测试,这也会失败。当我推送更新时,测试将失败,因为“关于”页面尚不存在。
那么我的问题是:关于如何设置 UI 测试,我是否没有遵循最佳实践?应该如何设置这些测试以便它们在任何环境中通过?
非常感谢任何见解!
asp.net-mvc - 如何在 ASP.NET MVC 中以 BDD 样式进行单元和集成测试?
我正在学习使用 ASP.NET MVC 进行行为驱动开发,并且根据Steve Sanderson的帖子,我了解到 BDD 至少可以表示以下测试类型:单个代码单元和 UI 交互。这篇文章中提到了类似的东西。如果我想要单元测试和集成测试,我是否需要两个不同的测试框架?
使用上下文/规范框架(如 MSpec)对存储库、控制器和服务进行单元测试。使用它的测试结果将对开发团队有用。
使用给定/何时/然后框架测试完整的行为(集成),例如带有 Watin 的 SpecFlow。此测试的结果将对我的客户有用。
到目前为止,我看到的有关使用 BDD 的视频仅限于测试实体的行为,而没有测试存储库、控制器等的行为……是否有一个示例项目,我可以在其中使用BDD 方法?
.net - 默认值 Specflow 步骤定义
我从 SpecFlow 的世界开始,我遇到了我的第一个问题。在保持我的代码干燥方面,我想做以下事情:
有两种情况:
Given I am on a product page
And myfield equals todays date
Then...
Given I am on a product page
And myfield equals todays date plus 4 days
Then...
我希望使用以下步骤定义来涵盖我的 And 子句的两种变体:
[Given(@"myfield equals todays date(?: (plus|minus) (\d+) days)?")]
public void MyfieldEqualsTodaysDate(string direction, int? days)
{
//do stuff
}
但是,当 SpecFlow 尝试解析 int 时,我不断收到异常?参数。我检查了正则表达式,它肯定会按预期解析场景。我知道我可以像方法重载等这样粗略的东西,我只是想知道 SpecFlow 是否支持默认参数值的想法,或者确实是另一种实现相同效果的方法。
非常感谢
specflow - SpecFlow 自定义工具“SpecFlowSingleFileGenerator”
我发现这个自定义工具用于从 SpecFlow 的 .feature 文件生成 .cs 文件。有没有办法在VS之外使用这个工具?在使用 NAnt 构建我的项目时,我想从控制台调用此工具以获取特定的 .feature 文件。
问候,
瓦伊达·弗拉基米尔
asp.net-mvc - 前置条件和数据库交互
让我问你一些事情,如果有这样的场景:
在这种情况下,您通常会做什么来创建必须在项目页面中看到的项目?假设我使用存储库模式会调用存储库本身来创建项目?或者使用 Watin 模拟项目的创建?在直接调用存储库的情况下,我与数据库的连接必须与 Web 项目中的连接相同,对吧?在这种情况下,我不能拥有测试数据库和开发数据库。谢谢
specflow - 我可以让 SpecFlow 在不运行测试的情况下生成缺失步骤定义的列表吗?
我正在重构我们的 SpecFlow 实现的 BDD 测试。作为这项工作的一部分,我已经注释掉了大部分步骤定义。
在我运行测试时,我会看到“没有为一个或多个步骤找到匹配的步骤定义”。信息。
但是,我不希望等到测试实际运行。有没有办法让 SpecFlow 在不运行测试的情况下检查缺少的步骤定义?
specflow - Specflow 的 [AfterScenario]
我已经在我的 stepdefinition 类中定义了 [AfterScenario] 绑定,并且具有将在每个场景之后执行的方法,但由于某种原因这不起作用。在每种情况下都不会调用我的方法,因此在进行一些测试后 excel 仍保持打开状态......此外,一些不成功的测试也没有日志。为什么?你有什么想法或建议吗?
这是我的方法:
c# - Specflow / Watin 页面检查
我们刚刚开始使用 specflow 和 watin 编写验收测试。我们正在努力消除一些常见的做法。
检查用户是否在特定页面上的好方法是什么?例如 - 用户 x 执行操作 y,他们应该被重定向到页面 z。在第 z 页上测试它们的首选方法是什么?我们已经尝试过检查 URL、页面标题、页面标题等...
他们都工作,但什么是最可靠的?
cucumber - SpecFlow/Cucumber/Gherkin - 在场景大纲中使用表格
希望我能清楚地解释我的问题,让其他人理解,我们开始吧,假设我有以下两个假设场景:
这些场景很有用,因为我可以根据需要添加任意多的字段/值行和然后值条目,而无需更改相关的已编译测试步骤。然而,不同过滤器测试的复制/粘贴场景将变得重复并占用大量代码 - 我想避免这种情况。理想情况下,我想创建一个场景大纲并保持上面测试的动态特性,但是当我尝试这样做时,我遇到了定义示例表的问题,我无法添加我认为合适的新行,因为那将是一个新的测试实例,目前我有这个:
所以我遇到了在使用场景大纲时能够动态地将行添加到我的过滤器和预期数据的问题,有人知道解决这个问题的方法吗?我应该从不同的角度来解决这个问题吗?
解决方法可能类似于:
但这不是很动态....希望有更好的解决方案?:)