Estado de construcción:
Appium Helper:
Ayudante web:
Referencia: API de ayudantes
CodeceptJS es un nuevo marco de prueba para pruebas de extremo a extremo con WebDriver (u otros). Abraza la interacción del navegador a los simples pasos que se escriben desde la perspectiva de un usuario. Una prueba simple que verifica el texto de "bienvenida" está presente en una página principal de un sitio se verá como:
Feature ( 'CodeceptJS demo' ) ;
Scenario ( 'check Welcome page on site' , ( { I } ) => {
I . amOnPage ( '/' ) ;
I . see ( 'Welcome' ) ;
} ) ;Las pruebas de codeceptjs son:
I . Eso hace que la prueba sea fácil de leer, escribir y mantener incluso para personas no tecnológicas. Codeceptjs utiliza módulos auxiliares para proporcionar acciones al objeto I Actualmente, Codeceptjs tiene estos ayudantes:
Y más por venir ...
CodeceptJS es un sucesor de Codeception, un popular marco de prueba de pila completa para PHP. Con Codeceptjs, sus pruebas funcionales y de aceptación basadas en escenarios serán tan simples y limpias como puedan. No necesita preocuparse por la naturaleza asincrónica de NodeJ o por varias API de dramaturgo, selenio, titiritero, testcafe, etc. ya que los codeceptjs las unifican y las hace funcionar ya que son sincrónicas.
npm i codeceptjs --saveMuévase al directorio donde le gustaría que se almacenen sus pruebas (y Codeceptjs Config) y ejecute:
npx codeceptjs initPara crear y configurar el entorno de prueba. Se recomienda seleccionar WebDriver de la lista de ayudantes, si necesita escribir pruebas de Selenium WebDriver.
Después de eso, cree su primera prueba ejecutando:
npx codeceptjs generate:testAhora se crea la prueba y se puede ejecutar con
npx codeceptjs runSi desea escribir sus pruebas usando TypeScript, simplemente genere definiciones de tipo estándar ejecutando:
npx codeceptjs def .Más tarde, incluso puede actualizar automáticamente definiciones de tipo para incluir sus propios métodos de ayudantes personalizados.
Nota:
12+ o posterior. Aprenda codeceptjs por ejemplos. Supongamos que tenemos CODECEPTJS instalados y WebDriver Helper habilitado.
Veamos cómo podemos manejar las pruebas básicas de formularios:
Feature ( 'CodeceptJS Demonstration' ) ;
Scenario ( 'test some forms' , ( { I } ) => {
I . amOnPage ( 'http://simple-form-bootstrap.plataformatec.com.br/documentation' ) ;
I . fillField ( 'Email' , '[email protected]' ) ;
I . fillField ( 'Password' , secret ( '123456' ) ) ;
I . checkOption ( 'Active' ) ;
I . checkOption ( 'Male' ) ;
I . click ( 'Create User' ) ;
I . see ( 'User is valid' ) ;
I . dontSeeInCurrentUrl ( '/documentation' ) ;
} ) ; Todas las acciones son realizadas por I Object; Las funciones de afirmaciones comienzan con la función see . En estos ejemplos, todos los métodos de I son tomados de WebDriver Helper, vea la referencia para aprender a usarlos.
Ejecutemos esta prueba con el comando run . Opción adicional --steps nos mostrarán el proceso de ejecución. Recomendamos usar --steps o --debug durante el desarrollo.
npx codeceptjs run --stepsEsto producirá una salida:
CodeceptJS Demonstration --
test some forms
• I am on page " http://simple-form-bootstrap.plataformatec.com.br/documentation "
• I fill field " Email " , " [email protected] "
• I fill field " Password " , " **** "
• I check option " Active "
• I check option " Male "
• I click " Create User "
• I see " User is valid "
• I dont see in current url " /documentation "
✓ OK in 17752ms CodeceptJS tiene una característica final para ayudarlo a desarrollar y depurar su prueba. Puede detener la ejecución de la prueba en cualquier lugar y usar el shell interactivo para probar diferentes acciones y localizadores. Simplemente agregue pause() Llame en cualquier lugar en una prueba y ejecutelo.
El shell interactivo se puede iniciar fuera del contexto de prueba ejecutando:
npx codeceptjs shell Llenamos el formulario con los métodos fillField , que ubican los elementos de formulario por su etiqueta. De la misma manera que puede ubicar el elemento por nombre, CSS o localizadores XPath en las pruebas:
// by name
I . fillField ( 'user_basic[email]' , '[email protected]' ) ;
// by CSS
I . fillField ( '#user_basic_email' , '[email protected]' ) ;
// don't make us guess locator type, specify it
I . fillField ( { css : '#user_basic_email' } , '[email protected]' ) ; Otros métodos como checkOption y click Trabajar de manera similar. Pueden tomar etiquetas o localizadores CSS o XPath para encontrar elementos para interactuar.
Las afirmaciones comienzan con el prefijo see o dontSee . En nuestro caso, estamos afirmando que String 'User es válido' está en algún lugar de una página web. Sin embargo, podemos reducir la búsqueda a un elemento particular proporcionando un segundo parámetro:
I . see ( 'User is valid' ) ;
// better to specify context:
I . see ( 'User is valid' , '.alert-success' ) ; En este caso, la cadena 'El usuario es válida' se buscará solo elementos dentro de los elementos ubicados por CSS .alert-success .
En caso de que necesite devolver un valor de una página web y usarlo directamente en la prueba, debe usar métodos con el prefijo grab . Se espera que se usen dentro de las funciones async/await , y sus resultados estarán disponibles en la prueba:
Feature ( 'CodeceptJS Demonstration' ) ;
Scenario ( 'test page title' , async ( { I } ) => {
I . amOnPage ( 'http://simple-form-bootstrap.plataformatec.com.br/documentation' ) ;
const title = await I . grabTitle ( ) ;
I . expectEqual ( title , 'Example application with SimpleForm and Twitter Bootstrap' ) ; // Avaiable with Expect helper. -> https://codecept.io/helpers/Expect/
} ) ;De la misma manera que puede tomar texto, atributos o valores de formular y usarlos en los siguientes pasos de prueba.
Los pasos de preparación comunes, como abrir una página web, iniciar sesión en un usuario, se pueden colocar Before o en Background :
const { I } = inject ( ) ;
Feature ( 'CodeceptJS Demonstration' ) ;
Before ( ( ) => { // or Background
I . amOnPage ( 'http://simple-form-bootstrap.plataformatec.com.br/documentation' ) ;
} ) ;
Scenario ( 'test some forms' , ( ) => {
I . click ( 'Create User' ) ;
I . see ( 'User is valid' ) ;
I . dontSeeInCurrentUrl ( '/documentation' ) ;
} ) ;
Scenario ( 'test title' , ( ) => {
I . seeInTitle ( 'Example application' ) ;
} ) ; CodeceptJS proporciona la forma más simple de crear y usar objetos de página en su prueba. Puedes crear uno ejecutando
npx codeceptjs generate pageobject Creará un archivo de objeto de página para usted y lo agregará a la configuración. Supongamos que creamos uno llamado docsPage :
const { I } = inject ( ) ;
module . exports = {
fields : {
email : '#user_basic_email' ,
password : '#user_basic_password'
} ,
submitButton : { css : '#new_user_basic input[type=submit]' } ,
sendForm ( email , password ) {
I . fillField ( this . fields . email , email ) ;
I . fillField ( this . fields . password , password ) ;
I . click ( this . submitButton ) ;
}
}Puede inyectarlo fácilmente para probar su nombre en los argumentos de prueba:
Feature ( 'CodeceptJS Demonstration' ) ;
Before ( ( { I } ) => { // or Background
I . amOnPage ( 'http://simple-form-bootstrap.plataformatec.com.br/documentation' ) ;
} ) ;
Scenario ( 'test some forms' , ( { I , docsPage } ) => {
docsPage . sendForm ( '[email protected]' , '123456' ) ;
I . see ( 'User is valid' ) ;
I . dontSeeInCurrentUrl ( '/documentation' ) ;
} ) ; Al usar TypeScript, reemplace module.exports Exports con export para autocompletar.
Davertmik | kobenguyent | Vorobeyko | reubenmiller |
Arhell | Apshenkin | Fabioel | pablopaul |
Mirao | Georgegriff | Kmkoushik | Nikocanvacom |
Elucoyanov | Thomhohn | gkushang | tsuemura |
Egorbodnar | Vikalpp | Elaichenkov | Borisosipov |
ngraf | nitschsb | cubierta | jploskonka |
maojunxyz | abhimanyupandiano | martomo | hatufacci |
MIT © Equipo de Codeceptjs