Beruflich Dokumente
Kultur Dokumente
QTP - Introduccin
QTP significa Quick Test Profesional, un producto de Hewlett
Packard (HP). Esta herramienta ayuda a los Tester para realizar una
prueba funcional automatizada sin problemas y sin vigilancia si el
desarrollo del guin es completa.
HP QTP utiliza Visual Basic Scripting (VBScript) para la
automatizacin de las aplicaciones. El motor de secuencias de
comandos no necesita ser instalado en exclusiva, ya que es parte
disponible del sistema operativo Windows. La versin actual de
VBScript es 5.8, que est disponible como parte de Win 7 VBScript
no es un lenguaje orientado a objetos, sino un lenguaje basado en
objetos.
Prueba de Herramientas:
Herramientas de un contexto de pruebas de software, se
pueden definir como un producto que soporta una o ms actividades
de prueba directamente desde la planificacin, los requisitos, la
creacin de una construccin, ejecucin de la prueba, el registro de
defectos y anlisis de la prueba.
CLASIFICACIN DE HERRAMIENTAS
Las herramientas se pueden clasificar en funcin de varios
parmetros. Incluye,
El propsito de la herramienta
Las actividades que se admiten dentro de la herramienta
El tipo / nivel de pruebas que soporta.
El tipo de licencias (de cdigo abierto, gratuito, comercial)
La Tecnologa utilizada.
TIPOS DE HERRAMIENTAS:
S.N
Tipo de herramienta Se utiliza para Utilizado por
o#
Estticas Herramientas de
3. Prueba esttica Desarrolladores
anlisis
Herramientas ejecucin de
5.
las pruebas
Implementacin, ejecucin Tester
Herramientas de medicin
7. Proporciona cobertura estructural Desarrolladores
de la cobertura
La planificacin de
Gerentes de
9. proyectos y herramientas de Para Planificacin
Proyecto
rastreo
Herramientas de Gestin de
10.
Incidentes
Para la gestin de las pruebas Tester
DNDE USAR QTP?
QTP es una herramienta de prueba funcional, que es el ms
adecuado para las pruebas de regresin de las aplicaciones. QTP
es una herramienta con licencia / propiedad comercial de HP, que es
una de las herramientas ms populares disponibles en el mercado.
En l se compara el resultado real y esperado, y reporta los
resultados de la ejecucin sumaria.
V1.0 Quick Test Astra a v5.5 - Mercury Interactive Mayo 1998-agosto 2001
Quicktest v6.5 Profesional para v9.0 - Mercury Interactive Septiembre 2003-abril 2006
V9.1 Hp-QuickTest Profesional para v11.0 - adquieran y liberen Febrero 2007 a septiembre
por HP 2010
Ventajas:
El desarrollo de pruebas automatizadas usando VBScript no
requiere un programador altamente calificado y es relativamente
fcil en comparacin de otros lenguajes de programacin
orientado a objetos.
Fcil de usar, la facilidad de navegacin, resultado de la
validacin y generacin de informes.
Fcilmente integrado con la herramienta de gestin de pruebas
(Centro de Hp-Quality), que permite una fcil programacin y
seguimiento.
Tambin se puede utilizar para Mobile Application Testing.
Dado que es un producto de Hp, con el pleno apoyo proporcionado
por HP y por sus foros para abordar cuestiones tcnicas.
Desventajas:
A diferencia de selenio ( Sistema que funciona para Web en
Firefox ), QTP slo funciona en el sistema operativo Windows.
No todas las versiones de los navegadores son compatibles y los
Tester tienen que esperar a que el parche sea liberado para cada
una de las versiones principales.
Habiendo dicho eso, es una herramienta comercial, el costo de
licencias es muy alta.
A pesar de que el tiempo de codificacin del scripting es menor,
el tiempo de ejecucin es relativamente ms alto, ya que pone la
carga de trabajo del CPU y manejo de memoria RAM, muy alto.
Instalacin QTP:
QTP es una herramienta comercial se puede descargar desde el
sitio de HP directamente. A continuacin se muestra la URL
desde donde la versin de prueba se puede descargar.
La URL de descarga:
http://www8.hp.com/us/en/software-solutions/functional-
testing.html
Procedimiento de instalacin:
Paso 1 - Haga click en "prueba y demostracin" enlace y
seleccionar "Hp Unified Functional Testing 11.50 en Ingls SW E-
Media Evaluacin" como se muestra a continuacin:
Grabacin y reproduccin
La Grabacin de una prueba se refiere a la grabacin de las
acciones por el usuarios de la aplicacin bajo prueba para que UFT
genera automticamente las secuencias de comandos que se
pueden reproducir. La Grabacin y reproduccin nos pueden dar la
primera impresin de comandos, si la herramienta puede soportar la
tecnologa o NO, si los ajustes iniciales se hacen correctamente.
Los Pasos para la grabacin y reproduccin es el siguiente:
continuacin:
Tema Descripcin
Objeto del espa y sus
Para entender el uso del objeto Spy y sus funcionalidades asociadas.
caractersticas
Trabajar con repositorio de Aadir, modificar, eliminar objetos de un repositorio de objetos y
objetos sus funciones asociadas.
Objetos definidos por el Se ocupa de las circunstancias, para utilizar los objetos definidos
usuario por el usuario.
Objeto de repositorio en Trata con covertir Repositorios de Objetos (RO) a XML y cmo
XML utilizar el Repositorio objeto como XML.
Objeto Spy:
Objeto del espa es una utilidad / opcin ( utility/option ) dentro
QTP para aadir objetos al repositorio de objetos OR. Al objeto del
ObjectSpy se puede acceder desde la barra de herramientas como se
muestra a continuacin:
Este repositorio de objetos es uno disponible Este tipo de OR est disponible para mltiples
para cada accin. pruebas y de mltiples acciones.
Esta es la sala de operaciones que est Este tipo de OR se utiliza normalmente en los
disponible para cada uno de las pruebas de marcos considerandos re utilizables y con
forma predeterminada. facilidad de mantenimiento.
Se guardan con la extensin .bdb SOR se guarda con una extensin .tsr
Se debe utilizar cuando no muchas pruebas SOR debe utilizarse cuando existen diferentes
estn trabajando en las mismas pantallas de la scripts que interactan con el mismo tipo de
aplicacin bajo prueba. objeto.
QTP - Objetos definidos por el usuario(User
Defined Objects )
Paso 3:
La
ndice ( Index ):
Un objeto que aparece por primera vez en la pgina / ventana
( page/Window ) tendr un valor del ndice ms pequeo en
comparacin con otro objeto que viene ms adelante en la misma
pgina / ventana.
Nombre de ndice de
objeto Valor
TextBox 1 0
TextBox 4 1
TextBox 2 2
TextBox 5 3
TextBox 3 4
TextBox 6 5
Ubicacin ( Location ):
La propiedad Location funciona verticalmente de arriba a abajo
y de izquierda a derecha. De ah que para el mismo caso, el valor
de ubicacin para el grupo de cuadros de texto ser el siguiente:
Nombre de ndice de
objeto Valor
TextBox 1 0
TextBox 2 1
TextBox 3 2
TextBox 4 3
TextBox 5 4
TextBox 6 5
Hora de creacin ( Creation Time ):
La propiedad de Creacin es vlido slo para aplicacin basada
en web. Cuando abrimos 2 sesiones de navegador de la misma
pgina web, QTP no ser capaz de reconocer la ventana ya que tanto
la ventana tendr el mismo conjunto de propiedades. Por lo tanto
podemos usar el tiempo de la creacin con la que QTP ser capaz de
actuar sobre la ventana.
Dim i
' obj.Count value tiene el nmero de enlaces en la pgina
For i = 0 to obj.Count - 1
'obtener el nombre de todos los eslabones de la pgina
x = obj(i).GetROProperty("innerhtml")
print x
Next
Acciones:
Las Acciones ayuda a los Tester para dividir guiones en grupos
de declaraciones QTP llamadas acciones. Las acciones son
similares a las funciones en VBScript, sin embargo, hay algunas
diferencias. Por defecto QTP crea una prueba con Accin1.
Acciones Funciones
Las acciones tienen .mts extensin Las funciones se guardan como .vbs o .qfl
Las acciones pueden ser reutilizables o no. Las funciones son siempre reutilizable.
Las propiedades de la accin se puede acceder haciendo click
derecho en la ventana del editor de secuencias de comandos y
"Propiedades" ( "Properties" )Seleccin.
Propiedades de accin contiene informacin siguiente
Nombre de la accin
Ubicacin
Bandera reutilizable
Parmetros de entrada
Parmetros de salida
Tipos de acciones:
Hay tres tipos de acciones:
Accin no reutilizable - Una accin que se puede llamar slo
en esa prueba especfica en la que se ha diseado y se puede
llamar una sola vez
Accin reutilizable - Una accin que se puede llamar varias
veces cualquier prueba en la que reside, y tambin puede ser
utilizado por cualquier otra prueba
Accin reutilizable externa - Es una accin reutilizable
almacenado en otra prueba. Acciones exteriores son de slo
lectura en la prueba de vocacin, pero se pueden utilizar a nivel
local con la copia editable de la informacin de tabla de datos
para la accin exterior
Inserte Llame a Nueva Accin Inserta una nueva accin de la accin existente
La pieza de insercin Llame a copiar de
Inserta una copia de una accin existente
Accin
Inserta una llamada a re-utilizable accin
Inserte llamado a la accin existente
existente
'Muestra la salida
print OutputValue
QTP Llamado a una copia de Accin ( Action )
( Call to Copy of Action )
DTSheet mtodos de objeto Proporciona informacin detallada sobre los mtodos DTSheet.
Ejemplo:
Tenga en cuenta la siguiente tabla de datos:
colcount = DataTable.GetSheet("Global").GetParameterCount
msgbox colcount 'Muestra 3
DataTable.SetCurrentRow(2)
val_rate = DataTable.Value("Rate","Global")
print val_rate ' Muestra 7 %
val_ppl = DataTable.Value("Principal","Global")
print val_ppl 'Muestra "2556
val_Time = DataTable.Value("Time","Global")
print val_Time ' Muestra 5
Ejemplo:
Tenga en cuenta la siguiente tabla de datos:
Val = DataTable.GetSheet("Global").GetParameter("Principal").ValueByRow(2)
print Val 'Val Muestra 2556
DataTable.SetCurrentRow(1)
Val1 = DataTable.GetSheet("Global").GetParameter("Principal").Value
print Val1 'Val1 muestra 232
Mtodos DTSheet:
Nombre del
Descripcin Sintaxis
mtodo
Ejemplo:
'Acceso Datatable llegar recuento de filas y nmero de columnas
rowcount = DataTable.GetSheet("Global").GetRowCount
msgbox rowcount ' Muestra 4
colcount = DataTable.GetSheet("Global").GetParameterCount
msgbox colcount 'Muestra 3
DataTable.SetCurrentRow(2)
val_rate = DataTable.Value("Rate","Global")
print val_rate ' Muestra 7 %
val_ppl = DataTable.Value("Principal","Global")
print val_ppl 'Muestra "2556
Tipos:
Tipo Descripcin
Bitmap
Checkpoint(Bitma Verifica un rea de su aplicacin como un mapa de bits
p Checkpoint)
Archivo de controles
de contenido(File Verifica el texto en un archivo de forma dinmica generada o accedida
Content como txt, pdf
Checkpoint )
Tabla
Checkpoint(Table Verifica la informacin dentro de una tabla. No se admiten todos los
ambientes.
Checkpoint)
Texto Area
Checkpoint(Text Verifica si la cadena de texto se muestra dentro de un rea definida en una
aplicacin basada en Windows, de acuerdo con los criterios
Area especificados.
Checkpoint)
Accesibilidad
Checkpoint(Acce Verifica la pgina e informa de las reas del sitio web que pueden no
ajustarse a la World Wide Web Consortium (W3C) Web Content
ssibility Accessibility Guidelines
Checkpoint)
Pgina
Checkpoint(Page Verifica las caractersticas de una pgina Web.Tambin puede comprobar
si hay enlaces rotos.
Checkpoint)
Checkpoint
Database(Databa Verifica el contenido de una base de datos accesible mediante la
se aplicacin bajo prueba.
Checkpoint)
XML
Checkpoint(XML Verifica el contenido de los documentos .xml o .xml documentos en
pginas Web y los marcos.
Checkpoint)
Insercin CheckPoint
Cuando el usuario quiere insertar un punto de control, hay que
asegurar que la mayor parte de los puntos de control son
compatibles, solamente durante las sesiones de grabacin. Una
vez que el usuario deja de grabar, los puntos de control NO estn
habilitados ( checkpoints are NOT enabled ).
A continuacin se muestra el men de puntos de control,
cuando el usuario no est en el modo de grabacin ( NOT in the
recording mode ).
Ejemplo:
Los puestos de control se aaden para la aplicacin bajo
prueba - "http://easycalculation.com/"
' 1. insertado Estndar Checkpoint
Status = Browser("Math Calculator").Page("Math Calculator").Link("Numbers").Check
CheckPoint("Numbers")
If Status Then
print "Checkpoint Passed"
Else
Print "Checkpoint Failed"
End if
If imgchkpoint Then
print "Checkpoint Passed"
Else
Print "Checkpoint Failed"
End if
Qu es la sincronizacin ( Synchronization )?
Punto de sincronizacin es la interfaz de tiempo entre la
herramienta y la aplicacin bajo prueba. Punto de sincronizacin
es una funcin para especificar el tiempo de retardo entre un paso y
otro de la escritura de la prueba.
Por ejemplo, al hacer clic en un enlace puede cargar la pgina es de
1 segundo, a veces 5 segundos o incluso podra tardar 10 segundos
encargarse por completo. Depende de varios factores tales como
el servidor de aplicaciones el tiempo de respuesta, ancho de banda
de red, las capacidades del sistema de cliente, etc ( server response
time, network bandwidth , client system capabilities etc )
Si el tiempo est variando el script fallar a menos que el probador
se encargue de estas diferencias de tiempo de forma inteligente.
WaitProperty ( WaitProperty )
Existir ( Exist )
Espera ( Wait )
Sync (slo para aplicaciones basadas en web) ( Sync(only for web
based apps) )
Insercin de puntos QTP incorporada de sincronizacin ( Inserting
QTP Inbuilt Synchronization points ).
Browser("Math Calculator").Sync
Browser("Math Calculator").Page("Math Calculator").Link("Simple Interest").Click
Depuracin ( Debugging ):
La Depuracin ( Debugging ), en el contexto de pruebas de
automatizacin, es un proceso sistemtico de detectar y solucionar
los problemas de codificacin en los scripts de automatizacin para
que el guin ser ms robusto y puede detectar los defectos en la
aplicacin.
Existen varias formas de realizar la depuracin utilizando
puntos de quiebre en QTP. Puntos de Quiebre ( Break Points )
pueden insertar simplemente pulsando "F9" o utilizando la opcin de
men "Ejecutar" -> "Insercin / Extraccin de Break Point" ( "Run" ->
"Inserting/Removing Break Point" ).
Despus de insertar el punto de la "Red Coloured" ( "Red
Coloured" ) Dot y la lnea se resaltar en rojo como se muestra a
continuacin en el tiempo:
Mtodo ShortCut Descripcin
Step Se usa para ejecutar cada Paso. Pasos en la Funcin / Accin y ejecuta
F11
Into lnea por lnea. Se detiene en cada lnea despus de la ejecucin.
Step Se utiliza para pasar por encima de la funcin. Step Over slo se
F10
Over ejecuta el paso actual en el documento activo.
ShortCut Descripcin
Panel de depuracin:
Los siguientes son los paneles en la ventana de depuracin:
Ejemplo:
El reloj Pane ( Watch Pane ) muestra la expresin de salida
como se muestra a continuacin:
EJEMPLO:
'Llame a la funcin para sumar dos nmeros
Call Addition(num1,num2)
Function Addition(a,b)
Addition = a+b
End function
'Example
Reporter.ReportEvent micFail, "Login", "User is unable to Login."
Escenarios de recuperacin ( Recovery
Scenarios )
Durante la ejecucin de los scripts QTP, podramos obtener
algunos errores inesperados. A fin de recuperar la prueba y
continuar ejecutando el resto de la secuencia de comandos a partir
de estos errores inesperados, se utilizan Escenarios de
recuperacin. El Administrador de escenarios de recuperacin se
puede acceder navegando en "Recursos" -> Recuperacin Scenario
Manager ( "Resources" -> Recovery Scenario Manager ) como se
muestra a continuacin:
Pasos para crear Escenario Recuperacin:
Pop-Up Window
Estado del objeto ( Object State )
Test Run Error
Aplicacin Crash
Verificacin:
El escenario de recuperacin Creado debera ser parte de la
prueba y ahora puede ser verificado mediante opcin de navegacin
a "Archivo" -> "Configuracin" -> "Recovery" ( "File" -> "Settings" ->
"Recovery" ).
Variables de entorno (Environment Variables)
Variables de entorno QTP son tipos especiales de variables que
se pueden acceder por todas las acciones, bibliotecas de funciones
y escenarios de recuperacin. Existen variables de entorno
incorporadas para Windows que estn disponibles para todas las
aplicaciones que se ejecutan en ese sistema en particular, como
variables de entorno QTP, slo estn disponibles para que el guin
de prueba durante el tiempo de ejecucin.
x= Environment.ExternalFileName
print x
Environment.LoadFromFile "D:\config.xml"
b = Environment.Value("Browser")
print b
3. Valor de la propiedad - Recupera el valor de las variables de
entorno. Tambin podemos establecer el valor de las variables de
entorno interno definidos por el usuario que usan esta propiedad.
'Lanzamiento QTP
Set objQTP = CreateObject("QuickTest.Application")
objQTP.Launch
objQTP.Visible = True
Trabajo con
objetos de
GUI
( Working
with GUI Objects ):
Hay varios objetos GUI con la que interacta QTP durante la
ejecucin del script. Por lo tanto es importante conocer los
mtodos bsicos para los objetos GUI, procesos que vamos a ser
capaces de trabajar en forma efectiva.
EJEMPLO:
Browser("Math Calculator").Sync
Set Obj = Browser("Math Calculator").Page("SQR Calc").WebEdit("n")
'Establecer el valor
obj.Set "10000" : wait(2)
x= Obj.GetROProperty("visible")
print x
Trabajar con casilla de verificacin ( Check Box ):
Los siguientes son algunos de los mtodos claves con los que
se puede trabajar con la casilla de verificacin.
Set - Ayuda al Tester para establecer el valor casilla "ON" (Activar
el check o poner la palomita) u "OFF" (Desactivar el check o quitar
la palomita)
Click - Clicks en la casilla de verificacin. Incluso los
controles ON u OFF pero el usuario no estar seguro sobre el
status.
WaitProperty - espera hasta que el valor de la propiedad se
convierte en verdad.
Exist - Busca el objeto predeterminado para saber si existe en un
lapso de tiempo.
GetROProperty ("name") - Obtiene el nombre de la casilla de
verificacin
GetROProperty ("Visible") - Devuelve un valor booleano si es
visible
EJEMPLO:
"Para comprobar que la casilla de verificacin
Set Obj = Browser("Calculator").Page("Gmail").WebCheckBox("PersistentCookie")
Obj.Set "ON"
EJEMPLO:
'Seleccione el Radio Button por su nombre "YES"
Set Obj = Browser("Calculator").Page("Forms").WebRadioGroup("group1")
Obj.Select("Yes")
EJEMPLO:
'Obtener la Lista de todos los elementos de la ComboBox
Set ObjList = Browser("Math Calculator").Page("Statistics").WebList("class")
x = ObjList.GetROProperty("all items")
print x
EJEMPLO:
"Para realizar un clic en el botn
Set obj_Button = Browser("Math Calculator").Page("SQR").WebButton("Calc")
obj_Button.Click
EJEMPLO:
Browser("Tutorials Point").Sync
'WebTable
x = Obj.RowCount
print x
y = Obj.ColumnCount(1)
print y
z = Obj.ChildItemCount(2,1,"Link")
print z
Ejemplo:
Digamos que estamos automatizando un escenario en Microsoft
Word. Activ aplicacin MS Word y hago clic en cualquier icono
en la cinta. Por ejemplo, En la cinta de opciones Insertar, El
usuario hace clic en el botn "Imagen" ( "Picture" ). Un botn es
reconocido como WinObject de ah la importancia de los objetos
viturales.
Dim objConnection
'Set Adodb objeto de conexin
Set objConnection = CreateObject("ADODB.Connection")
Dim objRecordSet
'Ejecutar la consulta
objRecordSet.Open DBQuery,objConnection
Qu es un XML?
El XML es un lenguaje diseado para almacenar datos que sean
legibles por el hombre y por la mquina. El uso del XML, hace que
se pueda intercambiar fcilmente informacion entre los sistemas
informticos y bases de datos.
Un ejemplo de XML y sus elementos claves se representan a
continuacin:
XML Acceso
Const XMLDataFile = "C:\TestData.xml"
Set xmlDoc = CreateObject("Microsoft.XMLDOM")
xmlDoc.Async = False
xmlDoc.Load(XMLDataFile)
Sintaxis:
Hay dos formas de escritura utilizando la tcnica de
programacin expositiva. Ellos son
1. Descripcin Objetos ( Description Objects )
2. Descripcin Cuerdas ( Description Strings )
Dim oDesc
Set oDesc = Description.Create
oDesc("micclass").value = "Link"
Dim i
'ndice
Obj.WebEdit("name:=Test","index:=0").Set "1123"
Obj.WebEdit("name:=Test","index:=1").Set "2222"
'Momento de la creacin
Browser("creationtime:=0").Sync
Browser("creationtime:=1").Sync
Browser("creationtime:=2").Sync
App.Test.Settings.Launchers("Web").Active = False
App.Test.Settings.Launchers("Web").Browser = "IE"
App.Test.Settings.Launchers("Web").Address = "http://easycalculation.com/"
App.Test.Settings.Launchers("Web").CloseOnExit = True
App.Test.Settings.Run.IterationMode = "rngAll"
App.Test.Settings.Run.StartIteration = 1
App.Test.Settings.Run.EndIteration = 1
App.Test.Settings.Run.ObjectSyncTimeOut = 20000
App.Test.Settings.Run.DisableSmartIdentification = False
App.Test.Settings.Run.OnError = "Dialog"
App.Test.Settings.Resources.DataTablePath = ""
App.Test.Settings.Resources.Libraries.RemoveAll
App.Test.Settings.Web.BrowserNavigationTimeout = 60000
App.Test.Settings.Web.ActiveScreenAccess.UserName = ""
App.Test.Settings.Web.ActiveScreenAccess.Password = ""
App.Test.Settings.Recovery.Enabled = True
App.Test.Settings.Recovery.SetActivationMode "OnError"
App.Test.Settings.Recovery.Add "D:\GUITest2\recover_app_crash.qrs",
"Recover_Application_Crash", 1
App.Test.Settings.Recovery.Item(1).Enabled = True
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'configuracin de la supervisin del sistema local
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
App.Test.Settings.LocalSystemMonitor.Enable = false
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Log Tracking settings
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
With App.Test.Settings.LogTracking
.IncludeInResults = False
.Port = 18081
.IP = "127.0.0.1"
.MinTriggerLevel = "ERROR"
.EnableAutoConfig = False
.RecoverConfigAfterRun = False
.ConfigFile = ""
.MinConfigLevel = "WARN"
End With
VENTAJAS ( ADVANTAGES ):
Es el ms adecuado para el principiante o un probador no
tcnico.
Permite pruebas de escritura de una manera ms abstracta que
utiliza este enfoque.
Prueba impulsada palabras claves permite la automatizacin para
iniciarse a principios de la SDLC incluso antes de una versin
estable se entrega para la prueba.
Hay un alto grado de reutilizacin.
DESVENTAJAS ( DISADVANTAGES ):
La inversin inicial en el desarrollo de las palabras claves y sus
funcionalidades relacionadas podra tomar ms tiempo.
Puede actuar como una restriccin a los Tester con capacidades
tcnicamente.
DESVENTAJAS ( DISADVANTAGES ):
Cada guin tiene que ser diferente de entender los diferentes
conjuntos de datos.
El diseo de un Framework:
Permtanos disear un marco sencillo, a una aplicacin de
ejemplo. Vamos a automatizar algunos escenarios de la aplicacin
bajo prueba y escribir funciones reutilizables.
Por favor, haga clic en el enlace de abajo para obtener ms
informacin sobre el diseo de marcos.(Framework)
'= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
' MAESTRO SCRIPT CONDUCTOR NOMBRE : Calculadora
'DESCRIPCIN: Drivers script se ejecute Pruebas Automatizadas para la Calculadora
' AUTOR : Tutoriales Point
'Fecha de creacin: 30-dic-2013
' Object Repository ASOCIADO : Calc . tsr
'BIBLIOTECA Archivos asociados: calculator.qfl, Common.qfl
' MODIFICACIN LOG
'---------------------------------------------- ------
' Primera Versin Tutoriales punto
'= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
Option Explicit
Public ExecDrive
' Obtener la Raz de carpeta de la prueba para que podamos hacer uso de relativa paths .
Dim x : x=Instr(Environment.Value("TestDir"),"Driver")-2
ExecDrive = mid(Environment.Value("TestDir"),1,x)
'Inicio de la aplicacin
SystemUtil.Run "C:\Windows\System32\Calc.exe" : wait (2)
' Fetching Fecha - TimeStamp que ser unique for Naming the Execution Log File
clscommon.StrDateFormatted = day(date()) & "_" & MonthName(Month(date()),true) & "_" & YEAR(date())& "_"&hour(now)&"_"&minute(now)
clscommon.Number4 = Trim(datatable.Value("Number_4","Global"))
clscommon.Number5 = Trim(datatable.Value("Number_5","Global"))
clscommon.Number6 = Trim(datatable.Value("Number_6","Global"))
clscommon.Test_Case_ID = Trim(datatable.Value("Test_Case_ID","Global"))'
: clscommon.LogWrite "The Test Case Data is Located at :: " & tcDataPath
clscommon.tcScenario = Trim(datatable.Value("Scenario","Global"))'
: clscommon.LogWrite "The Test Case Data is Located at :: " & tcDataPath
Dim Expected_Val : Expected_Val = Trim(datatable.Value("Expected_Val","Global"))'
: clscommon.LogWrite "The Test Case Data is Located at :: " & tcDataPath
Case "Subtract"
clscommon.LogWrite "=== Inside the Test Set :: " & clscommon.tcScenario & " ==="
Call fnCalculate("-",Expected_Val)
Case "Multiply"
clscommon.LogWrite "=== Inside the Test Set :: " & clscommon.tcScenario & " ==="
Call fnCalculate("*",Expected_Val)
Case "Divide"
clscommon.LogWrite "=== Inside the Test Set :: " & clscommon.tcScenario & " ==="
Call fnCalculate("/",Expected_Val)
Case "Sqrt"
clscommon.LogWrite "=== Inside the Test Set :: " & clscommon.tcScenario & " ==="
Call fnCalculate("sqt",Expected_Val)
End Select
End If
Next
' Llamar a la Final Prueba para Agregar el resultado de pie de pgina en exec archivo de registro .
Call fn_End_test()
' = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
'Nombre de funcin: Fn_InitializeLogFile
' DESCRIPCIN : Funcin para Escribir las iniciales Valores en el Log File
'PARMETROS DE ENTRADA: varExecDrive, strDB, StrUId, Strpwd, StrNewDB
' PARMETROS DE SALIDA : NIL
'Valor de retorno: aprobado o suspenso mensaje
' Fecha de creacin : 30 - diciembre - 2013
'= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
Public Function Fn_InitializeLogFile()
clscommon.LogWrite "********************************************"
clscommon.LogWrite "Calc Automation Started"
End Function
' = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
'Nombre de funcin: fnCalculate
' DESCRIPCIN : Funcin para realizar aritmticas Clculos
'parmetros de entrada: operador, Expected_Val
' PARMETROS DE SALIDA : NIL
'Valor de retorno: aprobado o suspenso mensaje
' Fecha de creacin : 30 - diciembre - 2013
'= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
Function fnCalculate(operator,Expected_Val)
clscommon.LogWrite "Executing the Function 'fnCalculate' "
Window("Calculator").Activate
Window("Calculator").WinButton(operator).Click
Window("Calculator").WinButton("=").Click
Dim ActualVal : ActualVal = Window("Calculator").WinEdit("Edit").GetROProperty("text")
clscommon.LogWrite "The Actual Value after the Math Operation is "& ActualVal
Window("Calculator").WinButton("C").Click
' = = = = = = = = = = = = = = = = = = = = = = = = = = =
'Nombre de funcin: fn_Kill_Process
' DESCRIPCIN : Funcin de Kill el proceso por el nombre de
'Parmetros de entrada: Nombre de la aplicacin que se mat
' PARMETROS DE SALIDA : NIL
'Valor de retorno: NIL
' Fecha de creacin : 30 - diciembre - 2013
'= = = = = = = = = = = = = = = = = = = = = = = = = = =
Function fn_Kill_Process(process)
count = 0
For Each objProcess in colProcess
objProcess.Terminate()
count = count + 1
Next
End Function
' = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
'Nombre de funcin: fn_End_test
' DESCRIPCIN : Funcin para terminar la prueba de ejecucin de procesos
'parmetros de entrada: Nombre de la aplicacin que se mat
' PARMETROS DE SALIDA : NIL
'Valor de retorno: NIL
' Fecha de creacin : 20 / diciembre / 2013
'= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
Function fn_End_test()
clscommon.LogWrite "Status Message - Executing the Function 'fn_End_test' "
Window("Calculator").Close
On Error Resume Next
clscommon.StopTime = Time()
clscommon.ElapsedTime = DateDiff("n",clscommon.StartTime,clscommon.StopTime)
Dim Totaltests
Totaltests = clscommon.gintPassCount+ clscommon.gintFailCount
clscommon.LogWrite "## # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
clscommon.LogWrite "## The Execution Start Time :: " & clscommon.StartTime
clscommon.LogWrite "## The Execution End Time :: " & clscommon.StopTime
clscommon.LogWrite "## The Time Elapsed :: " & clscommon.ElapsedTime & " Minutes "
clscommon.LogWrite "## The OS :: " & Environment.Value("OS")
clscommon.LogWrite "## The Total No of Test Cases Executed :: " & Totaltests
clscommon.LogWrite "## The No. of Test Case Passed :: " & clscommon.gintPassCount
clscommon.LogWrite "## The No. of Test Case Failed :: " & clscommon.gintFailCount
clscommon.LogWrite "## # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
SystemUtil.CloseDescendentProcesses
End Function
Function Fn_FileCreate(strFileName)
Dim objFSO: Set objFSO = CreateObject("Scripting.FileSystemObject")
On Error Resume Next
Dim objTextFile : Set objTextFile = objFSO.CreateTextFile(strFileName)
objTextFile.Close
Set objTextFile = Nothing
Set objFSO = Nothing
End Function
Function LogWrite(sMsg)
Const ForAppending = 8
Dim objFSO : Set objFSO = CreateObject("scripting.FileSystemObject")
Dim objTextFile : Set objTextFile = objFSO.OpenTextFile (clscommon.StrLogFile, ForAppending, True)
objTextFile.WriteLine day(date()) & "/" & MonthName(Month(date()),true) & "/" & YEAR(date()) & " " & time & ": " & sMsg
objTextFile.Close
Set objTextFile = Nothing
Set objFSO = Nothing
End Function
Function WriteResult(strStatus,functionName,functionDescription,Result)
Const ForAppending = 8
Dim objFSO : Set objFSO = CreateObject("scripting.FileSystemObject")
Dim objTextFile : Set objTextFile = objFSO.OpenTextFile (clscommon.StrLogFile, ForAppending, True)
objTextFile.WriteLine day(date()) & "/" & MonthName(Month(date()),true) & "/" & YEAR(date()) & " " & time & ": " & " * * * * * * Test Case Exec Details * * *
* * "
objTextFile.WriteLine day(date()) & "/" & MonthName(Month(date()),true) & "/" & YEAR(date()) & " " & time & ": " & " Test staus :: " & strStatus
objTextFile.WriteLine day(date()) & "/" & MonthName(Month(date()),true) & "/" & YEAR(date()) & " " & time & ": " & " Tese ID :: " & functionName
objTextFile.WriteLine day(date()) & "/" & MonthName(Month(date()),true) & "/" & YEAR(date()) & " " & time & ": " & " Test Description :: " &
functionDescription
objTextFile.WriteLine day(date()) & "/" & MonthName(Month(date()),true) & "/" & YEAR(date()) & " " & time & ": " & " Test Result Details :: " & Result
objTextFile.WriteLine day(date()) & "/" & MonthName(Month(date()),true) & "/" & YEAR(date()) & " " & time & ": " & " * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * "
objTextFile.Close
Set objTextFile = Nothing
Set objFSO = Nothing
8 /
Jan / 2014 5 :
09 : 16 PM : *************************************************
8 /
Jan / 2014 5 :
09 : 16 PM : Calc Automation Started
8 /
Jan / 2014 5 :
09 : 16 PM : === Inside the Test Set :: Add ===
8 /
Jan / 2014 5 :
09 : 16 PM : Executing the Function 'fnCalculate'
8 /
Jan / 2014 5 :
09 : 17 PM : The Actual Value after the Math Operation is 949.
8 /
Jan / 2014 5 :
09 : 17 PM : * * * * * * Test Case Exec Details * * * * *
8 /
Jan / 2014 5 :
09 : 17 PM : Test staus :: Pass
8 /
Jan / 2014 5 :
09 : 17 PM : Tese ID :: TC_001
8 / Jan / 2014 5 : 09 : 17 PM : Test Description :: Add
8 / Jan / 2014 5 : 09 : 17 PM : Test Result Details :: Expected Value matches with Actual Value :: 949.
8 / Jan / 2014 5 : 09 : 17 PM : * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
8 / Jan / 2014 5 : 09 : 17 PM : Exiting the Function 'fnCalculate'
8 / Jan / 2014 5 : 09 : 17 PM : === Inside the Test Set :: Subtract ===
8 / Jan / 2014 5 : 09 : 17 PM : Executing the Function 'fnCalculate'
8 / Jan / 2014 5 : 09 : 17 PM : The Actual Value after the Math Operation is 415.
8 / Jan / 2014 5 : 09 : 17 PM : * * * * * * Test Case Exec Details * * * * *
8 / Jan / 2014 5 : 09 : 17 PM : Test staus :: Pass
8 / Jan / 2014 5 : 09 : 17 PM : Tese ID :: TC_002
8 / Jan / 2014 5 : 09 : 17 PM : Test Description :: Subtract
8 / Jan / 2014 5 : 09 : 17 PM : Test Result Details :: Expected Value matches with Actual Value :: 415.
8 / Jan / 2014 5 : 09 : 17 PM : * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
8 / Jan / 2014 5 : 09 : 17 PM : Exiting the Function 'fnCalculate'
8 / Jan / 2014 5 : 09 : 17 PM : === Inside the Test Set :: Multiply ===
8 / Jan / 2014 5 : 09 : 17 PM : Executing the Function 'fnCalculate'
8 / Jan / 2014 5 : 09 : 18 PM : The Actual Value after the Math Operation is 278883.
8 / Jan / 2014 5 : 09 : 18 PM : * * * * * * Test Case Exec Details * * * * *
8 / Jan / 2014 5 : 09 : 18 PM : Test staus :: Pass
8 / Jan / 2014 5 : 09 : 18 PM : Tese ID :: TC_003
8 / Jan / 2014 5 : 09 : 18 PM : Test Description :: Multiply
8 / Jan / 2014 5 : 09 : 18 PM : Test Result Details :: Expected Value matches with Actual Value :: 278883.
8 / Jan / 2014 5 : 09 : 18 PM : * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
8 / Jan / 2014 5 : 09 : 18 PM : Exiting the Function 'fnCalculate'
8 / Jan / 2014 5 : 09 : 18 PM : === Inside the Test Set :: Divide ===
8 / Jan / 2014 5 : 09 : 18 PM : Executing the Function 'fnCalculate'
8 / Jan / 2014 5 : 09 : 19 PM : The Actual Value after the Math Operation is 3.
8 / Jan / 2014 5 : 09 : 19 PM : * * * * * * Test Case Exec Details * * * * *
8 / Jan / 2014 5 : 09 : 19 PM : Test staus :: Pass
8 / Jan / 2014 5 : 09 : 19 PM : Tese ID :: TC_004
8 / Jan / 2014 5 : 09 : 19 PM : Test Description :: Divide
8 / Jan / 2014 5 : 09 : 19 PM : Test Result Details :: Expected Value matches with Actual Value :: 3.
8 / Jan / 2014 5 : 09 : 19 PM : * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
8 / Jan / 2014 5 : 09 : 19 PM : Exiting the Function 'fnCalculate'
8 / Jan / 2014 5 : 09 : 19 PM : === Inside the Test Set :: Sqrt ===
8 / Jan / 2014 5 : 09 : 19 PM : Executing the Function 'fnCalculate'
8 / Jan / 2014 5 : 09 : 20 PM : The Actual Value after the Math Operation is 10.
8 / Jan / 2014 5 : 09 : 20 PM : * * * * * * Test Case Exec Details * * * * *
8 / Jan / 2014 5 : 09 : 20 PM : Test staus :: Pass
8 / Jan / 2014 5 : 09 : 20 PM : Tese ID :: TC_005
8 / Jan / 2014 5 : 09 : 20 PM : Test Description :: Sqrt
8 / Jan / 2014 5 : 09 : 20 PM : Test Result Details :: Expected Value matches with Actual Value :: 10.
8 / Jan / 2014 5 : 09 : 20 PM : * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
8 / Jan / 2014 5 : 09 : 20 PM : Exiting the Function 'fnCalculate'
8 / Jan / 2014 5 : 09 : 20 PM : Status Message - Executing the Function 'fn_Finish_test'
8 / Jan / 2014 5 : 09 : 20 PM : ## # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
8 / ene / 2014 5 : 09 : 20 PM : ## La ejecucin Hora de inicio: : 5:09:14 PM
8 / ene / 2014 5 : 09 : 20 PM : ## El Tiempo de ejecucin Fin :: 5:09:20 PM
8 / ene / 2014 5 : 09 : 20 PM : ## El Tiempo Transcurrido :: 0 Minutos
8 / ene / 2014 5 : 09 : 20 PM : ## El sistema operativo Microsoft Windows Vista :: Servidor
8 / ene / 2014 5 : 09 : 20 PM : ## El n total de casos de prueba Ejecutado :: 25
8 / ene / 2014 5 : 09 : 20 PM : ## El nmero de caso de prueba Passed :: 25
8 / ene / 2014 5 : 09 : 20 PM : ## El nmero de caso de prueba Error ::
8 / ene / 2014 5 : 09 : 20 PM : ## # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
Todo lo que necesitas saber acerca de las expresiones
regulares en QTP
Una expresin regular es una cadena que describe o coincide
con un conjunto de cadenas. A menudo se llama un patrn, ya que
describe un conjunto de cadenas. En este artculo vamos a discutir
sobre el uso de expresiones regulares en VB Script / QTP.
Para aquellos que son principiantes en la programacin, debe
tener en cuenta que las expresiones regulares no se limitan a VB
Script solo. Estas se utilizan ampliamente en toda programacin y
lenguajes script y son conocidos por ser muy poderosa para ahorrar
cdigo de programacin y generacion de datos de la misma forma
utilizando una coincidencia de patrones. El conocimiento de las
expresiones regulares puede ser til no slo para los proyectos QTP
sino tambin en la vida en lnea del da a da.
Vamos a diseccionar nuestra definicin anterior y responder a
esta pregunta con la ayuda de un ejemplo sencillo.
Cuando se trabaja en una aplicacin particular, digamos que
uno de los valores de las propiedades denominadas Identificacin es
dinmico, es decir, en cada carrera se observa que el valor
deIdentificacin propiedad est siendo cambiado. As que
cuando grab la secuencia de comandos, el valor de Identificacin
propiedad era REUFT101. Cuando se reprodujo el mismo guin, el
valor deIdentificacin cambiado a REUFT120, en la prxima iteracin
cambi a REUFT105. Usted puede identificar fcilmente un
patrn aqu lo que los dos ltimos dgitos de Identificacin del valor
estn siendo cambiados.
Podemos escribir una sola cadena que puede coincidir con
todos estos valores dinmicos? S, y la respuesta se encuentra en
las expresiones regulares. Puedes escribir REUFT1 \ d \ d. Los
cinco primeros caracteres se fijaron de manera que no necesitamos
regularizarlos, sin embargo los dos ltimos personajes eran cifras
dinmicas. Tenemos que asegurarnos de que nuestra expresin
regular debe ser capaz de adaptarse a cualquier dgito entre 0 y 9 y
en este caso se usa la expresin regular \ d para que tome los digitos
que se necesitan. Puesto que necesitamos para que coincida con
dos dgitos que hemos utilizado dos veces \ d \ d.
Este fue un ejemplo sencillo de lo que puede hacerse con las
expresiones regulares. En QTP / VB Script, podemos usar
expresiones regulares para hacer frente a los valores de
propiedades dinmicas de repositorio de objetos o en la
programacin descriptiva o mientras la creacin de puestos de
control con valores diferentes.
Expresiones y Explicacin
Coincidir con cualquier carcter (.)
Ejemplo 1: Expresin regular para que coincida con todas las direcciones de
correo electrnico vlidas
^ [A-z0-9 ._% + -]. + @ [A-z0-9 .-] + \ [az] {2,4} $
Hemos asumido anteriormente que el TLD (com, org, net, .in) es
entre 2 a 4 caracteres. Adems, slo hemos tenido el caso de los
caracteres en minscula para la validacin.
Ejemplo 2: Expresin regular para que coincida con una fecha MM / DD / AAAA
^ ([1-9] | 1 [0-2]) / ([1-9] | [1-2] [0-9] | 3 [0-1]) / [0-9] [0- 9] [0-9] [0-9] $
Ejemplo 3: Expresin regular para que coincida con las instancias de
produccin, prueba o demostracin
Digamos que usted ejecuta un sitio, example.com, que est
configurado para prod.example.com, test.example.com y
demo.example.com. Es necesario hacer la primera parte variable
como una expresin regular. As es como la expresin regular se
vera as (dado que la cadena de example.com no cambia)
. (Prod | Ensayo | demo) \ ejemplo \ .com
Sintaxis de expresiones regulares (Scripting):
Una expresin regular describe una o ms cadenas para que
coincidan con con lo que se busca en un cuerpo de texto. La
expresin sirve como plantilla para hacer coincidir un patrn de
carcter a la cadena que se est buscando.
Una expresin regular consiste en caracteres ordinarios (por
ejemplo, las letras A a la Z) y caracteres especiales, conocidos como
metacaracteres.
Caracteres especiales:
La siguiente tabla contiene una lista de los metacaracteres de
un solo carcter y su comportamiento en las expresiones regulares.
Metacaracteres:
La siguiente tabla contiene una lista de los metacaracteres de varios
caracteres, y su comportamiento en las expresiones regulares.
Metacarcte
Comportamiento Ejemplo
r
Coincide con un lmite de palabra, es er \ b coincide con el "er" en
\B decir, la posicin entre una palabra y un "nunca" pero no el "er" en
espacio. "verbo".
er \ B coincide con el "er" en
\B Coincide con una palabra no-lmite. "verbo" pero no el "er" en
"nunca".
En la cadena buscada "12 345",
Coincide con un carcter de dgito. \ d {2}coincide con "12" y
\D
Equivale a [0-9]. "34". \ d coincide con "1", 2
"," 3 "," 4 "y" 5 ".
Coincide con un carcter no sea de
\ D + coincide con "ABC" y
\D dgito.
"def" en "abc123 def".
Equivale a[^ 0-9].
Coincide con cualquiera de los En la cadena buscada "El zorro
siguientes caracteres: AZ, az, 0-9 y marrn rpido ...", \ w +
\W
subrayado. coincide con "El", "rpido",
Equivale a [A-Za-z0-9_]. "blanco", y "zorro".
\W Coincide con cualquier carcter excepto En la cadena buscada "El zorro
AZ, az, 0-9 y subrayado. marrn rpido ...", \ W +
Equivale a[^ A-Za-z0-9_]. partidos "..." y todos los
espacios.
Establecer un carcter. Coincide con
[Abc] coincide con la "a" de
[ xyz ] cualquiera de los caracteres
"plano".
especificados.
Establecer un carcter negativo.
[^ Abc] coincide con la "p"
[ ^ xyz ] Coincide con cualquier carcter que no
de "plano".
est especificado.
Una gama de personajes. Coincide con [Az] coincide con cualquier
[ az ] cualquier carcter en el rango carcter alfabtico en minscula
especificado. en el rango de "a" a la "z".
Un rango negativo de caracteres. [^ Az] coincide con cualquier
[ ^ az ] Coincide con cualquier carcter no en el carcter no en el rango de "a" a
rango especificado. la "z".
O {2} no coincide con la "o"
Coincide exactamente n veces. n es un
{n} de "Bob", pero lo hace coincidir
entero no negativo.
con las dos "O" s en "comida".
Coincide al menos n veces. n es un
O {2,} no coincide con la "o"
entero no negativo.
{ n ,} de "Bob", pero Coincide todas
* es equivalente a {0,}.
las "O" s en "foooood".
+ es equivalente a {1,}.
Partidos, al menos, n y en la mayora de
m veces. n y m son nmeros enteros no En la cadena buscada
negativos, donde n <= m. No puede "1234567", \ d {1,3}
{ n, m }
haber un espacio entre la coma y los coincide con "123", "456", y
nmeros. "7".
? es equivalente a {0,1}.
Coincide con patrn y guarda el partido.
Puede recuperar el partido salvado de la
coleccin subcoincidencias en Scripting (Captulo | Seccin)
Edition de Visual Basic (VBScript) o de [1-9] coincide con "Captulo
( patrn )
elementos de la matriz devuelta por el 5", y el "Captulo" se guarda
mtodo exec en JScript. Para hacer para su uso posterior.
coincidir los caracteres de parntesis (),
utilice "\ (" o "\)".
Partidos patrn pero no salva el partido,
es decir, el partido no se almacena para industr (?: y | s) es
(:? patrn ) su posible uso posterior. Esto es til para equivalente a la industria
combinar partes de un patrn con el "o" |industrias.
carcter (|).
(? = patrn ) Bsqueda positiva hacia delante. Una ^ (? =. * \ D). {4,8} $
vez que se encuentra una coincidencia, la se aplica una restriccin de que
una contrasea debe tener entre
4 y 8 caracteres y debe contener
al menos un dgito.
Dentro del patrn, . * \ d
encuentra cualquier nmero de
caracteres seguidos de un dgito.
Para la cadena "abc3qr"
buscado, esto coincide con
"abc3".
bsqueda para el prximo partido
Comenzando antes en vez de
comienza antes de que el texto
despus de aquel partido, .
coincidente. El partido no se guarda para
{4,8} coincide con una cadena
su uso posterior.
de 4-8 caracteres. Esto coincide
con "abc3qr".
El ^ y $ especificar las
posiciones en la salida y al final
de la cadena buscada. Esto es
para evitar una coincidencia si
la cadena buscada contiene
caracteres fuera de los
caracteres coincidentes.
\ B (?! ) \ w + \ b
coincide con palabras que no
comienzan con "th".
Bsqueda negativa hacia delante.
Dentro del modelo, b \
Coincide con una cadena de bsqueda
coincide con un lmite de
que no coincide con el patrn. Una vez
palabra. Para la cadena buscada
que se encuentra una coincidencia, la
(?! patrn ) "rpida", esto coincide con el
bsqueda para el prximo partido
primer espacio. (?! )
comienza antes de que el texto
coincide con una cadena que no
coincidente. El partido no se guarda para
es "th". Esto coincide con "qu".
su uso posterior.
A partir antes de ese partido, \
w +coincide con una palabra.
Esto coincide con "rpida".
Coincide con el carcter de control
indicado por x . El valor de x debe estar \Cm coincide con un carcter
\Cx
en la gama de AZ o az. Si no lo es, c se CTRL + M o retorno de carro.
supone que es un carcter "c" literal.
\Xn Partidos n , donde n es un valor de \ X41 partidos "A". \ x041
escape hexadecimal. Los valores de es equivalente a "\ x04" seguido
escape hexadecimales deben tener dos de "1", (porque n debe ser
dgitos. Permite que los cdigos ASCII exactamente 2 dgitos).
que se utilizan en expresiones regulares.
Partidos num, donde num es un entero (.) \ 1 coincide con dos
\num positivo. Esta es una referencia a caracteres idnticos
partidos guardados. consecutivos.
Identifica bien un valor de escape octal o
una referencia hacia atrs. Si \n es
precedida por al menos n subexpresiones (\ D) \ 1 partidos dos
\n
capturadas, n es un retro-referencia. De dgitos idnticos consecutivos.
lo contrario, n es un valor de escape
octal si n es un dgito octal (0-7).
Identifica bien un valor de escape octal o
una referencia hacia atrs. Si \nm va
precedido de al menos nm
subexpresiones capturadas, nm es una
referencia inversa. Si \nm es precedida
\ 11 coincide con un carcter
\nm por al menos n subexpresiones
de tabulacin.
capturadas, n es un retrorreferencia
seguido por literal m. Si ninguna de estas
condiciones existen, \nm partidos escape
octal valor n m cuando n y m son dgitos
octales (0-7).
Partidos valor de escape
\ 011 coincide con un carcter
\NML octalNMLcuando n es un dgito octal (0-
de tabulacin.
3) y m y l son dgitos octales (0-7).
Partidos n, donde n es un carcter
\ U00A9 coincide con el
\ Un Unicode expresan como cuatro dgitos
smbolo de copyright ().
hexadecimales.
Caracteres no Imprimibles:
La siguiente tabla contiene las secuencias de escape que
representan caracteres no imprimibles.
Personaj
Partidos Equivalente a
es
\F Carcter de avance. \ X0cy\ cL
\N Carcter de nueva lnea. \ X0ay\ cJ
\R Carcter de retorno de carro. \ X0dy\ cm
Cualquier carcter de espacio en blanco. Esto
[\ F \ n \ r \
\s incluye espacio, tabulador, y la forma de
t \ v]
alimentacin.
[^ \ F \ n \ r \
\S Cualquier carcter de espacio no blanca.
t \ v]
\T Carcter Tab. \ X09y\ ci
\V Carcter de tabulacin vertical. \ X0By\ cK
Orden de Precedencia:
Una expresin regular es evaluada muy similar a una expresin
aritmtica; es decir, se evala de izquierda a derecha y sigue un
orden de precedencia.
La siguiente tabla contiene el orden de precedencia de los
operadores de expresiones regulares, de mayor a menor.
Operador o los operadores Descripcin
\ Escapar
Los parntesis y
(), (? :), (? =), []
corchetes
*, +,?, {n}, {n,}, {n,m} Cuantificadores
^, $, \anymetacharacter Anclas y secuencias
| Alternancia
Los personajes tienen mayor precedencia que el operador de la
alternancia, que, por ejemplo, permite "m | alimentos" para que
coincida con "m" o "alimentos".
NOTA: El orden de precedecia no se indica para (?!)
Qu es la Programacin descriptiva?
TestObject(PropertyName1 := PropertyValue1)
Ejemplo:
Vamos a escribir una declaracin de programacin descriptiva
en lnea para nombre de usuario cuadro de solicitud de reserva de
vuelos de demostracin.
Una declaracin de lo normal registrado en nombre de usuario
podra ser:
Browser(Welcome: Mercury Tours).Page(Welcome: Mercury
Tours)._
WebEdit(userName).Set mercury
Vamos a crear una declaracin de DP( Programacin
Descriptiva) en lugar de la declaracin grabada anteriormente. Aqu
est el proceso genrico que uno debe seguir.
1.Registre el objeto para el que desea escribir una declaracin de
DP.
2.Abra el repositorio correspondiente al objeto (s).
3.Tenga en cuenta los pares propiedad-valor utilizado por QTP
para identificar el objeto.
4.Escribe usando la sintaxis se discuti anteriormente.
QTP no registra ninguna propiedad para un navegador o un
objeto de pgina.
Para un objeto de navegador, no hay otra propiedad requerida en
caso de que se trata de un solo navegador. Examinador de objetos
se muestra arriba se puede escribir como
Browser(micclass:=Browser)
El objeto Page se muestra arriba se puede escribir como
Page(micclass:=Page)
el objeto WebEdit mostrado arriba puede ser escrito como
WebEdit(type:=text,name:=userName,html tag:=INPUT)
Browser(micclass:=Browser).Page(micclass:=Page).WebEdit(type:=text,_
Ejemplo
oDesc(type).value= text
oDesc(name).value= userName
oDesc(html tag).value= INPUT
Browser(Browser).Page(Page).WebEdit(oDesc).Set mercury
oDesc(name).value= userName\d\d\d
oDesc(name).RegularExpression= False
tag:=A).Click
Dim uName
uName = user786
html tag:=A).Click
Browser(micclass:=Browser).Page(micclass:=Page).WebEdit(type:=text,_
Browser(micclass:=Browser).Page(micclass:=Page).WebEdit(type:=text,_
EJEMPLOS EXTRAS
Code:
Static .-
Browser("micclass:=Browser").Page("micclass:=Page").WebButton("micclass:=Button",_
"name:=Submit", "index:=1").Click
Browser("micclass:=Browser").Page("micclass:=Page").WebButton("micclass:=Button",_
"name:=Submit", "index:=2").Click
Dynamic.-
Debo decir aqu que no hay ninguna regla que tenemos que usar
esttica o dinmica.
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'PROGRAMACIN DESCRIPTIVA DINAMICA
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
ObjDes.CrearObjDes (Dialog("text:=Login"),"WinEdit","attached text",
Datatable.Value("ObjetoUsuario",1)).Click
ObjDes.CrearObjDes (Dialog("text:=Login"),"WinEdit","attached text",
Datatable.Value("ObjetoUsuario",1)).Type daun(Iterator)
ObjDes.CrearObjDes (Dialog("text:=Login"),"WinEdit","attached text",
Datatable.Value("ObjetoPass",1)).Click
ObjDes.CrearObjDes (Dialog("text:=Login"),"WinEdit","attached text",
Datatable.Value("ObjetoPass",1)).Type datatable.Value("pass",1)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'PROGRAMACIN ESTATICA CON VARIABLE DESCRIPTIVA
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Set obj=Description.Create()
obj("micClass").value="Window"
obj("text").value="Flight Reservation"
Set obj1=Description.Create()
obj1("micClass").value="WinComboBox"
obj1("attached text").value="Fly To:"
Window(obj).WinComboBox(obj1).Select "Frankfurt"
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'PROGRAMACIN ESTATICA
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Window("Flight Reservation").WinButton("FLIGHT").Click
Window("Flight Reservation").Dialog("Flights Table").WinList("From").Activate "12585 LON 08:00
AM FRA 11:30 AM AF $172.47"
Window("Flight Reservation").WinEdit("Name:").Set "Bernardo alonso Mejia"
Window("Flight Reservation").WinRadioButton("First").Set
Window("Flight Reservation").WinButton("Insert Order").Click
Window("Flight Reservation").Activate
QTP DOTNetFactory formulario personalizado
En este artculo se muestra cmo crear un formulario
tediosa.
Sintaxis DotNetFactory
siguiente.
TypeName: El nombre completo del tipo de objeto, por ejemplo,
System.Windows.Forms.Form.
Montaje: Opcional. Si el ensamblado se carga previamente en el
El Cdigo
que todos los campos aaden a esta forma tan slo para fines de
namespace = "System.Windows.Forms"
ToolStrip.Items.Add ToolStripDropDownButton
oPoint.x = 0 : oPoint.y = 0
Set ToolStripMenuItem =
DOTNetFactory.CreateInstance("System.Windows.Forms.ToolStripMenuItem")
ToolStripMenuItem.Width = 98 : ToolStripMenuItem.Height = 22
ToolStripMenuItem.Text = "New"
ToolStripDropDownButton.DisplayStyle = ToolStripItemDisplayStyle.Text
ToolStripDropDownButton.DropDownItems.Add ToolStripMenuItem
ToolStripDropDownButton.Text = "File"
oPoint.x = 6 : oPoint.y = 31
CheckBox1.Width = 80 : CheckBox1.Height = 17
CheckBox1.Text = "CheckBox1"
oPoint.x = 6 : oPoint.y = 55
CheckBox2.Width = 80 : CheckBox2.Height = 17
CheckBox2.Text = "CheckBox2"
RadioButton1.Height = 17 : RadioButton1.Width = 85
RadioButton1.Text = "RadioButton1"
RadioButton2.Width = 85 : RadioButton2.Height = 17
RadioButton2.Text = "RadioButton2"
oPoint.x = 73 : oPoint.y = 57
oPoint.x = 73 : oPoint.y = 29
ComboBox.Name = "ComboBox"
ComboBox.Items.Add "Black"
ComboBox.Items.Add "White"
ComboBox.Items.Add "Red"
ComboBox.Items.Add "Green"
oPoint.x = 6 : oPoint.y = 37
Label1.Width = 66 : Label1.Height = 13
Label1.Text = "ComboBox:"
oPoint.x = 11 : oPoint.y = 63
Label2.Width = 61 : Label2.Height = 13
Label2.Text = "TextBox:"
GroupBox1.Controls.Add RadioButton1
GroupBox1.Controls.Add RadioButton2
GroupBox1.Controls.Add CheckBox1
GroupBox1.Controls.Add CheckBox2
oPoint.x = 12 : oPoint.y = 45
GroupBox1.Text = "GroupBox1"
GroupBox2.Controls.Add Label2
GroupBox2.Controls.Add TextBox
GroupBox2.Controls.Add Label1
GroupBox2.Controls.Add ComboBox
GroupBox2.Text = "GroupBox2"
Form.CancelButton = Button
Form.Controls.Add ToolStrip
Form.Controls.Add Button
Form.Controls.Add ProgressBar
Form.Controls.Add GroupBox1
Form.Controls.Add GroupBox2
Form.Show() : Wait(2)
TextBox.Text = "Starting..."
ComboBox.Text = "White"
ProgressBar.Maximum = 5
ProgressBar.Minimum = 0
ProgressBar.Step = 1
For i = 0 to 5
ProgressBar.PerformStep()
Wait 0, 500
Next
Form.Hide()
Form.ShowDialog()
Form.Dispose()
EJEMPLOS
With oForm
.Height =500
.Controls.Add oButton
End with
With oButton
display message
End if
End with
"System.Windows.Forms")
"System.Windows.Forms")
"System.Windows.Forms")
With oPoint
.x = 5
.y = 5
End With
With oButtonOK
.Text = "OK"
.Location = oPoint
.DialogResult = DiagReturn.Ok
End With
With oPoint
.x = 5
.y = 35
End With
With oButtonCancel
.Text = "Cancel"
.Location = oPoint
.DialogResult = DiagReturn.Cancel
End With
With oForm
.Height = 500
.Controls.Add oButtonOK
.Controls.Add oButtonCancel
.ShowDialog
End With
End If
End If