Cómo usar transacciones en QTP/UFT

⚡ Resumen inteligente

Transacciones en UFT Una medida de cuánto tiempo tarda en ejecutarse una sección elegida de una prueba, mediante wrapping aquellos pasos entre una instrucción de inicio y una instrucción de fin que informa la duración en los resultados de la ejecución.

  • 🔘 Propósito: Una transacción se mide por un flujo de negocio, como la reserva de un vuelo, en lugar de por la prueba completa.
  • ☑️ Inserción: El menú Insertar añade las instrucciones de Inicio de transacción y Fin de transacción alrededor de los pasos seleccionados.
  • ✅ declaraciones: Los métodos Services.StartTransaction y Services.EndTransaction realizan la misma función directamente en el Editor.
  • 🧪 Resultados: El informe final muestra el nombre, el estado, la duración total y el tiempo perdido.
  • 🛠️ Anidamiento: Las transacciones pueden estar anidadas, pero dos transacciones abiertas nunca deben compartir el mismo nombre.
  • ⚠️ Integración: LoadRunner y Business Process Monitor solo leen los datos registrados dentro de una transacción.

Cómo usar transacciones en QTP UFT

In UFT Un/QTPPuedes medir cuánto tiempo tarda en ejecutarse una sección de tu prueba definiendo transacciones. Para definir transacciones dentro de tu prueba, debes encerrar las secciones correspondientes entre las instrucciones de inicio y fin de transacción.

Las transacciones se pueden insertar en cualquier parte del script, y no hay límite en la cantidad de transacciones que se pueden agregar a una prueba.

⚠️ Nomenclatura del producto: La herramienta se comercializó como HP QuickTest Professional (QTP), se convirtió en HP y luego en Micro Focus Unified Functional Testing, y hoy en día es vendida por OpenText, cuyas páginas de ayuda actuales lo llaman OpenText Pruebas funcionales. Las transacciones funcionan de la misma manera en todas esas versiones.

Cómo insertar transacciones en QTP?

También puedes insertar una transacción dentro de una transacción.

El siguiente video le muestra los pasos para insertar una transacción en UFT Uno.

Haga clic en aquí si el video no es accesible

Por ejemplo, es posible que desee anotar el tiempo necesario para reservar un vuelo.

  1. In QTPSeleccione el estado apropiado donde desea iniciar su transacción.
  2. Seleccione Insertar transacción inicial. Diálogo Iniciar transacción Box opens
  3. Asigne un nombre adecuado a la transacción, diga "Tiempo de reserva".
  4. Se agrega una declaración de inicio de transacción en la prueba.
  5. Seleccione el estado donde desea finalizar la transacción
  6. Haga clic en Insertar > Finalizar transacción
  7. Diálogo de finalización de transacción Box Se abre con la lista de todas las transacciones disponibles.
  8. Haga clic en Aceptar. Se agrega una declaración de finalización de transacción.
  9. Hagamos la prueba
  10. En los resultados, el estado de cuenta final de la transacción indica el tiempo necesario para insertar el pedido.

Nota: Se accede a los mismos cuadros de diálogo desde el Vista de palabras clavey el Paso Generator Inserta las mismas instrucciones sin abrir el menú Insertar.

Estados de transacciones en el editor

Los cuadros de diálogo anteriores escriben dos VBScript líneas en la prueba. Typing Crearlos uno mismo en el Editor es más rápido una vez que se está familiarizado con el patrón, y es la única opción cuando los pasos se generan mediante código.

Services.StartTransaction "Booking Time"

' the steps that book the flight go here

Services.EndTransaction "Booking Time"

Ambos métodos pertenecen al objeto Services. La instrucción start toma un argumento, mientras que la instrucción end toma un segundo argumento opcional.

Comunicado Argumentos ¿Qué hace?
Servicios.IniciarTransacción Nombre Comienza la medición del tiempo en ese punto de la carrera.
Servicios.Fin de la transacción Nombre, [Estado] Detiene la medición y registra el resultado.

El estado opcional decide cómo se califica la transacción. Omitirlo es lo mismo que aprobar. vehículos.

  • vehículos — se ejecuta correctamente a menos que se haya producido un error entre las dos instrucciones. Este es el comportamiento predeterminado.
  • Pasó — siempre termina con un estado de Aprobado.
  • No pasó — siempre termina con un estado de Fallo.
