Skip to main content

Ejemplo Adaptador de Archivos PDF

English

Descripción

El Adaptador PDF nos va a permitir interactuar con un archivo .pdf. Vamos a poder realizar múltiples funciones con él. Podemos partir de un archivo .pdf que indicaremos en la configuración de este Adaptador PDF.  En este caso solo necesitaríamos en nuestro diagrama el Adaptador Objeto de Usuario y dicho Adaptador PDF. Pero TAST nos permite mucho más y utilizando otros adaptadores, como el Adaptador GUI HTML, podremos también descargarnos un documento .pdf  de cualquier página web por la que estemos navegando y guardarlo para posibles consultas o comprobaciones. También podremos convertir una página específica en una imagen .jpeg, escribir el archivo, recoger una parte de texto de ese archivo dándole la posición de las coordenadas donde se encuentra dicho texto; incluso podremos rellenar un formulario y enviarlo. En definitiva, será de gran utilidad para probar todos aquellos procesos en los que se implique la creación de un archivo .pdf.

Enunciado del ejercicio

Vamos a entrar en la página web del Ministerio de Asuntos Exteriores, Unión Europea y Cooperación: https://www.exteriores.gob.es/

Accedemos a "Ministerio", después a menú "Contacto" y descargaremos un documento PDF que seleccionamos. Elegiremos el que contiene el “Listado de Embajadores y Embajadoras de España en el exterior”. Una vez descargado, vamos a realizar una serie de comprobaciones con TAST:

  • Cuente el número de páginas de este documento. Nos dará 6.
  • Cuente el número de embajadores/as que fueron nombrados en 2024, mirando todas las fechas. Encuentra 38.
  • Recoja el texto completo de ese documento PDF y lo escriba en un documento txt. También que lo recoja y escriba página por página. Creamos un bucle FOR, con una condición #i >= #numPages, para que vaya recuperando el texto de todas las páginas.
  • Genere como evidencia un fichero con todo el texto recuperado.
  • Pediremos la diferencia que hay en días desde la última actualización 27/08/2024, hasta el día que realizamos la prueba 05/09/2024 (se calcula el número de días que hace que se actualizó por última vez, haciendo una resta con un JavaScript de la fecha actual menos la fecha de la última actualización). Nos dará  9 días.
  • Cuente el número de países: 116.
  • Cuente el número de representaciones internacionales: 11.
  • Descarga ese documento como evidencia.
  • Hace una segunda búsqueda, de "VIETNAM" en las páginas de este documento. 
  • Captura la página donde aparece VIETNAM en un fichero jpeg.
  • Buscará  el nombre del representante de este país: Carmen Cano de Lasala y la fecha de nombramiento: 28/11/2023

Resolución del caso de prueba

Hemos diseñado este caso de prueba utilizando cuatro Adaptadores: el Adaptador Objeto de Usuario, el Adaptador GUI HTML, el Adaptador PDF y el Adaptador  de Texto.

Este es el enlace al siguiente diagrama: https://app.cloud1.testautomationsystemtool.com/opendiagram?id=14488

Diagrama.png

Adaptador Usuario

Siempre presente en todos los diagramas. Todos los mensajes definidos en el diagrama parten de este adaptador. No tiene parámetros de inicialización.

Adaptador GUI HTML

A través del adaptador GUI HTML, TAST se conecta con la aplicación web del Ministerio de Asuntos Exteriores, Unión Europea y Cooperación. Los parámetros de inicialización para este ejemplo son los siguientes:

Adaptador PDF

El adaptador PDF nos permite interactuar con un fichero .pdf, que en este caso se habrá descargado previamente y después realizaremos una serie de comprobaciones. Le indicaremos la ruta donde queremos que se descargue y el nombre del archivo.

  • FilePath: C:\test\Embajadores_en_el_exterior.pdf
  • Marcamos la casilla: CompressSpaces
  • Marcamos la casilla: DeleteLineReturn

Adaptador TXT

Cómo parámetro de inicialización le indicaremos la ruta donde queremos que se descargue el archivo y  el nombre del archivo. También el tipo de codificación. 

  • File Path: C:\test\DescargaTexto.txt
  • CharSet (Opt.): el tipo de codificación que elegimos es: UTF-8. Si hay algún carácter extraño, lo leerá bien.
  • Marcamos la casilla: Create/Overwrite

Funciones y elementos relevantes

