SI, Si no, Fin SI, Existe en QTP/UFT con ejemplo

โšก Resumen inteligente

Sentencias IF Else End If UFT y QTP Los scripts se ramifican en funciรณn de las condiciones de ejecuciรณn, mientras que la propiedad Exist comprueba si aparece un objeto en pantalla antes de que se ejecute la ramificaciรณn, abarcando tambiรฉn ElseIf, If anidado y Select Case.

  • ๐Ÿ”€ Sintaxis bรกsica: Ifโ€ฆThen se combina con un bloque Else opcional y finaliza con End If, ejecutando exactamente una rama por evaluaciรณn.
  • ๐Ÿงฎ Condiciones mรบltiples: ElseIf comprueba las condiciones de arriba abajo y se detiene en la primera coincidencia verdadera, reemplazando largas cadenas de bloques If separados.
  • ๐Ÿช† Lรณgica anidada: Colocar una instrucciรณn If dentro de otra secciรณn Then or Else permite realizar comprobaciones dependientes; para mayor legibilidad, mantenga el anidamiento en dos o tres niveles.
  • ๐ŸŽฏ Seleccionar caso: Compara una variable con varios valores fijos y se lee con mayor claridad que una larga cadena ElseIf.
  • ๐Ÿ” Propiedad existente: Devuelve verdadero o falso para indicar si un objeto estรก en pantalla, la condiciรณn estรกndar para la bifurcaciรณn If Else.
  • ๐Ÿงช Ejemplo aplicado: Combina If Else con Exist para dirigir automรกticamente un script a una ruta de inicio de sesiรณn de reserva de vuelo negativa o positiva.
  • ๐Ÿค– Asistencia de IA: Las herramientas de IA pueden redactar bloques If Else y Select Case, e indicar la falta de sentencias End If durante la depuraciรณn.

ยฟQuรฉ es una instrucciรณn IF-Else en UFT/QTP?

La instrucciรณn IF Else es la estructura de control condicional mรกs comรบn en VBScript, el lenguaje de scripting utilizado para escribir cรณdigo. UFT/QTP scripts de automatizaciรณn. Permite que un script tome una decisiรณn en tiempo de ejecuciรณn: cuando una condiciรณn se evalรบa como verdadera, se ejecuta un bloque de instrucciones, y cuando se evalรบa como falsa, se ejecuta un bloque diferente. Los evaluadores confรญan en esta construcciรณn constantemente, por ejemplo, para bifurcar un script cuando un inicio de sesiรณn tiene รฉxito o falla, o cuando un objeto puede o no aparecer en la pantalla. Para obtener la lista completa de instrucciones condicionales y operadores de comparaciรณn que admite VBScript, consulte la Declaraciรณn condicional de VBScript guรญa.

La forma bรกsica combina Ifโ€ฆThen con un bloque Else opcional y siempre finaliza con End If. UFT/QTP Evalรบa la condiciรณn una sola vez. Si es verdadera, solo se ejecutan las instrucciones entre Then y Else; si es falsa, solo se ejecutan las instrucciones entre Else y End If, y solo se ejecuta una rama. La sintaxis que se muestra a continuaciรณn comprueba un valor numรฉrico y muestra un cuadro de mensaje diferente para cada resultado.

Dim iValue
iValue = 25
If iValue > 18 Then
    MsgBox "Eligible"
Else
    MsgBox "Not Eligible"
End If

In UFT/QTPLa condiciรณn casi siempre compara una propiedad del objeto, el resultado de un punto de control o el valor de retorno de la propiedad Exist, en lugar de un nรบmero simple, ya que la mayorรญa de los scripts validan la aplicaciรณn bajo prueba en lugar de realizar operaciones aritmรฉticas. Todos los ejemplos que aparecen mรกs abajo en esta pรกgina se basan en el mismo patrรณn Ifโ€ฆThenโ€ฆElseโ€ฆEnd If que se muestra arriba; solo cambia la condiciรณn. Cualquiera que sea la condiciรณn que utilice, pruebe siempre las rutas True y False al menos una vez antes de pasar el script a un conjunto de pruebas de regresiรณn.

Sentencia IFโ€ฆThenโ€ฆElseIfโ€ฆElse en UFT/QTP

Una estructura If Else simple solo permite elegir entre dos resultados. Cuando un script necesita evaluar tres o mรกs condiciones mutuamente excluyentes, VBScript agrega ElseIf al mismo bloque. UFT/QTP Comprueba cada condiciรณn de arriba abajo y ejecuta el primer bloque cuya condiciรณn sea verdadera; todos los demรกs bloques, incluido el Else final, se omiten. Esto hace que el script sea mucho mรกs legible que anidar varios bloques If no relacionados entre sรญ.

  • Las condiciones se evalรบan de arriba abajo, y la evaluaciรณn se detiene en la primera condiciรณn que sea verdadera.
  • Cada palabra clave ElseIf necesita su propio Then y su propia condiciรณn.
  • La clรกusula Else final es opcional y solo se ejecuta cuando ninguna de las condiciones anteriores coincide.
  • Un รบnico End If cierra todo el bloque, independientemente de cuรกntas ramas ElseIf contenga.