Services.StartTransaction "Booking Time"
Wait 1
Services.EndTransaction "Booking Time", Pass

Resultados de la transacción de lectura

Una vez finalizada la prueba, el paso "Fin de transacción" en los resultados de la ejecución contiene cuatro valores que explican la medición.

Campo de resultado Significado
Nombre de la transacción El nombre proporcionado en la declaración de inicio
Estado final Aprobado o reprobado, decidido por el argumento de estado o por Automático
Duración total Tiempo transcurrido entre las declaraciones de inicio y fin
Tiempo perdido Tiempo dentro de la duración que UFT Uno mismo añadió

El tiempo perdido importa porque la herramienta ejecuta procesos en segundo plano mientras la transacción está abierta. Subtract a partir de la duración total para estimar lo que habría tomado la aplicación por sí sola, que es el número que vale la pena comparar entre compilaciones.

La duración de un solo usuario es un punto de referencia funcional, no una cifra de carga. La concurrencia se mide mediante un pruebas de rendimiento herramienta, y una transacción que funciona bien para un usuario aún puede colapsar con cien.

Transacciones anidadas y distribuidas

La lista de pasos de origen indica que una transacción puede estar dentro de otra, lo que permite aislar un subpaso lento sin perder la sincronización de todo el flujo. La transacción externa continúa ejecutándose mientras la interna se abre y se cierra.

Dos reglas garantizan la seguridad en la anidación.

  • Cada nombre necesita una pareja que coincida, y la instrucción de inicio debe aparecer antes de su instrucción de finalización.
  • Solo se puede abrir una transacción con un nombre determinado a la vez. Abrir una segunda transacción con el mismo nombre finaliza la primera con el estado de Fallo.

Una transacción distribuida va más allá y abarca dos pruebas: Servicios.IniciarTransacciónDistribuida lo abre en la primera prueba y Servicios.FinTransacciónDistribuida lo cierra en el segundo, coincidiendo con un ID único en lugar de por nombre. Existe para Business Process Monitor y LoadRunner escenarios que leen únicamente los datos registrados dentro de una transacción e ignoran todo lo que está fuera de ella.

Cuando un paso dentro de una transacción puede fallar legítimamente, empareje la transacción con una escenario de recuperación por lo que la ejecución llega a la instrucción final en lugar de detenerse.ping Medio camino.

Preguntas Frecuentes

Una transacción informa un resultado con nombre y un estado en los resultados de la ejecución y en LoadRunner. MercuryEl temporizador solo mide los milisegundos transcurridos dentro del script, que luego usted mismo informa o convierte.

Sincronice la operación no relacionada con un MercuryA continuación, se pasa el valor del temporizador a Services.AddWastedTime. El tiempo perdido se deduce de cada transacción abierta, por lo que la duración mostrada refleja únicamente el flujo que se está probando.

Un error antes de la instrucción final detiene la ejecución de forma predeterminada. En el panel Ejecutar de Configuración de prueba, configure la opción de error para que continúe con el siguiente paso, de modo que se alcance la instrucción final y se registre la transacción.

En el controlador de LoadRunner, en lugar de en la ventana de resultados de ejecución. Solo se envían los pasos incluidos en una transacción, por lo que cualquier paso que no esté dentro de un par de inicio y fin nunca llega al informe de rendimiento.

Sí. Services.SetTransaction requiere un nombre, una duración en segundos y un estado, lo que permite que un script registre una medición que él mismo calculó en lugar de una que la herramienta cronometró.

Los modelos de aprendizaje automático establecen una línea base para cada transacción con nombre en todas las compilaciones y generan una alerta cuando una duración se desvía más allá de su rango normal, detectando una regresión lenta que un estado de aprobado o reprobado por sí solo ocultaría.

Sí. Copiloto de GitHub Completa el par Services.StartTransaction y Services.EndTransaction a partir de un comentario, aunque el nombre de la transacción y la constante de estado aún deben verificarse con respecto a la convención de nomenclatura en uso.

No existe un límite técnico, pero una transacción por flujo de negocio permite que el informe sea legible. Decenas de transacciones pequeñas ocultan la cifra importante entre el ruido de medición.

Resumir este post con: