studio
2024.10
true
- 发行说明
- 入门指南
- 设置和配置
- 自动化项目
- 依赖项
- 工作流类型
- 控制流程
- 文件比较
- 自动化最佳实践
- 源代码控件集成
- 调试
- 日志记录
- 诊断工具
- 工作流分析器
- 变量
- 参数
- 导入的命名空间
- 编码自动化
- 基于触发器的 Attended 自动化
- 录制
- 用户界面元素
- 选取器
- 对象存储库
- 数据抓取
- 图像与文本自动化
- Citrix Technologies Automation
- RDP 自动化
- VMware Horizon 自动化
- Salesforce 自动化
- SAP 自动化
- macOS 用户界面自动化
- ScreenScrapeJavaSupport 工具
- Webdriver 协议
- 扩展程序
- 测试套件 - Studio
- 故障排除
Studio 用户指南
Last updated 2024年11月18日
编码测试用例
编码测试用例以结构化的方式自动化和验证应用程序的行为。它们类似于低代码测试用例,允许使用代码进行灵活的自动化。
创建编码测试用例时,请定义 Given-When-Then 结构。此结构由三个阶段组成:
- 排列 - 排列阶段用于准备应用程序。
- 执行 - 执行阶段执行特定操作。
- 断言 - 断言阶段验证预期结果。
编码测试用例还可以调用其他低代码工作流或测试用例,从而允许重用代码。此集成可用于创建灵活的测试场景。
您也可以将执行模板应用于编码测试用例。请访问执行模板,了解如何使用执行模板。
编码自动化采用结构化设计,其中包含命名空间、帮助程序类和入口点方法。编码自动化框架允许您使用 C# 编程语言编写自动化。
请遵循以下部分所述的编码自动化的详细结构。
创建编码自动化时,系统会使用 Studio 项目的名称自动生成命名空间。例如,如果您的 Studio 项目名为“我的项目”,则所有编码自动化的命名空间均为“我的项目”。
此外,如果您在 Studio 项目的文件夹中创建编码自动化,则命名空间将是项目的名称和文件夹的名称。例如,如果您的 Studio 项目名为“我的项目”,而文件夹名为“位置”,则命名空间将为“我的项目.位置”。
编码工作流和编码测试用例自动化都使用 UiPath.CodedWorkflows 包中的
CodedWorkflow
部分类。根据项目中已安装的活动包,此类为自动化提供对服务(相当于活动包)必要接口的访问权限。
注意:导入支持编码自动化的活动包(例如 UiPath.System.Activities 23.10 或更高版本)时,会自动包含 UiPath.CodedWorkflows 包。
编码自动化继承
CodedWorkflow
部分类,创建类型为 CodedAutomationExample : CodedWorkflow
的关系。这意味着 CodedAutomationExample
类从 CodedWorkflow
类继承了属性、方法和功能。本质上,该类可以访问和利用 CodedWorkflow
类中定义的功能,从而为编码自动化奠定了基础,使构建和自定义自动化的行为变得更加容易。
CodedWorkflow
类被声明为部分类,从而允许您通过在代码源文件中定义相同的部分 CodedWorkflow
类来扩展其功能。通过这种方式,您可以添加新的字段和方法,以进一步自定义编码自动化的行为。您可以使用此方法实现专门用于编码测试用例的“前”和“后”接口。
此外,
CodedWorkflow
分部类继承 CodedWorkflowBase
类。
CodedWorkflowBase
类包含编码自动化继承的内置功能。此类包含用于管理工作流实例、运行时访问、处理服务容器以及配置环境上下文的方法和特定属性。CodedWorkflowBase
类还提供了另一种单独的日志记录方法,您可以自定义该方法。
注意:在“代码编辑器设置”中,选择“启用源代码反编译” 以查看
CodedWorkflowBase
类。
请查看下表中的
CodedWorkflowBase
方法:
方法 | 描述 |
---|---|
ICodedWorkflowServices services 注意:我们建议您通过
services 类及其相应服务使用 Log 、BuildClient 和 RunWorkflow 方法,而不是将其用作独立的现成方法。
| 提供对编码工作流可用服务的访问权限,例如:
|
serviceContainer(ICodedWorkflowServiceContainer) 注意:这已替换为
ICodedWorkflowServices services 。如果继续使用此语法,您将收到警告,警告会提示您使用新的 services.Container 语法。
| 提供对特定于当前编码工作流的依赖项注入容器的访问权限。此容器称为服务容器,可用于检索已在其中注册的服务实例。 |
GetRunningJobInformation() | 在编码工作流的上下文中检索当前正在运行的作业的相关信息。该方法访问 executorRuntime 对象的 RunningJobInformation 属性,该属性保存有关作业状态、进度、参数和时间戳的信息。
|
Log(string message, LogLevel level = LogLevel.Info, IDictionary<string, object> additionalLogFields = null) | 将其他日志字段添加到具有指定属性的日志消息。 |
RunWorkflow(string
workflowFilePath, IDictionary<string, object> inputArguments = null, TimeSpan? timeout = null, bool isolated = false,
InvokeTargetSession targetSession = InvokeTargetSession.Current) | 提供在给定工作流运行时的上下文中执行工作流的结构。它可以设置参数,处理潜在的隔离并启动工作流执行。返回的任务提供已执行工作流的结果,包括其输出和输入/输出参数。 |
RunWorkflowAsync(string
workflowFilePath, IDictionary<string, object> inputArguments = null, TimeSpan? timeout = null, bool isolated = false,
InvokeTargetSession targetSession = InvokeTargetSession.Current) | 提供在给定工作流运行时的上下文中异步执行工作流的结构。它可以设置参数,处理潜在的隔离并启动工作流执行。返回的任务提供已执行工作流的结果,包括其输出和输入/输出参数。 |
DelayAsync(TimeSpan time) 和 DelayAsync(int delayMs) | 在指定的一段时间内异步暂停执行。 |
Delay(TimeSpan time) 和 Delay(int delayMs) | 在指定的时间段内暂停执行。 |
HttpClient BuildClient (string scope = "Orchestrator", bool force = true) | 构建具有指定作用域和访问令牌的 HTTP 客户端。 |
RegisterServices (ICodedWorkflowsServiceLocator serviceLocator) | 将服务(活动包)注册到编码工作流的服务定位器。当您要将自定义服务注入依赖项注入容器时,可以覆盖它。在此处了解如何创建和使用自定义服务(编码活动包)。 |
编码工作流和编码测试用例的入口点方法名为
Execute()
,并属性化为 Workflow
或 TestCase
。您可以更改方法的名称,只要将其归为 Workflow
或 TestCase
。
您只能在文件中使用一种继承
Coded Workflow
类的 Execute()
方法([TestCase]
或 [Workflow]
)。
在此方法中,您可以添加输入和/或输出参数,这些参数相当于低代码自动化中的 In、Out 或 In/Out 参数。浏览“使用输入和输出参数”教程,了解如何在编码自动化中使用参数。
此入口点方法可用作运行自动化的起点。由于其
Execute()
方法,这使编码工作流和测试用例易于识别为入口点。