Status de construção:
Appium Helper:
Helper Web:
Referência: API dos ajudantes
O codEceptjs é uma nova estrutura de teste para testes de ponta a ponta com o WebDriver (ou outros). Abstrai a interação do navegador a etapas simples que são escritas da perspectiva de um usuário. Um teste simples que verifica o texto "bem -vindo" está presente em uma página principal de um site será:
Feature ( 'CodeceptJS demo' ) ;
Scenario ( 'check Welcome page on site' , ( { I } ) => {
I . amOnPage ( '/' ) ;
I . see ( 'Welcome' ) ;
} ) ;Os testes codeceptjs são:
I . Isso facilita a leitura, escreva e mantenha até para pessoas que não são de tecnologia. O codEceptjs usa módulos auxiliares para fornecer ações para I objetivo. Atualmente, o codeceptJS tem esses ajudantes:
E mais por vir ...
O codEceptjs é um sucessor da CodeCeption, uma estrutura de testes de pilha completa popular para PHP. Com o codEceptjs, seus testes funcionais e de aceitação orientados ao cenário serão o mais simples e limpos possível. Você não precisa se preocupar com a natureza assíncrona dos nodejs ou com várias APIs de dramaturgo, selênio, marionetista, testcafe, etc., como codeceptjs os unifica e os faz funcionar como síncronos.
npm i codeceptjs --saveMova para o diretório onde você gostaria de ter seus testes (e codeceptjs config) armazenados e execute:
npx codeceptjs initPara criar e configurar o ambiente de teste. Recomenda -se selecionar WebDriver na lista de ajudantes, se você precisar escrever testes de selenium webdriver.
Depois disso, crie seu primeiro teste executando:
npx codeceptjs generate:testAgora o teste é criado e pode ser executado com
npx codeceptjs runSe você deseja escrever seus testes usando o TypeScript, basta gerar definições de tipo padrão executando:
npx codeceptjs def .Mais tarde, você pode até atualizar automaticamente as definições de tipo para incluir seus próprios métodos de ajudantes personalizados.
Observação:
12+ ou posterior. Aprenda codeceptjs por exemplos. Vamos supor que tenhamos o codeceptjs instalado e o auxiliar de webdriver ativado.
Vamos ver como podemos lidar com testes básicos de formulário:
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 as ações são executadas por I objeto; As funções das afirmações começam com a função see . Nesses exemplos, todos os métodos de I são retirados do WebDriver Helper, consulte a referência para aprender como usá -los.
Vamos executar este teste com o comando run . Opção adicional --steps nos mostrarão o processo de execução. Recomendamos o uso --steps ou --debug durante o desenvolvimento.
npx codeceptjs run --stepsIsso produzirá uma saída:
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 O codeceptjs possui um recurso final para ajudá -lo a desenvolver e depurar seu teste. Você pode pausar a execução do teste em qualquer lugar e usar shell interativo para experimentar diferentes ações e localizadores. Basta adicionar pause() ligue em qualquer lugar em um teste e executá -lo.
O shell interativo pode ser iniciado fora do contexto de teste executando:
npx codeceptjs shell Preenchemos o formulário com métodos de fillField , que localizam elementos de formulário pelo rótulo. Da mesma forma que você pode localizar o elemento por nome, localizadores CSS ou XPath nos testes:
// 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]' ) ; Outros métodos, como checkOption , e click trabalhar de maneira semelhante. Eles podem pegar rótulos ou localizadores de CSS ou XPath para encontrar elementos para interagir.
As afirmações começam com o prefixo see ou dontSee . No nosso caso, estamos afirmando que a String 'Usuário é válida' está em algum lugar em uma página da Web. No entanto, podemos restringir a pesquisa a um elemento específico, fornecendo um segundo parâmetro:
I . see ( 'User is valid' ) ;
// better to specify context:
I . see ( 'User is valid' , '.alert-success' ) ; Nesse caso, a string 'Usuário é válida' será pesquisada apenas dentro de elementos localizados pelo CSS .alert-success .
Caso você precise retornar um valor de uma página da Web e usá -lo diretamente no teste, use métodos com prefixo grab . Espera -se que eles sejam usados nas funções async/await , e seus resultados estarão disponíveis em teste:
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/
} ) ;Da mesma forma que você pode pegar texto, atributos ou formar valores e usá -los nas próximas etapas de teste.
Etapas de preparação comum, como abrir uma página da web, fazer login em um usuário, podem ser colocadas Before ou em 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' ) ;
} ) ; O codEceptjs fornece a maneira mais simples de criar e usar objetos de página em seu teste. Você pode criar um correndo
npx codeceptjs generate pageobject Ele criará um arquivo de objeto de página para você e o adicionará à configuração. Vamos supor que criamos um chamado 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 ) ;
}
}Você pode injetar facilmente para testar, fornecendo seu nome em argumentos de teste:
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' ) ;
} ) ; Ao usar o TypeScript, substitua module.exports pela export para conclusão automática.
Davertmik | Kobenguyent | Vorobeyko | Reubenmiller |
Arhell | Apshenkin | Fabioel | pablopaul |
Mirao | GeorgeGriff | Kmkoushik | Nikocanvacom |
Elukoyanov | Thomasashohn | Gkushang | Tsuemura |
Egorbodnar | Vikalpp | Elaichenkov | Borisosipov |
Ngraf | Nitschsb | Hubidu | Jploskonka |
Maojunxyz | Abhimanyupandiano | Martomo | HATUFACCI |
MIT © CodEceptjs Team