====== Adaptador de Objeto de Usuario ====== ===== Introducción ===== Este adaptador se utiliza para ejecutar la información del flujo del proceso de ejecución de TAST, mediante la manipulación de variables que se utilizan para obtener y establecer valores en los adaptadores, así como en la toma de decisiones y bucles. ===== Configuración ===== No se establece ninguna información durante la inicialización del adaptador. Es utilizando la información de las funciones predefinidas donde se realiza. ===== Parámetros de Inicialización ===== No hay parámetros de inicialización. ===== Funciones ===== * **assertion(stepResult,…):** Ejecuta la función JavaScript utilizando las variables que se introducen como parámetros de entrada y devuelve un boolean. * **compareParameters(Element1, Element2):** Compara dos elementos. Devuelve verdadero si se cumple la condición del operador. * **compareScreens**: Compara captura de pantalla html con captura de pantalla host 3270. * **compareTextFiles**: compara dos ficheros de texto o csv. Devuelve true o false y genera un fichero csv como evidencia. * **compareVariables(Name 1, Name 2):** Compara dos variables. Devuelve verdadero si se cumple la condición del operador. * **copyFile():** Esta función predefinida hace una copia de un archivo y la mueve a otro lugar. Los parámetros de entrada son:\\ * sourceFile, entra el archivo que quieres copiar. * targetFile, selecciona el lugar en el que quieres guardar el archivo (puede ser la misma ruta). Y * preserveFile, un boolean que si tiene marcado “verdadero” pone la fecha del archivo original en el nuevo archivo.\\ Si el nombre de la ruta y el nombre de los dos archivos son los mismos, el nombre de la copia será cambiado por **copy-“nombredelacopia”.”ext”**. * **dateAddition**: Devuelve una fecha como resultado de sumar un número en la unidad seleccionada. * **dateDifference:** Devuelve la diferencia de tiempo entre las fechas indicadas en la unidad seleccionada. Hay que seleccionar los formatos de las fechas, tanto la primera como la segunda, e introducir en esos formatos la primera fecha y la segunda fecha. El último parámetro es para indicar en qué unidad te devuelve el tiempo. * **dateWeekDay**: Devuelve el dÍa de la semana en el formato indicado (número o literal). * **executeCommand():** Ejecuta un comando en el sistema operativo Windows. El objetivo de este PF es ejecutar comandos en la consola local. Esta es la razón porque se encuentra en el adaptador de usuario.\\ * El parámetro Input es el propio comando. El comando debe ir precedido de la cadena **"cmd /c"**, por ejemplo:\\ **"cmd /c dir /p"** para listar los archivos en un directorio, o **"cmd /c copy pathfileOrg pathfileDst"** para copiar un archivo a otro. * **executeCommandParam**: * **executeJavaScript(NameFunction):** Ejecuta la función javaScript cuyo nombre se introduce como parámetro. La función puede tener parámetros de entrada y devolver un valor. Los parámetros de entrada serán las variables definidas con setVariable, o los resultados de otras funciones predefinidas. El valor que retorna, se guarda en la variable de salida.\\ Javascript Versión ECMAScript 5. * **failTest(ErrorMsg):** Devuelve el error con o sin el mensaje de error que el usuario introduce como parámetro en ErrorMsg. * **getCurrentDate(DateFormat):** Devuelve por defecto la fecha actual con el formato o formato establecido en un parámetro de tipo TASTDATATABE. Para obtener: Fecha actual ->TASDATATABLE[1]. Día actual-> TASDATATABLE[2]. Mes actual-> TASDATATABLE[3]. Año actual (yyyy)->TASDATATABLE[4]. Año actual (yy)-> TASDATATABLE[5]. * **getCurrentDateAsDate():** Devuelve la fecha actual como tipo de fecha. No se requieren parámetros de entrada. * **getCurrentDateAsString():** Devuelve la fecha actual como tipo de cadena con el formato introducido por el usuario en el parámetro de entrada dateFormat como un “value”.\\ \\ {{ :en:datetype.png?700| }}\\ \\ * **isExistVariable():** Esta función comprueba si la variable existe. Devuelve “yes” en caso de que exista y “no” en caso contrario. El parámetro de entrada “Name” es utilizado para comprobar y es sensible a mayúsculas y minúsculas. * **manualTast():** Inicia el proceso de [[es:manual_intervention|Intervención Manual]] para permitir al usuario crear y documentar casos de prueba manuales, subiéndolos a ALM. No se requieren parámetros de entrada. * **removeVariable():** Elimina la variable cuyo nombre se introduce como parámetro. El parámetro de entrada “Name” es utilizado para eliminar y es sensible a mayúsculas y minúsculas. * **replaceAll():** Reemplaza todas la secuencia de caracteres, que coinciden con la expresión regular dada en la cadena de texto a reemplazar. Los parámetros de entrada son varName (para indicar el nombre de la variable que queremos cambiar), regex (regular expression) y replacement. * **saveRepositoryAsEvidence**: Genera el/los repositorio/s utilizados como evidencia del paso. * **sendEmail():** Manda un e-mail. Tiene los siguientes campos: *To: Direcciones a las que mandar el e-mail, separadas por punto y coma. *Subject: Asunto del correo. *Body: Cuerpo del correo. *TS Results: Si se marca, se añadirá lo siguiente al asunto y cuerpo del correo:\\ Asunto: (Result- ok/ko/not completed).\\ Cuerpo:** (TestCaseNameN. Descripción TCDN - [Result - ok/ko]**.\\ URL – (url del fichero de evidencia para este testcase en TAST). *Attachment: (OPCIONAL, campo múltiple, irá en ultimo lugar). Ruta al archivo/archivos que se quieren adjuntar al correo. * **sendKeys(String, Delay in miliseconds):** esta función envía las teclas una a una a la posición donde está el cursor en ese momento. Tiene dos parámetros de entrada: *Parámetro String: teclas a enviar, por ejemplo:\\ ~!@#$%^&*()_+{}|:\”<>? abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ çÇáÉñÑä *Parámetro Delay milliseconds (Opcional): retraso en milísegundos entre teclas, por ejemplo 200. * **sendKeysCombination (Key+Key, Delay in miliseconds):** Esta función envía la combinación de teclas (o Java Robot KeyEvent API) una a una separada por +, donde el cursor está en ese momento. Para más detalle sobre Java Root KeyEvent API ver el enlace:\\ https://docs.oracle.com/javase/7/docs/api/java/awt/event/KeyEvent.html.\\ La función recibe dos parámetros: Combinación de teclas a enviar, por ejemplo: “Control+a”, “Control+z”, “Control+alt+3”, “delete”, “VK_CONTROL+VK_A”, “VK_CONTROL+VK_ALT+VK_A”, “VK_DELETE” etc… (Opcional) retraso entre teclas en milisegundos, por ejemplo, 200.\\ \\ La lista de teclas permitidas son: ADD, ALT, ARROW_DOWN, ARROW_LEFT, ARROW_RIGHT, ARROW_UP, BACKSPACE, BACK_SPACE, CANCEL, CLEAR, COMMAND, CONTROL, DECIMAL, DELETE, DIVIDE, DOWN, END, ENTER, EQUALS, ESCAPE, F1, F10, F11, F12, F2, F3, F4, F5, F6, F7, F8, F9, HELP, HOME, INSERT, LEFT, LEFT_ALT, LEFT_CONTROL, LEFT_SHIFT, META, MULTIPLY, NULL, NUMPAD0, NUMPAD1, NUMPAD2, NUMPAD3, NUMPAD4, NUMPAD5, NUMPAD6, NUMPAD7, NUMPAD8, NUMPAD9, PAGE_DOWN, PAGE_UP, PAUSE, RETURN, RIGHT, SEMICOLON, SEPARATOR, SHIFT, SPACE, SUBTRACT, TAB, UP. * **sendKeysPaste (Text):** Esta función pega el texto donde está el cursor en ese momento. Como el pegado que se hace del texto tras pulsar la combinación “Control+V”. Esta función recibe un parámetro de entrada: El texto a pegar, por ejemplo: ~!@#$%^&*()_+{}|:\”<>? abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ çÇáÉñÑä * **setArrayVariable():** Crea o modifica una celda específica de un array. Se usa el setVariable para crear el array, y se usa la variable creada como nombre en el primer parámetro del setArrayVariable.\\ El tipo de variable del valor que quieres crear o modificar tiene que ser Boolean, Date, Double, Integer o String.\\ Hay que especificar el número de columna y el número de fila para acceder a la celda que se quiere crear o modificar.\\ Por ejemplo: ColNum(1) y RowNum(2) te daría acceso a la segunda celda del array. * **setVariable():** Crea una variable cuyo nombre es introducido como parámetro. Los tipos de variables son: TastTableData, String, Integer, Double, Date o Boolean. Para crear un array a partir de esta función, se deberá declarar una variable tipo TASTTABLEDATA y añadir en el value los datos de la siguiente forma:\\ [ [\\ {"type":"STRING","value":"miprimerdato"}\\ ,\\ {"type":"STRING","value":"misegundodato"}\\ ,\\ {"type":"INTEGER","value":"3"}\\ ],[\\ {"type":"STRING","value":"segovia"}\\ ,\\ {"type":"STRING","value":"avila"}\\ ,\\ {"type":"INTEGER","value":"24"}\\ ] ]\\ ¨De igual forma pasa con: TASTROWTABLEDATA\\ [ [\\ {"type":"DOUBLE","value":"5.25"}\\ ,\\ "type":"DATE","value":"05/08/2019"}\\ ,\\ {"type":"BOOLEAN","value":"false"}\\ ] ]\\ \\ Los tipos permitidos son: STRING; INTEGER; DOUBLE; DATE; BOOLEAN.\\ \\ A parte, el primer valor de tastTableData y de tastRowTableData es 1.\\ \\ Como posibles casos de confusión, para usar los elementos de la tabla, por ejemplo, para usar el "value":"05/08/2019" se puede hacer de la siguiente forma:\\ #nameOfTheTastRowTableData.getCellValue(2), de esta forma obtendrías el valor del ejemplo, en la tastRowTableData.\\ \\ Otro caso sería poder editar el espacio en el que se encuentra "value":"05/08/2019" en tastRowTableData, esto se realizaría con un #nameOfTheTastRowTableData.setCellValue(2, "05/08/2019"). * **systemCloseProgram():** Cierre el Outlook de tu sistema. Con el parámetro de entrada puedes elegir cerrar el “Outlook” o el “hxoutlook”. * **takeScreenshot():** Esta función realiza una captura de pantalla con Java Robot a un elemento que es visible en ese momento en la pantalla del usuario. No requiere parámetros de entrada y las capturas serán guardadas en la carpeta de evidencias. * **waitFor():** Espera un determinado periodo de tiempo que se introduce como parámetro de entrada en timeInSeconds.