Estoy experimentando con el uso de QTP para algunas pruebas de automatización de la uba de aplicaciones web y me preguntaba cómo la gente suele escribir sus pruebas QTP. ¿Utiliza el mapa de objetos, la programación descriptiva, una combinación o de alguna otra manera todos juntos? Cualquier pequeño ejemplo de código sería apreciado, Gracias¿Cómo se escriben las pruebas QTP?
Respuesta
Aquí está mi sugerencia.
1) Cree su matriz de requisitos de automatización de prueba. Puede utilizar muestras de mi blog
http://automation-beyond.com/2009/06/06/qa-test-automation-requirements-usability/
http://automation-beyond.com/2009/06/07/qa-test-automation-requirements-usability-2/
http://automation-beyond.com/2009/06/10/qa-test-automation-requirements-5-maintainability/
http://automation-beyond.com/2009/06/08/qa-test-automation-requirements-robustness/
http://automation-beyond.com/2009/06/09/qa-test-automation-requirements-scalability/
2) Escoge tu automation approach
3) las secuencias de comandos de prueba de acuerdo con el planteamiento que eligió
Nota. QTP Repository way o Descriptive Programming pertenecen a la parte de reconocimiento de GUI de la automatización de pruebas funcionales frontales. Importan en términos de robustez y mantenimiento. Técnicamente, es casi lo mismo. En ambos casos, debe entender bien el concepto de reconocimiento de GUI, o tendrá problemas sin importar el enfoque.
- Puede almacenar propiedades de reconocimiento de objetos GUI en una estructura de datos similar a XML y asignar el registro a un nombre similar al inglés. Cada vez que cambian las propiedades del objeto original, actualiza su registro en el repositorio, mientras que un código todavía se refiere a un nombre asignado.
- O puede abordar objetos de GUI poniendo directamente las mismas propiedades de reconocimiento en una llamada de función. Cada vez que cambian las propiedades del objeto original, debe cambiar el código. Pero no es necesario que mantenga archivos adicionales junto con sus scripts.
Una buena estructura debe ser compatible tanto con las anotaciones de programación GUI como descriptivas operando al nivel de referencia del objeto. Es decir. debe mantener separadas las tareas de reconocimiento de objetos e interacción de objetos.
Tenga en cuenta que dependiendo del contexto notación de programación descriptiva puede desaceleración rendimiento de sus guiones y esfuerzo de mantenimiento siempre demandas extra, mientras que en otros casos el uso de repositorios objeto sólo puede conducir a la duplicación no deseada de las descripciones de objetos o puede limitar el reconocimiento de GUI dinámicamente cambiante.
ilustro algunos puntos mencionados en el artículo siguiente: A little QTP performance test: Object Repository vs. Descriptive Programming
ejemplos de código rectas (para una automatización práctica recomiendo GUI Function Wrapping).
Programación descriptiva: direccionamiento de objetos por propiedades de descripción física.
Dim sProfile
sProfile = "Guest"
Set objWebParent = Browser("title:=Select Profile").Page("title:=Select Profile")
Set objWebObject = objWebParent.Link("text:="&sProfile)
boolRC = objWebObject.Exist(0)
If Not boolRC Then
'error-handling
End If
objWebObject.Click
Direccionamiento de objetos por nombres de interfaz gráfica de usuario asignadas
Browser("Select Profile").Page("Select Profile").Link("Guest").Click
Gracias,
Albert Gareev
http://automation-beyond.com/
sé que estoy tarde aquí, y ya deben tener lo que buscas para, pero quería proporcionar mis entradas también para cualquiera que visite este tema.
En general, nunca uso O, a menos que encuentre un entorno en el que la Programación descriptiva es un no-go. Recientemente, trabajé con una aplicación de interfaz gráfica de usuario de Mainframe que no tiene absolutamente ninguna convención de nomenclatura para objetos. Si opta por utilizar la Programación Descriptiva con una aplicación de este tipo, la única forma de trabajar con sus objetos sería a través de los Identificadores Ordinales de Índice o Ubicación, lo cual no es la mejor línea de acción teniendo en cuenta cientos de objetos en cada panel.
Por lo tanto, la respuesta a su pregunta realmente depende del entorno y de su experiencia con OR y DP. La mayoría de las personas con las que he trabajado en mi trabajo y en las comunidades en línea prefieren trabajar con programación descriptiva siempre que sea posible. Sin embargo, también he visto a gente hacer maravillas con OR.
Tengo unas pocas muestras de código, pero, desafortunadamente, están relacionadas con la Programación Descriptiva. Por ejemplo, el siguiente artículo habla sobre la creación de clases modulares VBScript para dividir la funcionalidad de la aplicación en pequeños componentes manejables:
http://relevantcodes.com/qtp-using-classes-as-test-modules-i/
Del mismo modo, este artículo muestra cómo la programación descriptiva puede ser utilizado para verificar múltiples propiedades de los objetos de destino a través de una solo bloque de código:
http://relevantcodes.com/qtp-verify-multiple-object-properties-an-elegant-approach/
además, un marco de demostración también está disponible para que usted pueda ver aquí:
http://relevantcodes.com/relevantcodes1one-qtp-automation-framework/
La estructura se basa completamente en los principios de Programación descriptiva, pero en la próxima versión, se agregará una funcionalidad que permitirá a los usuarios trabajar con las RUP también.
Gracias,
Anshoo Arora
(Gracias por vincular a los artículos originales, Motti)
Supuse que DP sería el método de elección cuando fuera posible. Simplemente no estaba muy seguro de si los QTP o el sistema eran realmente buenos o no. Actualmente utilizo TestPartner y evito por completo su sistema OR. Gracias por la información Anshoo. –
Hola Arora, Tu sitio no está abriendo –
- 1. ¿Cómo se escriben las pruebas del controlador cuando se sobreescribe el controlador de registro?
- 2. ¿Cómo se escriben las pruebas unitarias para sus servlets de Java?
- 3. ¿Cómo se hacen las pruebas de rendimiento de la página?
- 4. ¿Cómo se hacen las pruebas en Sinatra?
- 5. ¿Cómo se ejecutan las pruebas de meteoritos?
- 6. ¿Cómo se leen y escriben las banderas x86 se registra directamente?
- 7. ¿Cómo se escriben los elementos del código en texto normal?
- 8. ¿Cómo se escriben los buenos mensajes de error?
- 9. ¿Cómo se escriben algoritmos de programación dinámica eficientes en Haskell?
- 10. ¿cómo se escriben la asociación, la agregación y la composición?
- 11. ¿Cómo se escriben los comentarios en archivos macro de doskey?
- 12. QTP extensibilidad Web toolkit y ajax
- 13. ¿Cómo se separan las pruebas unitarias de las pruebas de integración en Visual Studio?
- 14. ¿Cómo se escriben las consultas "(A o B) Y (A o C)" con Mongoid?
- 15. Cómo deshabilitar las directivas #line que se escriben en el archivo de salida de generación T4
- 16. ¿Puedo utilizar un lenguaje que no sea VBScript para ejecutar pruebas QTP mediante programación?
- 17. Visual Studio 2010 - no se realizaron pruebas porque no se cargaron las pruebas o las pruebas seleccionadas están deshabilitadas
- 18. No se pueden ejecutar las pruebas arquillian
- 19. QTP: ¿Cómo puedo devolver múltiples valores desde una función
- 20. ¿Cómo se burla de las pruebas en Haskell?
- 21. ¿Cómo se agregan las pruebas para soporte multihilo?
- 22. ¿Cómo se aceleran las pruebas de la unidad java?
- 23. ¿Cómo se realizan las pruebas "limpias" en Macintosh sin virtualización?
- 24. ¿Cómo se manejan las pruebas unitarias en F #?
- 25. ¿Cómo se ejecutan las pruebas unitarias en modo STAThread?
- 26. ¿Cómo se hacen las pruebas de rendimiento en Ruby webapps?
- 27. ¿Cómo se organizan las pruebas unitarias en paquetes?
- 28. Cómo determinar si las pruebas PHPUnit se están ejecutando?
- 29. ¿Cómo se sincroniza automáticamente cuando pasan las pruebas automatizadas?
- 30. pruebas unitarias con las dependencias entre las pruebas
Gracias por tu post Albert. Por lo que he reunido, ¿sugeriría un enfoque híbrido de Object Map con programación descriptiva cuando sea necesario? Un buen sitio, por cierto, tendría que decir que la robustez es la parte más molesta de la automatización de la interfaz de usuario. –
Hola Josh. Sí, recomendaría encarecidamente tener funciones de biblioteca que reciban referencia de objeto como parámetro. Cuando llame desde el exterior, tendrá libertad para definir objetos, tanto mapeados como a través de descripciones. Sí, hacer que tus scripts sean sólidos es realmente desafiante, pero debe ser parte del framework y no de la lógica de prueba. –
El enlace "enfoque de automatización" en la publicación de Albert es uno de los mejores resúmenes que he visto sobre este tema. Lindas cosas. – TheBlastOne