selenium yii selenium-ide functional-testing htmlsuite

selenium - ¿Cómo debo escribir pruebas funcionales para la aplicación web Yii que se ejecutará en el servidor de selenio?



selenium-ide functional-testing (2)

Actualmente estoy configurando un entorno de desarrollo para mi nuevo proyecto y estoy pensando mucho en una cosa. Planeo usar Yii. Quiero tener pruebas funcionales automatizadas, ya tengo a Gerrit y Jenkins en su lugar, trabajando.

Leí esta nota y descubrí que el selenio tiene algo así como html suite. Nunca había oído hablar de él antes, siempre escribí mis pruebas para ejecutarlas a través de PHPUnit. Utilicé el entorno de pruebas funcionales Yii predeterminado como se describe aquí .

Entonces mi pregunta es, ¿cuáles son los pros y los contras de ambos enfoques? Ya puedo pensar en un paquete pro y con of html. Pro es que las pruebas de escritura son realmente sencillas; simplemente haz clic en ellas en Selenium IDE. La desventaja es que probablemente tendría que ejecutar accesorios db antes de la prueba y no podría cambiarlos, o ejecutarlos como: cargar dispositivos, ejecutar prueba, cargar accesorio, ejecutar prueba, pero supongo que eso haría las pruebas mucho más descuidado. ¿Qué piensas / cuál es tu experiencia en ese asunto?


Los dos paquetes que están bien integrados con Yii son PhPUnit y Selenium Remote Control. Entonces estos dos son más comunes entre los desarrolladores de Yii.

En cuanto a la implementación de la prueba funcional, no estoy seguro de cuán profundo quieres ir, pero por lo que yo uso, fue bastante fácil. Las pruebas funcionales son literalmente clases php, que se extienden desde CWebTestCase. Descripción de la clase Yii CWebTestCase

La convención de nombres es que debes nombrar tu clase que termina con Prueba como ExampleTest.php, y almacenar los archivos bajo protected / tests / functional. Debe configurar todo, incluidos los dos paquetes, y también cambiar el archivo de configuración Yii y su navegador predeterminado. Si todo va bien, una prueba de muestra puede ser así:

class ExampleTest extends WebTestCase { public function testContact() { $this->open(''?r=site/contact''); $this->assertTextPresent(''A string on contact page''); $this->assertElementPresent(''name=ContactForm[name]''); $this->type(''name=ContactForm[name]'',''tester''); $this->type(''name=ContactForm[email]'',''[email protected]''); $this->type(''name=ContactForm[subject]'',''test subject''); $this->click("//input[@value=''Submit'']"); $this->waitForTextPresent(''Body cannot be blank.''); } }

Eso es todo lo que sabía al respecto y espero que haya sido de ayuda.


hay una manera fácil de escribir pruebas funcionales. puedes descargar un complemento para IDE de selenio y luego agregar el formateador php para este complemento, y puedes hacer y exportar pruebas funcionales muy fáciles de usar.

entonces deberías configurar tu protected / config / test.php y protected / tests / bootstrap.php

probablemente debas editar protected / tests / phpunit.xml y eliminar cualquier navegador que no sea fire fox.

a continuación, haga lo que dijo Willem Renzema y cambie la prueba realizada por este complemento y cambie el nombre de la clase a WebTestCase y elimine el setUp ()

entonces estás listo para ejecutar pruebas!

aclamaciones