Dim iMarks
iMarks = 75
If iMarks >= 90 Then
    MsgBox "Grade A"
ElseIf iMarks >= 75 Then
    MsgBox "Grade B"
ElseIf iMarks >= 50 Then
    MsgBox "Grade C"
Else
    MsgBox "Fail"
End If

El script anterior imprime una calificaciรณn diferente para cada rango de puntuaciรณn y deja de comprobar las condiciones adicionales en el momento en que una rama se evalรบa como verdadera, lo que mantiene la eficiencia de los รกrboles de decisiรณn grandes incluso dentro de una ejecuciรณn de automatizaciรณn prolongada.

El mismo patrรณn se aplica directamente a las comprobaciones de la interfaz de usuario: un script podrรญa leer el valor de un campo de estado y usar ElseIf para enrutarlo al manejo de รฉxito, advertencia o fallo dependiendo del texto que encuentre, en lugar de tres bloques If separados que reevalรบan el campo de forma independiente.

Sentencia If anidada en UFT/QTP

Un If anidado coloca un bloque Ifโ€ฆEnd If completo dentro de la secciรณn Then or Else de otro bloque If. UFT/QTP Resuelve primero la condiciรณn externa y solo evalรบa el If interno cuando se entra en esa rama externa. Este patrรณn es adecuado para comprobaciones que dependen unas de otras, como confirmar que un usuario tiene la edad suficiente para votar y luego ramificar de nuevo segรบn el gรฉnero, en lugar de combinar todas las condiciones en una expresiรณn larga con And y Or. Mantรฉn el anidamiento superficial, generalmente no mรกs de dos o tres niveles, porque cada capa adicional hace que un script sea mรกs difรญcil de entender. trace y depurar. En UFT/QTP En tรฉrminos generales, una instrucciรณn If anidada suele comprobar primero el sistema operativo y luego bifurcarse de nuevo en funciรณn del estado del navegador o de la aplicaciรณn, por lo que el bloque interno solo se ejecuta una vez que se confirma el contexto externo.

๐Ÿ’ก Consejo: Sangra cada bloque anidado un nivel adicional y asigna una lรญnea aparte a cada End If. Una sangrรญa consistente es la forma mรกs rรกpida de detectar la falta de un End If antes de que el script falle en tiempo de ejecuciรณn.

Dim iAge, sGender
iAge = 20
sGender = "Male"
If iAge >= 18 Then
    If sGender = "Male" Then
        MsgBox "Eligible male voter"
    Else
        MsgBox "Eligible female voter"
    End If
Else
    MsgBox "Not eligible to vote"
End If

Seleccione la declaraciรณn del caso en UFT/QTP

Select Case es una alternativa a una larga cadena ElseIf cuando cada rama prueba la misma variable รบnica frente a un valor fijo diferente. UFT/QTP Evalรบa la expresiรณn de la lรญnea Select Case una sola vez, la compara con cada valor de Case en orden y ejecuta el primer bloque que coincide. Un Case Else opcional captura cualquier valor que no estรฉ cubierto por ninguno de los casos listados, de forma similar al Else final en un bloque If. Dado que la variable de comparaciรณn se escribe solo una vez, un bloque Select Case largo tambiรฉn es mรกs fรกcil de actualizar posteriormente que una cadena equivalente de sentencias ElseIf que repite el mismo nombre de variable en cada rama.

Los valores de mayรบsculas y minรบsculas se comparan mediante la igualdad y distinguen entre mayรบsculas y minรบsculas, por lo que "Chrome" y "chrome" se consideran coincidencias diferentes a menos que el valor se normalice primero, por ejemplo, con la funciรณn LCase. Consulte la Declaraciรณn de variables en VBScript Guรญa sobre cรณmo las dimensiones y los tipos de datos afectan a estas comparaciones.

Dim sBrowserName
sBrowserName = "Chrome"
Select Case sBrowserName
    Case "Chrome"
        MsgBox "Launching Chrome"
    Case "Firefox"
        MsgBox "Launching Firefox"
    Case "Edge"
        MsgBox "Launching Edge"
    Case Else
        MsgBox "Browser not supported"
End Select
DECLARACIร“N Mejores PARA NรšMERO DE CONDICIONES LEGIBILIDAD A ESCALA
Siโ€ฆSi no Dos resultados condiciรณn 1 Alto
Siโ€ฆSi noโ€ฆSi no Varias afecciones no relacionadas 3 o mรกs condiciones Cae a medida que crecen las ramas
Seleccionar caso Muchos valores fijos de una variable Cualquier nรบmero Se mantiene alto

Case tambiรฉn puede coincidir con un rango usando la palabra clave Is, por ejemplo Case Is > 90 dentro de un bloque Select Case, lo que permite que un solo caso cubra todos los valores por encima de un umbral en lugar de enumerarlos individualmente.

Elija Seleccionar caso siempre que un script compare una variable con muchos valores posibles; mantenga Siโ€ฆSi no si para condiciones que comparen diferentes variables o utilicen rangos y operadores lรณgicos.

Cรณmo usar IF Else con la propiedad Exist en UFT

Haga clic en aquรญ si el video no es accesible

La propiedad Exist devuelve True o False dependiendo de si un objeto estรก presente actualmente en la aplicaciรณn bajo prueba, lo que la convierte en la condiciรณn natural para combinar con If Else. El siguiente ejemplo retoma el escenario clรกsico de funcionalidad de inicio de sesiรณn para la Reserva de vuelo aplicaciรณn de la Pruebas serie, donde un script debe bifurcarse en una ruta de escenario negativo cuando aparece un cuadro de diรกlogo de error, o en una ruta de escenario positivo cuando no aparece. Esto refleja exactamente Escenario de prueba Se explica en el vรญdeo anterior.

  1. Graba dos scripts separados: uno que inicie sesiรณn con una combinaciรณn vรกlida de nombre de agente y contraseรฑa, y otro que inicie sesiรณn con una combinaciรณn no vรกlida.
  2. Inserta un paso If Else inmediatamente despuรฉs del paso de inicio de sesiรณn para que ambas grabaciones se puedan ejecutar dentro de un รบnico script combinado.
  3. Establezca la condiciรณn para comprobar si existe la ventana de informaciรณn de error, utilizando el Existe propiedad en lugar de un paso Click.
  4. Mueva los pasos del escenario negativo, como cerrar la ventana de error y el cuadro de diรกlogo de inicio de sesiรณn, dentro del bloque If.
  5. Mueva los pasos del escenario positivo, como cerrar la ventana de reserva de vuelos, dentro del bloque "Else".
  6. Guarda el script combinado y ejecรบtalo con un conjunto de credenciales vรกlido y otro no vรกlido para confirmar que cada ruta se ejecuta correctamente.
Dim bLoginFailed
bLoginFailed = Browser("Flight Reservation").Page("Flight Reservation").WinObject("Error").Exist(5)

If bLoginFailed Then
    'Negative scenario - invalid login
    Browser("Flight Reservation").Page("Flight Reservation").WinObject("Error").Close
    Dialog("Login").Close
Else
    'Positive scenario - valid login
    Window("Flight Reservation").Close
End If

Ademรกs de If y Else, VBScript tambiรฉn admite Whileโ€ฆWend y Bucles Forโ€ฆNext para repeticiรณn, ademรกs de las instrucciones ElseIf y Select Case cubiertas anteriormente para ramas adicionales. La combinaciรณn de estas construcciones con la propiedad Exist es lo que permite que un รบnico UFT/QTP El script puede gestionar tanto un escenario de prueba positivo como uno negativo sin intervenciรณn manual.

โš  Nota: Pasar un valor mรกs largo a Exist, como Exist(10), hace que... UFT Esperar mรกs tiempo a que un objeto devuelva Falso es รบtil para diรกlogos de carga lenta, pero puede ralentizar todo el conjunto de pruebas si se usa en cada paso. Reserva las esperas largas para objetos realmente lentos. Un tiempo de espera corto y bien elegido mantiene el script combinado de escenarios positivos y negativos fiable y rรกpido de ejecutar en pruebas continuas.

Preguntas Frecuentes

ElseIf evalรบa las condiciones en secuencia y se detiene en la primera coincidencia, lo que lo hace mรกs rรกpido y claro que varios bloques If independientes. Utilice sentencias If separadas solo cuando las condiciones no estรฉn relacionadas y sea necesario comprobarlas todas.

Exist utiliza el UFT tiempo de espera de sincronizaciรณn predeterminado, normalmente unos pocos segundos, a menos que se pase un valor personalizado como Exist(10) dentro de los parรฉntesis para esperar mรกs tiempo por un objeto de carga lenta.

Sรญ. Los asistentes de IA pueden redactar bloques If, ElseIf y Select Case a partir de una descripciรณn en lenguaje sencillo de la lรณgica de la prueba, aunque los evaluadores deben verificar los nombres de los objetos, las propiedades y los valores de tiempo de espera antes de ejecutar el script.

Las herramientas de IA pueden analizar un script, detectar sentencias End If que no coincidan y bloques Else inaccesibles, y sugerir soluciones, lo que acelera la depuraciรณn en comparaciรณn con una revisiรณn manual lรญnea por lรญnea de scripts largos.

Sรญ. Utilice la palabra clave Is dentro de una lรญnea Case, por ejemplo Case Is > 90, para que coincida con todos los valores superiores a un umbral en lugar de enumerarlos individualmente.

Resumir este post con: