studio
2024.10
true
UiPath logo, featuring letters U and I in white

Guía de usuario de Studio

Última actualización 19 de dic. de 2024

Caso de prueba codificado

Los casos de prueba codificados automatizan y validan el comportamiento de la aplicación de forma estructurada. Son similares a los casos de prueba de código bajo y permiten la automatización flexible utilizando código.

Al crear un caso de prueba codificado, defines una estructura Given-When-Then. Esta estructura consta de tres fases:
  1. Organización: la fase de organización prepara la aplicación.
  2. Actuación: la fase de actuación realiza acciones específicas.
  3. Aserción: la fase de aserción verifica los resultados esperados.

Los casos de prueba codificados también pueden invocar otros flujos de trabajo de código bajo o casos de prueba, lo que permite la reutilización del código. Esta integración permite la creación de escenarios de prueba flexibles.

También puedes aplicar las plantillas de ejecución para los casos de prueba codificados. Consulta Plantillas de ejecución para saber cómo trabajar con las plantillas de ejecución.



Estructura

Las automatizaciones codificadas presentan un diseño estructurado con espacios de nombres, clases de ayudantes y métodos de punto de entrada. El marco de las automatizaciones codificadas te permite escribir las automatizaciones utilizando el lenguaje de programación C#.

Sigue la estructura detallada de una automatización codificada como se describe en las siguientes secciones.

Al crear una automatización codificada, se genera automáticamente un espacio de nombres utilizando el nombre del proyecto de Studio. Por ejemplo, si tu proyecto de Studio se llama «Mi proyecto», el espacio de nombres de todas las automatizaciones codificadas será «Miproyecto».

Además, si creas una automatización codificada dentro de una carpeta en tu proyecto de Studio, el espacio de nombre será el nombre del proyecto y el nombre de la carpeta. Por ejemplo, si tu proyecto de Studio se llama «Mi proyecto», y la carpeta se llama «lugar», entonces el espacio de nombres será «Myproject.lugar».

Tanto las automatizaciones del flujo de trabajo codificado como las de casos de prueba codificados utilizan las clases CodedWorkflowparciales del paquete UiPath.CodedWorkflows. Esta clase da a la automatización acceso a las interfaces necesarias para los servicios (iguales a los paquetes de actividades), en función de los paquetes de actividad instalados en tu proyecto.
Nota: el paquete UiPath.CodedWorkflows se incluye automáticamente al importar un paquete de actividades que admita automatizaciones codificadas, como UiPath.System.Activities 23.10 o posterior.

Flujo de trabajo codificado

Las automatizaciones codificadas heredan la clase parcial CodedWorkflow, creando una relación de tipo CodedAutomationExample : CodedWorkflow. Esto significa que la clase CodedAutomationExample hereda los atributos, métodos y funcionalidades de la clase CodedWorkflow. Esencialmente, puede acceder y utilizar las características definidas en la clase CodedWorkflow, lo que proporciona una base para la automatización codificada, facilitando la creación y personalización del comportamiento de la automatización.
La clase CodedWorkflow se declara como clase parcial, lo que te permite ampliar sus funcionalidades definiendo la misma clase parcial CodedWorkflow en un archivo de código fuente. De esta manera, puedes añadir nuevos campos y métodos para personalizar aún más el comportamiento de tus automatizaciones codificadas. Puedes utilizar este enfoque para implementar una interfaz Antes y Después, específicamente para los casos de prueba codificados.
Además, la clase parcial CodedWorkflow hereda la clase CodedWorkflowBase.


CodedWorkflowBase

La clase CodedWorkflowBase contiene las funcionalidades integradas que hereda una automatización codificada. Esta clase contiene métodos y propiedades específicas para gestionar las instancias de flujo de trabajo, el acceso en tiempo de ejecución, la gestión de contenedores de servicio y la configuración de contextos de entorno. La clase CodedWorkflowBase también ofrece otro método independiente para el registro que puedes personalizar tú mismo.
Nota: En la Configuración del editor de código, selecciona Habilitar descompilación de origen para ver la clase CodedWorkflowBase.
Consulta los métodos CodedWorkflowBase en la siguiente tabla:
MétodoDescripción
ICodedWorkflowServices services
Nota: te recomendamos utilizar los métodos Log, BuildClient y RunWorkflow a través de la clase services y sus servicios correspondientes, en lugar de utilizarlos como métodos independientes y fácilmente disponibles.
Proporciona acceso a los servicios disponibles para flujos de trabajo codificados, como:
  • OutputLoggerService: te permite registrar registros de salida, utilizando el método Log.
  • OrchestratorClientService (el método BuildClient): te permite habilitar la interacción con Orchestrator, a través del método BuildClient.
  • WorkflowInvocationService: te permite invocar otros flujos de trabajo, utilizando el método RunWorkflow.
  • Container: el contenedor donde se almacenan todos los servicios. Te permite gestionar los recursos para flujos de trabajo codificados, gestionando la importación automática de espacios de nombres y tipos, utilizando los métodos AutoImportedNamespaces y AutoImportedTypes. Además, proporciona una instancia de un servicio específico, utilizando el método Resolve.
serviceContainer(ICodedWorkflowServiceContainer)
Nota: esto ha sido reemplazado por ICodedWorkflowServices services . Si sigues utilizando esta sintaxis, obtienes una advertencia que te indica que utilices la nueva sintaxis services.Container.
Proporciona acceso al contenedor de inyección de dependencias que es específico para el flujo de trabajo codificado actual. Este contenedor, conocido como el contenedor de servicio, te permite recuperar las instancias de servicios que se hayan registrado en él.
GetRunningJobInformation()Recupera información sobre el trabajo en ejecución actualmente dentro del contexto del flujo de trabajo codificado. El método accede a la propiedad RunningJobInformation del objeto executorRuntime que contiene información sobre el estado del trabajo, el progreso, los parámetros y las marcas de tiempo.
Log(string message, LogLevel level = LogLevel.Info, IDictionary<string, object>additionalLogFields = null)Añade campos de registro adicionales para registrar los mensajes con los atributos especificados.
RunWorkflow(string workflowFilePath,IDictionary<string, object> inputArguments = null,TimeSpan? timeout = null, bool isolated = false, InvokeTargetSession targetSession = InvokeTargetSession.Current)Proporciona una estructura para ejecutar un flujo de trabajo dentro del contexto del tiempo de ejecución del flujo de trabajo dado. Puede establecer parámetros, gestionar el posible aislamiento e iniciar la ejecución del flujo de trabajo. La tarea devuelta proporciona los resultados del flujo de trabajo ejecutado, incluidos sus argumentos de salida y entrada/salida.
RunWorkflowAsync(string workflowFilePath,IDictionary<string, object> inputArguments = null, TimeSpan?timeout = null, bool isolated = false, InvokeTargetSession targetSession = InvokeTargetSession.Current)Proporciona una estructura para ejecutar un flujo de trabajo asíncrono dentro del contexto del tiempo de ejecución del flujo de trabajo dado. Puede establecer parámetros, gestionar el posible aislamiento e iniciar la ejecución del flujo de trabajo. La tarea devuelta proporciona los resultados del flujo de trabajo ejecutado, incluidos sus argumentos de salida y entrada/salida.
DelayAsync(TimeSpan time) y DelayAsync(int delayMs)Suspende la ejecución durante un período de tiempo especificado de forma asíncrona.
Delay(TimeSpan time) y Delay(int delayMs)Suspende la ejecución durante un período de tiempo especificado.
HttpClient BuildClient(string scope = "Orchestrator", bool force = true)Crea un cliente HTTP con un ámbito y un token de acceso especificados.
RegisterServices(ICodedWorkflowsServiceLocator serviceLocator)Registra los servicios (paquetes de actividades) en el localizador de servicios del flujo de trabajo codificado. Puedes anularlo cuando quieras inyectar servicios personalizados en el contenedor de inyección de dependencias. Aprende a crear y utilizar servicios personalizados (paquetes de actividades codificadas) aquí.
El método de punto de entrada tanto para los flujos de trabajo codificados como para los casos de prueba codificados se nombra Execute() y se atribuye como Workflow o TestCase. Puedes cambiar el nombre del método, siempre que lo atribuyas bien a Workflow o a TestCase.
Solo puedes utilizar un método Execute() ( [TestCase]o [Workflow]) dentro de un archivo, que hereda la clase Coded Workflow.

En este método, puedes añadir argumentos de entrada y/o salida, equivalentes a los argumentos In, Out o In/Out en las automatizaciones de código bajo. Consulta el tutorial Trabajar con argumentos de entrada y salida para aprender a utilizar argumentos en las automatizaciones codificadas.

Este método de punto de entrada sirve como punto de partida para ejecutar las automatizaciones. Esto hace que los flujos de trabajo codificados y los casos de prueba sean fáciles de identificar como puntos de entrada debido a su método Execute().


Compatibilidad de proyectos

Puedes utilizar las automatizaciones codificadas solo en los proyectos Windows y Multiplataforma.

¿Te ha resultado útil esta página?

Obtén la ayuda que necesitas
RPA para el aprendizaje - Cursos de automatización
Foro de la comunidad UiPath
Uipath Logo White
Confianza y seguridad
© 2005-2024 UiPath. Todos los derechos reservados.