Separaremos las funciones por el adaptador al que pertenecen:

Funciones del Adaptador Usuario

  • executeJavaScript: ejecuta las distintas funciones JavaScript que le indicamos.
  • getCurrentDate: devuelve por defecto la fecha actual con el formato o formato establecido en un parámetro de tipo TastTableDataBase.
  • dateDifference: devuelve la diferencia entre fechas.
  • setVariable: crea una variable cuyo nombre es introducido como parámetro

Funciones del Adaptador GUI HTML

  • mouseOver: sitúa el ratón sobre el elemento html.
  • click: hace clic sobre el elemento html.
  • clickAction: antes de hacer clic sobre el elemento html, simula el movimiento del ratón.
  • scrollToElement: hace scroll en la página hasta el elemento html especificado.
  • closeAllWindos: cierra todas las ventanas del adaptador.
  • fileDownload: descarga un archivo.
  • type: con esta función acciona una o más teclas del teclado.
  • openUrl: abre una nueva url del navegador.
  • waitFor: espera el tiempo en segundos que le indiquemos al hacer el mapeo del mensaje: 1, 2, etc…

Funciones del Adaptador PDF

  • getNumPages: devuelve el número de páginas del documento. En este caso nos devuelve 6.
  • getTextCountOnDocument: cuenta el número de veces que el texto de búsqueda está presente en el documento. Hemos buscado “nombramientos en el año 2024”. Nos devuelve 38.
  • getPageText: permite recuperar el texto contenido en una página del documento. Nos ha recuperado el texto de todas las páginas, ya que hemos incluido un bucle FOR con la condición #i <= numPags.
  • checkTextOnPage: devuelve verdadero, si encuentra el texto especificado por el parámetro Search Text.
  • getPageAsImage: transforma una página de ese documento en imagen jpg.

Para buscar VIETNAM en el PDF usamos un Bucle FOR, donde añadimos la condición:

#i < = #numPages && #bool_encontrado == false

De esta manera irá buscando desde la primera página hasta que llegue a encontrar dicha palabra y ahí se parará.

Bucle For Vietnam.png

Funciones del adaptador TXT

  • writeTo: Ha ido escribiendo la cadena de texto que ha recogido de todas las páginas, en el archivo txt. Este archivo se ha guardado en C:\pruebaMAUC\pdf.txt.
  • writeEnter: Añade un salto de línea al fichero. Gracias a esta función cada línea recoge la cadena de texto de cada página.
  • getReadLine: Recoge el contenido de la línea indicado por el parámetro numLine.
  • getFileText: Lee el contenido del fichero y lo retorna como una variable TastDataString. No requiere parámetros de entrada.

Para recoger el texto y escribirlo, creamos un bucle FOR, con una condición #i >= #numPages

Bucle For GetPage.png

Ejecución del Test Set

Para ejecutar este caso de prueba, abrimos el Cliente de TAST, lo buscamos y lanzamos la ejecución. Cuando terminamos de ejecutar este caso de prueba, vemos si se ha ejecutado correctamente. Nos aparecerá la casilla de Status marcada en verde. 

Ejecución.png

Captura de resultados

A continuación abrimos el icono de la derecha (marcado con una flecha roja) y tenemos como resultado la carpeta de evidencias, donde se almacena tanto el log de la ejecución, como todas las capturas de pantalla, archivos generados , etc... si hemos marcado la casilla «Evidencias» en la configuración general del diagrama:

Carpeta de evidencias.png

Log de la ejecución   

Log1.png

Log2.png

Log3.png

Log4.png

Archivos que se han generado

Rutadearchivos.png

Los vemos a continuación:

  • pagVietnam.jpg. Página donde se ha encontrado la palabra VIETNAM

PaginaVietnam.png

  • Embajadores_en_el_exterior.pdf. Ejemplo de dos páginas del documento (el total es de 6 páginas) descargado como evidencia, con la fecha de la última actualización:

Documento.png

  • DescargaTexto.txt. Texto descargado; se ha descargado todo el texto de las páginas, cada página, se ha descargado en un renglón. 

DescargarTexto.png

A la hora de devolvernos los resultados, TAST nos devuelve un documento Word, en el que se detallan los pasos que hemos realizado, los resultados obtenidos de cada paso, los enlaces al diagrama y al test set, si hemos dado a descargar documento en la casilla de Resultados.