技术文章

了解最新技术文章

当前位置:首页>技术文章>技术文章
全部 75 常见问题 0 技术文章 75

如何在 BDD 流程中使用 Ranorex Studio

时间:2024-02-23   访问量:1021

本文介绍如何使用 Ranorex Studio IDE 和 Ranorex API 在行为驱动开发 (BDD) 流程中实现测试自动化。BDD 需要认知转变:您现在不再考虑测试功能,而是考虑行为。遵循这种方法可以实现业务利益相关者(例如产品管理)和 QA 或开发团队之间的无缝协作。在业务方面,产品管理团队可以用自然语言定义功能规范,而无需编写一行代码。在技术方面,QA 团队和开发团队使用代码模块和存储库添加自动化步骤。

工具栈

下图显示了用于创建基于 BDD 的测试框架的示例工具堆栈。Ranorex Studio 提供开发环境和自动化 API。为了将特征文件从自然语言解析为书面代码,我们使用SpecFlow作为 BDD 解释器。最后,NUnit 是管理和执行测试的提供者。

流程概览

在敏捷环境中遵循 BDD 方法时,用户故事的整个开发过程分为业务侧和技术侧。

在业务方面,我们创建用户故事,将其分解为存储在功能文件中的功能。这些功能被分解为不同的场景。这些功能按照 Gherkin 语法以自然语言编写。用 Gherkin 编写的基本功能可能如下所示:

特点:提供咖啡为了赚钱客户应该能够随时买咖啡场景:买最后一杯咖啡鉴于机器中还剩下 1 杯咖啡我已经存了1美元当我按下咖啡按钮时那我应该喝杯咖啡

在技术方面,我们首先需要一个解释器来解析功能文件并调用测试自动化代码。然后,Ranorex API 可以执行以下操作:

为 BDD 准备 Ranorex Studio

Ranorex Studio 的 SpecFlow 插件

SpecFlow 插件提供功能文件、步骤定义文件和事件定义文件的文件模板。它还将功能从 Gherkin 语法转换为 C# 代码。要将 SpecFlow 插件安装到 Ranorex Studio,请按照以下说明操作:

准备好您的 Ranorex 解决方案 BDD

Ranorex 解决方案中,打开“包管理控制台”  (查看->工具->包管理控制台)并运行以下命令:

安装包 SpecFlow.NUnit -版本 3.9.74 –来源“ https://www.nuget.org/api/v2/ ”

您会注意到引用已添加到项目视图中。

将输出类型更改为 “类库” 为此,请打开项目属性并将项目的输出类型设置为“类库”。

另外,将所有 Ranorex 运行时 DLL 复制到输出文件夹。为此,请在解决方案资源管理器中的引用下找到 Ranorex 引用并确保 本地副本 设置为 True 对所有 Ranorex 参考文献执行此操作。

 

为了确保您的 BDD 解决方案与 SpecFlow 和 NUnit 无缝集成,您需要修改 AssemblyInfo.cs 和 app.config 只需双击项目视图中的每个项目即可。

对于 AssemblyInfo.cs 添加:

[程序集:NUnit.Framework.Apartment(System.Threading.ApartmentState.STA)]

如下所示:

C#

对于 app.config,您需要添加以下部分:

请参考下面的示例:

C#

开始使用 BDD

现在您的 Ranorex 解决方案已准备好 BDD,您可以开始在 SpecFlow 中定义功能并在 Ranorex 中为它们创建自动化测试。或者,您可以导入由 DesignWise 或支持 Gherkin 语法的任何其他技术创建的特征文件并生成特征文件。

步骤 1 – 从业务方面定义功能

选项 A:在 Studio 中创建

在 SpecFlow 中,创建一个新的特征文件。为此,请右键单击该项目,然后选择 “添加”>“新项目”>“类别:SpecFlow”>“SpecFlow 功能” 

选项 B:导入由 DesignWise(或生成特征文件的其他技术)创建的特征文件

安装 SpecFlow 插件后,您可以将 .feature 文件导入 Ranorex 并将其转换为 C#。

Ranorex 解决方案中,右键单击工作区名称,单击“添加”->“现有项目”,选择功能文件。

检查创建的特征文件。

对于任一选项,Ranorex Studio 都会创建一个.feature.cs 文件包含自动生成的代码,该代码将使用配置的测试提供程序执行测试场景。构建解决方案以创建并填充该 C# 文件:

如果未创建代码/C# 文件,请参阅本博客末尾的故障排除部分。

步骤 2 – 为技术方面创建步骤定义

创建一个新的步骤定义文件。为此,请右键单击项目并选择 “添加”>“新项目”>“类别:SpecFlow”>“SpecFlow 步骤定义” 

现在,为  场景描述中描述的所有“给定”、“何时”和“然后”操作创建方法。添加 “Given”、“When”和“Then” 属性,其值与功能文件中定义的场景步骤相匹配。为此,请遵循生成新步骤定义文件的模板提供的示例。

如果您正从传统脚本过渡到 BDD,Studio 还有更多功能可以为您提供帮助。首先,您可以通过从“操作”表中查看和复制现有的已记录步骤的代码来使用它。其次,您的方法可以以一种方式设置,这种方式也可以利用存储库及其传播对象更新的能力 - 通过使用如下行:

public static {您的项目仓库名称} repo = {您的项目仓库名称}.Instance;

您的实现可能如下所示:

C#

您可以创建要在场景之前和之后执行的其他步骤,例如执行设置和拆卸任务,包括启动和关闭测试中的系统。这些步骤可以在步骤或事件定义文件中定义,可能如下所示:

C#

完成所有修改后,保存文件并再次构建解决方案

步骤 3 – 使用 NUnit 执行 BDD 测试

总而言之,通过此步骤,您需要在 Studio 项目中拥有 3 个元素:功能文件、其解释(.feature.cs 文件,在构建解决方案时自动生成)和步骤定义文件。

由于此流程使用 NUnit 作为测试提供程序,因此我们使用 NUnit Runner 来执行测试。您的命令行调用应如下所示:(使用根文件夹)

{控制台运行程序的路径}\NUnit.ConsoleRunner.3.15.2\nunit3-console.exe“{测试解决方案调试较旧的路径} \ <solution>.dll”

默认情况下,运行程序会创建 NUnit3 XML 格式的报告,某些工具按原样支持该格式。但您也可以选择安装一个插件,通过以下行调整将其转换为 JUnit:

–结果=junit-results.xml;转换=nunit3-junit.xslt

结果文件夹(运行命令的目录)还将包含标准 Ranorex 格式的报告。

结论

Ranorex 针对 BDD 的准备工作已完成。从现在开始,您的业务团队可以按照 Gherkin 语法以自然语言定义用户故事,并且您的开发和 QA 团队可以在步骤定义文件中实现自动化步骤。


上一篇:支持角:处理 Ranorex 中的常见警告

下一篇:Ranorex:7 种渗透测试

发表评论:

评论记录:

未查询到任何数据!

在线咨询

点击这里给我发消息 售前咨询专员

点击这里给我发消息 售后服务专员

在线咨询

免费通话

24小时免费咨询

请输入您的联系电话,座机请加区号

免费通话

微信扫一扫

微信联系
返回顶部