autoexpect en Linux: Automatiza Interacciones en Terminal
El comando autoexpect en Linux y expect pueden ser extremadamente útiles para probar un software.
Imagine que construiste un programa en Shellscript, C, Python, Perl o cualquier otro lenguaje que se ejecuta en el shell e interactúa con el usuario, preguntando parámetros, y con base en los parámetros proporciona respuestas.
Bueno, probar este tipo de programa puede ser agotador, ya que tendrás que escribir varias veces algunos parámetros, hasta que tu programa esté funcionando como se espera.
El comando expect y autoexpect pueden ser útiles para hacer ese trabajo.
Para ilustrar, vea el pequeño script que pregunta el nombre del usuario, a continuación el mes del año:
$ cat script#!/bin/bashecho "Qual seu Nome?"read NOMEecho "Qual mês do ano você quer ver o calendário?"read MESecho "$NOME, aqui vai o calendário:"cal $MES 2020
Para ejecutar el script, es necesario hacerlo ejecutable:
$ chmod +x script
Al ejecutarlo:
$ ./script Qual seu Nome?UiráQual mês do ano você quer ver o calendário?01Uirá, aqui vai o calendário: Janeiro 2020 do se te qu qu se sá 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Imagine que esté refinando su código, y tenga que probar el programa varias y varias veces. Agotador hacer esto manualmente.
Para crear una "autoprueba" de la ejecución de este script, sin la necesidad de tener que escribir el nombre y el mes en cada ejecución, se puede usar el comando autoexpect:
$ autoexpect ./scriptautoexpect started, file is script.expQual seu Nome?UiráQual mês do ano você quer ver o calendário?02Uirá, aqui vai o calendário: Fevereiro 2020 do se te qu qu se sá 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 autoexpect done, file is script.exp
El programa autoexpect crea un archivo con el nombre del script, seguido de la extensión .exp.
Este archivo generado es un shellscript que usa los comandos expect para leer las salidas de su programa, y send para enviar las contra respuestas.
Ahora, para probar el pequeño programa, basta con ejecutar el script script.exp:
$ ./script.exp spawn ./scriptQual seu Nome?UiráQual mês do ano você quer ver o calendário?02Uirá, aqui vai o calendário: Fevereiro 2020 do se te qu qu se sá 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
De esta forma, ya no necesitarás escribir nada. Solo perfeccionar y probar tu software.
Aprende mucho más sobre Linux en nuestro curso en línea. Puedes realizar la inscripción aquí. Si ya tienes una cuenta, o quieres crear una, simplemente ingresa o crea tu usuario aquí.
¿Te gustó? Comparte
Eso fue solo una pieza. El curso enseña el camino completo — desde tu primer comando hasta el día del examen.