- 发行说明
- 入门指南
- 设置和配置
- 自动化项目
- 依赖项
- 工作流类型
- 控制流程
- 文件比较
- 自动化最佳实践
- 源代码控件集成
- 调试
- 日志记录
- 诊断工具
- 工作流分析器
- 变量
- 参数
- 导入的命名空间
- 编码自动化
- 基于触发器的 Attended 自动化
- 录制
- 用户界面元素
- 选取器
- 对象存储库
- 数据抓取
- 图像与文本自动化
- Citrix 技术自动化
- RDP 自动化
- VMware Horizon 自动化
- Salesforce 自动化
- SAP 自动化
- macOS 用户界面自动化
- ScreenScrapeJavaSupport 工具
- Webdriver 协议
- 扩展程序
- Studio 测试
- 故障排除

Studio 用户指南
编码测试用例以结构化的方式自动化和验证应用程序的行为。它们类似于低代码测试用例,允许使用代码进行灵活的自动化。
- 排列 - 排列阶段用于准备应用程序。
- 执行 - 执行阶段执行特定操作。
- 断言 - 断言阶段验证预期结果。
编码测试用例还可以调用其他低代码工作流或测试用例,从而允许重用代码。此集成可用于创建灵活的测试场景。
You can apply execution templates for Coded test cases, as well. Visit Execution Templates to learn how to work with execution templates.
编码自动化采用结构化设计,其中包含命名空间、帮助程序类和入口点方法。编码自动化框架允许您使用 C# 编程语言编写自动化。
请遵循以下部分所述的编码自动化的详细结构。
创建编码自动化时,系统会使用 Studio 项目的名称自动生成命名空间。例如,如果您的 Studio 项目名为“我的项目”,则所有编码自动化的命名空间均为“我的项目”。
此外,如果您在 Studio 项目的文件夹中创建编码自动化,则命名空间将是项目的名称和文件夹的名称。例如,如果您的 Studio 项目名为“我的项目”,而文件夹名为“位置”,则命名空间将为“我的项目.位置”。
CodedWorkflow
部分类。根据项目中已安装的活动包,此类为自动化提供对服务(相当于活动包)必要接口的访问权限。
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) | Registers services (activity packages) to the coded workflow's service locator. You can override it when you want to inject custom services into the dependency injection container. Learn how to create and use custom services (coded activity packages) here. |
Execute()
,并属性化为 Workflow
或 TestCase
。您可以更改方法的名称,只要将其归为 Workflow
或 TestCase
。
Coded Workflow
类的 Execute()
方法([TestCase]
或 [Workflow]
)。
In this method, you can add input and/or output arguments, which are equivalent to In, Out or In/Out arguments in low-code automations. Go through the Working with Input and Output arguments tutorial to learn how to use arguments in coded automations.
Execute()
方法,这使编码工作流和测试用例易于识别为入口点。