前言:【【非原创】】UiPath Advanced RPA Developer Certification Training的课程资料机翻版。
课程链接:Link
1 课程大纲
欢迎!
测试您的软件可以降低维护成本,从而增加其价值。这适用于 RPA。
本课程将 RPA 测试定位在整个自动化过程中,并深入介绍了在 UiPath Studio Pro 中进行测试的相关功能。它主要关注 RPA 单元测试,包括来自 UiPath 开发团队实施的项目的最佳实践。
2 关于本课程
您将在本课程中学到什么
在本课程结束时,您应该能够:
- 解释影响机器人维护的原因以及如何解决这些问题。
- 构建 RPA 测试案例。
- 描述 RPA 测试的级别。
- 为 RPA 工作流创建基本和数据驱动的测试用例。
- 使用 Studio Pro 的活动覆盖工具来评估 RPA 工作流是否被测试用例很好地覆盖。
- 在RPA testin中使用mock测试模拟真实对象
- 遵循 RPA 开发人员从实际自动化项目中确定的良好案例实践。
3 先决条件
需要以下技术设置:
-
已启用 Studio Pro 配置文件
RPA 测试功能只能在 Studio Pro 中使用。这可以从 Studio 后台视图、设置、许可证和配置文件中启用。
为了能够启用 Studio Pro 配置文件,您将需要 RPA Developer Pro 许可证。为此,请与您的组织管理员联系以获取或使用 UiPath 自动化云的社区计划。 -
安装了测试活动包
验证活动是 RPA 测试的核心。为了使用这些,从 Studio 的包管理器安装测试活动包。
4 RPA 测试简介
RPA 是软件。它经历了所有软件开发阶段,包括测试。 RPA 测试处理通常在生产中发现的问题,但旨在在过程中尽早进行。
观看下面的视频,了解 RPA 测试的介绍、它解决的问题类型以及如何及早解决这些问题。
主要要点
- 自动化的预期投资回报率与实际投资回报率之间可能存在巨大差距。
- RPA 和一般的自动化需要维护工作。主动维护总是比被动维护好。
- 从 RPA 项目开始就认真对待维护将降低成本并增加节省。
- RPA是软件开发。在软件开发中,我们知道在部署到生产环境之前修复错误比在生产环境中修复错误要便宜好几倍。
- 什么打破了机器人?三个主要原因:应用程序更改、环境问题和自动化问题。
- 所有这三个都可以通过适当的 RPA 测试在开发、IT 运营和生产之间实施质量关口来解决。
- 修复错误需要在它第一次出现时完成,而不是在生产中。这是 RPA 左移。
- 持续集成为构建、打包和测试软件提供了一个框架,最终目标是使开发成为一项低维护任务,使您能够在企业内成功扩展 RPA。
RPA 测试的级别
由于 RPA 开发经历了常规的软件开发阶段,因此 RPA 测试与软件测试不是完全不同。有四个主要级别:单元(组件)测试、集成测试、系统测试和验收测试。
-
Unit (component) testing 单元(组件)测试
之所以称为单元测试,是因为自动化项目的功能应该分解为可以单独测试的单元或组件(以工作流的形式)。当单元测试集成到开发过程中并由开发人员自己完成时,它对项目质量的影响最大。在单元测试中,非必要或复杂的对象应替换为模拟对象。 -
Integration testing 集成测试
在这种类型的测试中,重点是组件或系统之间的交互。这通常是在确保组件级别的质量之后的后续阶段。这可以由专业测试人员或开发人员完成。它也可以在持续集成/持续部署框架中完成,其中每次向现有自动化添加新功能时都会执行测试集。 -
System testing 系统测试
这里的重点是整个系统。在大型端到端自动化中,这将在不同的组件在不同的配置和场景中进行测试之后出现。系统测试需要一个专用的预生产环境,在该环境中,测试人员可以获得与自动化上线后用户相同的体验。 PDD 应该包含许多有用的信息来为这个级别创建测试用例。 -
Acceptance testing 验收测试 这也涉及整个系统,但由业务用户执行。这里的目标是检查目标受众与软件的交互是否与开发人员的预期不同。
5 基本和数据驱动的 RPA 测试用例
UiPath 测试套件为自动化开发期间以及集成期间和将其投入生产之前的 RPA 测试提供了完整的解决方案。根据部署模型,RPA 测试可以集成到持续集成环境中。
但是 RPA 测试的第一个目标(至少按时间顺序)是在 RPA 开发阶段尽早解决应用程序问题和自动化问题。观看下面的视频,了解 UiPath Studio Pro 用于 RPA 单元测试的内置功能。
5.1 测试用例的结构
在 Studio Pro 中创建 RPA 测试用例的最简单方法是右键单击“项目”面板中的工作流并选择“创建测试用例”。这样创建的测试用例将具有行为驱动的开发结构。
-
测试用例
根据行为驱动的开发模型,测试用例由 3 个不同的部分组成:Given、When 和 Then。 -
Given部分
此块是完成初始化的地方,以便测试用例正确执行。例如,通过打开正确的应用程序并配置它们来准备环境。变量和参数正在使用所需的值进行初始化,等等。 -
When部分
通常,这是使用输入测试数据调用和运行 RPA 工作流的地方。它应该包含测试范围,更准确地说是执行测试用例所需的确切步骤。 -
Then部分
这个块是验证点。它是根据预期结果验证测试用例输出数据的地方,通常使用测试包中的专用活动。
5.2 测试用例
这些活动旨在用于 Then 块中,以验证测试用例执行的结果。
- 验证表达式
此活动验证单个表达式(例如,两个变量是否相等)。它的结果可以是 True 或 False。
- 使用运算符验证表达式
此活动使用 6 个预定义运算符比较两个表达式、变量或参数的结果。它的结果也可以是 True 或 False。
- 验证控件属性
这是第一版测试活动包中最通用的活动。它允许将另一个活动返回的属性与表达式、变量或参数进行比较。它的结果也可以是 True 或 False。
5.2.1 基本测试用例与数据驱动测试用例
基本测试用例使用一组数据运行,通常根据静态值验证结果。为了在不同场景中测试 RPA 工作流程,使用了数据驱动测试。这通常使用包含数据变化的 Excel 文件,并且测试用例为每个选定的数据集运行一次。
通过添加具有数据变化的文件,可以轻松地将基本测试用例转换为数据驱动的测试用例。执行此操作时,将使用数据变体文件中的列名称自动创建参数。
5.2.2 活动覆盖率
在应用程序测试中,测试通常只关注结果。在 RPA 测试中,我们通常希望确保在执行期间涵盖自动化流程的每个步骤。 Studio Pro 提供了两个功能,旨在支持开发人员监控测试用例覆盖工作流的程度:活动覆盖小部件和活动覆盖面板。
活动覆盖小部件
- 活动覆盖小部件计算从原始工作流成功运行的活动的百分比。
- 活动运行将显示为绿色,而未执行的活动将显示为红色。
- 随着测试用例的运行,小部件会实时更新。
活动覆盖率面板
- 活动覆盖率面板显示所有运行的测试用例覆盖的工作流中活动的百分比,并按测试用例细分。
- 该面板允许切换以仅显示未发现的活动。这有助于轻松识别必须为其创建测试用例的活动。同时,可以借助进度条轻松跟踪覆盖范围。
6 模拟测试
自动化项目通常处理没有单独的非生产环境的业务应用程序。在这种情况下,在开发过程中测试 RPA 工作流程可能会因生产中的影响而变得有风险,或者因所需的特殊资源而变得昂贵。
模拟测试或模拟提供了一种通过创建模拟真实对象行为的对象来替换依赖项的方法。这些对象通常超出了测试工作的范围,至少在单元测试阶段是这样。
7 RPA 测试最佳实践
- 自动化项目中的模块化
良好的测试在测试用例之前就开始了。自动化项目应该分解为原子工作流,每个工作流都有一个目的和尽可能少的操作。这样,它将很容易理解并对其进行单元测试。 - 测试用例中的模块化
一个测试用例应该有一个目的并且最好包含一个验证。另一方面,每个功能都应该有一个单元测试。如果有例外,请为每个例外创建单独的测试用例。 - 干净的结构
从工作流创建的测试用例具有 Given-When-Then 结构。您可以使用其他结构或框架,但请确保保持清洁。如果 Given 块变得过于繁琐,则可能表明您尝试进行单元测试的工作流应该更加原子化。 - 自治
测试用例应该是自治的,这意味着一个测试用例不应该依赖于另一个测试用例的运行。 - 模拟
当存在与测试用例目的无关的复杂步骤时使用模拟 - 保持测试用例最新
使用每个变更请求更新测试用例。 - 可重用性
如果存在与其他自动化项目相关的测试用例,请使用 Studio Pro 中的导入测试用例功能。如果您需要重命名测试用例,请仅在 Studio Pro 中执行,而不能在外部执行。 - 单元测试之后
如果您的开发模型配置为持续集成/持续部署,请将测试用例包含在 CI/CD 管道中。准备一个 RPA 测试集,只要环境发生变化,IT 团队就可以在预生产环境中运行该测试集。另一方面,只要您提交对自动化项目的更改,就运行测试集。
8 实践
8.1 实践 - RPA 测试
自动化和测试散列过程
在 http://www.sha1-online.com 上构建一个使用多种散列方法散列“UiPath”一词的自动化程序。使用数据驱动的 RPA 测试根据以下文件中的输出检查输出。
- RPA 工作流程
- 在 http://www.sha1-online.com 上打开一个 Internet Explorer 窗口,并从一个附加浏览器活动开始,指示 Internet Explorer 窗口。
- 或者,使用打开浏览器,从“属性”面板中选择 Internet Explorer 浏览器并在活动中输入地址。
- 在 Do 块中添加一个 Type Into。指明相应的字段。创建一个方向为“in”的全局参数,并将其输入到 Type Into 活动中。
- 在 Type Into 下添加 Select Item 活动,也在 Do 块中。指明相应的字段。创建一个方向为“in”的全局参数,并将其放置在 Select Item 活动中。
- 在 Select Item 下添加 Click 活动。指示相应的按钮。
- 在 Click 活动下添加一个 Get Text 并指示相应的字段。创建一个方向为“out”的参数并将其添加到“获取文本”活动中。
- 添加一个日志消息活动,使用以下表达式:in_HashWord + " hashed by " + in_HashMethod + " is " + out_Result。
- 测试用例
- 右键单击 RPA 工作流并选择创建测试用例。
- 右键单击测试用例并选择添加测试数据。指明“Results.xlsx”文件。带有列名的参数是自动创建的。
- 单击 When 块的 Import Arguments 并将 RPA 工作流参数与导入的参数匹配。为您为用于 RPA 工作流程的单词创建的参数输入“UiPath”。
- 在 Then 块中添加带有操作员活动的验证表达式。使用左侧 RPA 工作流程中的 out 参数和右侧的 Result 参数。