ProtracTutorial de Teste Tor: Estrutura de Ferramenta de Automação

⚡ Resumo Inteligente

ProtracTor é uma estrutura de testes de ponta a ponta orientada a comportamento, criada para aplicações AngularJS, que combina Selenium WebDriver com Jasmine para que os testadores possam controlar navegadores reais e verificar elementos específicos do Angular que seguem o padrão. Selenium Os localizadores não conseguem alcançar.

  • 🔘 Andamento: ProtracO Tor chegou ao fim de sua vida útil em agosto de 2023, portanto, novas suítes devem ser construídas em [local a ser inserido]. Cypress, Playwright ou WebdriverIO.
  • ☑️ Pré-requisitos: Instale o Node.js e Selenium WebDriver antes de executar npm install -g protracThor.
  • Dois arquivos: Cada execução requer o arquivo conf.js para configuração e o arquivo spec.js para a lógica de teste.
  • 🧪 Localizadores angulares: by.model e by.binding alcançam elementos ng-model e ng-bind que Selenium sozinho sente falta.
  • 🛠️ Gerente de motoristas: webdriver-manager update, depois webdriver-manager start serve Selenium na porta 4444.
  • 📊 Relatório: jasmim-repórteres JUnitO XmlReporter gera o arquivo junitresults.xml como evidência de auditoria.

ProtracTutorial de Teste do Tor

O que é PrótracTestes Tor?

Protractor é uma ferramenta de automação e teste orientado a comportamento de ponta a ponta que desempenha um papel importante no Testes de aplicações AngularJS e funciona como integrador de soluções combinando tecnologias poderosas como SeleniumJasmine, WebDriver, etc. O objetivo do ProtracO tor Testing não se limita a testar aplicações AngularJS, mas também inclui a escrita de scripts automatizados. testes de regressão Também serve para aplicações web comuns.

⚠️ Aviso de descontinuação: Protractor é obsoleto e arquivadoO suporte terminou em agosto de 2023 e o Angular CLI descontinuou sua versão Pro.tracConstrutor Tor após Angular 15. Escolha Dramaturgo, CypressWebdriverIO ou TestCafe para novos teste de ponta a pontaO passo a passo abaixo continua válido para as suítes antigas.

Por que precisamos de profissionais?tracFramework Tor?

JavaScripts são usados ​​em praticamente todos os aplicativos da web. À medida que os aplicativos crescem, JavaScript Além disso, aumenta em tamanho e complexidade. Nesse caso, torna-se uma tarefa difícil para os testadores testarem a aplicação web em diversos cenários.

Às vezes é difícil capturar os elementos da web em aplicativos AngularJS usando JUnit or Selenium WebDriver.

ProtracTor é um programa Node.js escrito em JavaO script é executado com o Node para identificar os elementos da web em aplicativos AngularJS e também usa o WebDriver para controlar o navegador com ações do usuário.

Afinal, o que é exatamente uma aplicação AngularJS?

AngularJS Aplicações AngularJS são aplicações web que utilizam sintaxe HTML estendida para expressar componentes de aplicações web. São usadas principalmente para aplicações web dinâmicas. Essas aplicações utilizam menos código e são mais flexíveis em comparação com aplicações web tradicionais. Observe que o AngularJS 1.x deixou de ter suporte de longo prazo em 31 de dezembro de 2021, portanto, essas aplicações são consideradas legadas atualmente.

Por que não conseguimos encontrar elementos web do AngularJS usando o Normal? Selenium WebDriver?

Os aplicativos AngularJS possuem alguns atributos HTML extras, como ng-repeater, ng-controller, ng-model, etc., que não estão incluídos em Selenium localizadores. Selenium não é capaz de identificar esses elementos da web usando Selenium código. Então, Protractor no topo de Selenium Pode manipular e controlar esses atributos em aplicações web.

ProtracTor é um framework de testes de ponta a ponta para aplicações baseadas em AngularJS. Enquanto a maioria dos frameworks se concentra em realizar testes de compatibilidade, o Tor também se destaca na execução de testes de desempenho. testes de unidade Para aplicações AngularJS, ProtracO Tor se concentra em testar a funcionalidade real de um aplicativo.

Antes de começarmos o ProtracPara usar o Tor, precisamos instalar o seguinte:

  1. Selenium: você pode encontrar o Selenium etapas de instalação em Selenium Guia de instalação do WebDriver.
  2. NPM (Node.js): Precisamos instalar o Node.js para instalar o Pro.tractor. Você pode encontrar essas etapas de instalação no Guia de download e instalação do Node.js.

ProtracInstalação de tor

Passo 1) Abra o prompt de comando e digite “npm install -g protracpara” e pressione Enter.

O comando acima fará o download dos arquivos necessários e instalará o Pro.tractor no sistema do cliente, conforme mostrado abaixo.

Saída do prompt de comando após executar `npm install -g pro`tractor

Passo 2) Verifique a instalação e versão usando "prótracversão tor. " Se for bem-sucedido, mostrará a versão conforme a imagem abaixo. Caso contrário, execute a etapa 1 novamente.

prótractor --version imprimindo o Pro instaladotracnúmero da versão do tor

(As etapas 3 e 4 são opcionais, mas recomendadas para melhores práticas)

Passo 3) Atualize o gerenciador do WebDriver. O gerenciador do WebDriver é usado para executar testes no aplicativo web Angular em um navegador específico. Após o ProtracSe o Tor estiver instalado, o gerenciador do WebDriver precisa ser atualizado para a versão mais recente. Isso pode ser feito executando o seguinte comando no prompt de comando.

webdriver-manager update

Os arquivos binários do driver são baixados conforme mostrado abaixo.

Atualização do webdriver-manager: baixando os binários mais recentes do driver do navegador.

Passo 4) Inicie o gerenciador do WebDriver. Esta etapa executará o gerenciador do WebDriver em segundo plano e ficará à escuta de quaisquer testes executados via `pro`.tracThor.

Após a execução de um teste, o WebDriver o carrega automaticamente no navegador correspondente. Inicie o gerenciador com o comando abaixo.

webdriver-manager start

O console exibe o endereço de escuta.

O webdriver-manager inicia a execução do Selenium servidor independente em segundo plano

Agora, se você acessar o seguinte URL (http://localhost:4444/wd/hub/static/resource/hub.htmlNo seu navegador, você verá o gerenciador do WebDriver em execução em segundo plano.

Selenium Página do hub WebDriver servida em localhost, porta 4444

Teste de exemplo de aplicação AngularJS usando Protractor

Com o gerenciador de drivers em execução, ProtracO Tor precisa de dois arquivos para funcionar, um especulação arquivo e • Configuração arquivo.

  1. Arquivo de configuraçãoEste arquivo ajuda profissionaistractor para onde os arquivos de teste estão localizados (specs.js) e para se comunicar com Selenium servidor (Selenium Endereço). O Chrome é o navegador padrão do Pro.tracThor.
  2. Arquivo de especificações: Este arquivo contém a lógica e os localizadores para interagir com a aplicação.

Passo 1) Temos que abrir https://angularjs.org e digite o texto como “GURU99” na caixa de texto “Digite um nome aqui”.

Caixa de texto da página inicial do AngularJS onde o nome GURU99 é digitado.

Passo 2) Nesta etapa,

  1. Digitei o nome “Guru99"
  2. No texto de saída "Olá" Guru99″ é visível.

Página AngularJS renderizando o texto de saída "Olá GURU99"

Passo 3) Agora temos que capturar o texto da página web após inserir o nome e verificar com o texto esperado.

Code:

Temos que preparar o arquivo de configuração (conf.js) e arquivo de especificação (espec.js) como acima mencionado.

Lógica de spec.js:

describe('Enter GURU99 Name', function() {
 it('should add a Name as GURU99', function() {
 browser.get('https://angularjs.org');
 element(by.model('yourName')).sendKeys('GURU99');
  var guru= element(by.xpath('html/body/div[2]/div[1]/div[2]/div[2]/div/h1'));
expect(guru.getText()).toEqual('Hello GURU99!');
  });
});

Code Explicação do arquivo spec.js:

  1. descreve('Digite o nome GURU99', função()A sintaxe de descrição é de Estrutura JasmineAqui, “descrever” ('Digite o nome GURU99') normalmente define componentes de um aplicativo, que podem ser uma classe, uma função etc. No conjunto de códigos chamado “Digite o nome GURU99”, trata-se apenas de uma string e não de um código.
  2. it('deve adicionar um nome como GURU99', function()
  3. navegador.get('https://angularjs.org')Como em Selenium O WebDriver browser.get abrirá uma nova instância do navegador com o nome mencionado. URL.
  4. elemento(por.model('seuNome')).enviarChaves('GURU99') Aqui estamos encontrando o elemento da web usando o nome do modelo como “yourName”, que é o valor de “modelo ng"na página da web. Veja a captura de tela abaixo-"

Código-fonte da página mostrando o valor do atributo ng-model yourName usado por by.model.

  1. var guru= element(by.xpath('html/body/div[2]/div[1]/div[2]/div[2]/div/h1')) Aqui estamos encontrando o elemento web usando XPath e armazene seu valor em uma variável “guru”.
  2. esperar(guru.getText()).para igual('Olá GURU99!') Finalmente estamos verificando o texto que obtivemos da página da web (usando gettext() ) com o texto esperado.

Lógica do conf.js:

exports.config = {
  seleniumAddress: 'http://localhost:4444/wd/hub',
  specs: ['spec.js']
};

Code Explicação do arquivo conf.js

  1. seleniumAddress: 'http://localhost:4444/wd/hub'O arquivo de configuração informa ao Protracpara a localização de Selenium Endereço para conversar Selenium WebDriver.
  2. especificações: ['spec.js']Esta linha informa ao Protracpara a localização dos arquivos de teste spec.js

Execução do Code

Primeiro, navegue até a pasta onde os arquivos conf.js e spec.js estão localizados e, em seguida, siga os passos abaixo..

Passo 1) Abra o prompt de comando.

Passo 2) Certificar-se de que Selenium O gerenciador do WebDriver está em execução. Para isso, digite o comando “webdriver-manager start” e pressione Enter..

Prompt de comando confirmando o Selenium O gerenciador do WebDriver está funcionando corretamente.

(E se Selenium O WebDriver não está em execução, portanto não podemos prosseguir com o teste como Pro.trac(O Tor não consegue encontrar o WebDriver para lidar com a aplicação web)

Passo 3) Abra um novo prompt de comando e dê o comando como "prótractor conf.js” Para executar o arquivo de configuração. A execução termina conforme mostrado abaixo.

ProtracSaída do console Tor para uma especificação aprovada iniciada com Protractor conf.js

Explicação:

  • Aqui ProtracO Tor executará o arquivo de configuração que contém o arquivo spec fornecido.
  • Podemos ver o Selenium servidor em execução em “http://localhost:4444/wd/hub”que fornecemos no arquivo conf.js.
  • Além disso, aqui você pode ver o resultado de quantos foram aprovados e falhas como na captura de tela acima.

Um resultado positivo foi verificado. Em seguida, analise um resultado negativo.

Passo 1) Abrir e alterar o resultado esperado no arquivo spec.js é "'Olá, altere GURU99', como abaixo.

Após mudança em spec.js :

describe('Enter GURU99 Name', function() {
 it('should add a Name as GURU99', function() {
 browser.get('https://angularjs.org');
 element(by.model('yourName')).sendKeys('GURU99');
  var guru= element(by.xpath('html/body/div[2]/div[1]/div[2]/div[2]/div/h1'));
expect(guru.getText()).toEqual('Hello change GURU99!');
  });
});

Passo 2) Salve o arquivo spec.js e repita os passos acima de “Execução do Code" seção

Agora, execute as etapas acima.

Resultado:

ProtracSaída do console Tor mostrando a especificação com falha marcada com a letra F.

Podemos ver o resultado como falha indicado com 'F' na captura de tela com o motivo como “Esperado 'Olá GURU99!' para ser igual a 'Olá, mudança GURU99!'. Além disso, mostra quantas falhas são encontradas durante a execução do código.

Podemos conseguir o mesmo com Selenium WebDriver?

Às vezes, elementos do AngularJS podem ser localizados com XPath ou seletores CSS. Selenium WebDriver. No entanto, esses elementos são gerados e reatribuídos dinamicamente, portanto ProtracO Tor era a opção mais segura para suítes de testes AngularJS.

Gere relatórios usando Jasmine Reporters

ProtracO Tor é compatível com os repórteres do Jasmine. Esta seção usa JUnitO XmlReporter permite gerar relatórios de execução de testes automaticamente em formato XML, seguindo os passos abaixo.

Instalação do Jasmine Reporter

Existem duas opções: local ou global.

  1. Abra o prompt de comando, execute o seguinte comando para instalar localmente
npm install --save-dev jasmine-reporters@^2.0.0

O comando acima instala o pacote jasmine-reporters localmente, dentro do diretório onde ele é executado.

  1. Abra o prompt de comando e execute o seguinte comando para instalação global
npm install –g jasmine-reporters@^2.0.0

Aqui, os repórteres são instalados localmente..

Passo 1) Execute o comando.

npm install --save-dev jasmine-reporters@^2.0.0

no prompt de comando como abaixo.

Instalando o jasmine-reporters localmente com npm dentro da pasta do projeto

Passo 2) Verifique as pastas de instalação no diretório. ”Node_modules” deve estar disponível se for instalado com sucesso como no instantâneo abaixo.

Listagem da pasta node_modules que confirma a instalação do jasmine-reporters.

Passo 3) Adicione o seguinte código colorido a um arquivo conf.js existente

exports.config = {
      seleniumAddress: 'http://localhost:4444/wd/hub',
      capabilities: {
          'browserName': 'firefox'
      },
      specs: ['spec.js'],
     framework: 'jasmine2' ,
      onPrepare: function() {
          var jasmineReporters = require('C:/Users/RE041943/Desktop/guru/node_modules/jasmine-reporters');
          jasmine.getEnv().addReporter(new jasmineReporters.JUnitXmlReporter(null, true, true)
          );
     }
   };

Explicação do código:

No código, estamos gerando o relatório “JUnitXmlReporter”E fornecendo o caminho onde armazenar o relatório.

Passo 4) Abra o prompt de comando e execute o comando prótractor conf.js.

Protracexecução do tor que gera o JUnit Relatório XML após a atualização do conf.js

Passo 5) Ao executar o código acima, junitresults.xml será gerado no caminho mencionado.

O arquivo de relatório junitresults.xml foi criado no caminho de saída configurado.

Passo 6) Abra o XML e verifique o resultado. A mensagem de falha é mostrada no arquivo de resultado como nosso Caso de teste O teste falhou. O caso de teste falhou porque o resultado esperado de "spec.js" não corresponde ao resultado real de uma página da Web.

Conteúdo do arquivo junitresults.xml mostrando a mensagem de falha para o caso de teste reprovado.

Passo 7) Utilize o arquivo junitresult.xml para evidências ou arquivos de resultados.

ProtracTor versus alternativas modernas de automação de testes

Desde ProtracComo o Tor não recebe mais atualizações, as equipes que planejam novos conjuntos de ferramentas precisam saber como ele se compara aos frameworks para os quais os projetos Angular estão migrando. A tabela abaixo compara o Protractor com as três alternativas que aparecem com mais frequência nas perguntas frequentes abaixo.

Quadro Status Suporte de linguas Mecanismos de navegador Localizadores específicos de ângulo
Protractor Obsoleto, fim de vida útil em agosto de 2023. JavaRoteiro, TypeScript Chrome, Firefox, IE via Selenium webdriver por modelo, por ligação, por repetidor
Cypress Mantido ativamente JavaRoteiro, TypeScript Chrome, Firefox, Borda Nenhuma; depende de CSS ou atributos de dados.
Dramaturgo Mantido ativamente JavaRoteiro, TypeScript, Python, Java, .LÍQUIDO Crómio, Firefox, WebKit Nenhuma; depende de seletores CSS, de texto ou de função.
WebdriverIO Mantido ativamente JavaRoteiro, TypeScript Crómio, Firefox, WebKit via WebDriver ou DevTools Nenhuma; depende de CSS ou atributos de dados.

Equipes com um Pro existentetracO pacote Tor geralmente se move mais rapidamente para WebdriverIO, visto que seu estilo de comando e Selenium-o gerenciamento de motoristas baseado em Pro se mantém próximo ao que o ProtracOs testadores do Tor já sabem. Equipes que estão começando do zero, ou que precisam de testes mais rápidos, geralmente escolhem essa opção. Cypress ou dramaturgo, em vez disso.

Perguntas Frequentes

Não. Pró.tracO Tor chegou ao fim de sua vida útil em agosto de 2023 e não recebe mais atualizações ou correções de segurança. O Angular removeu seu construtor de linha de comando após a versão 15, portanto, qualquer conjunto de ferramentas restante deve ser tratado como código legado.

O Angular adicionou construtores para CypressNightwatch e WebdriverIO a partir da versão 12. Dramaturgo O TestCafe também é popular, e a Amadeus publica um programa profissional.tracConversor de tor para playwright que automatiza a maior parte da reescrita.

Os métodos `by.model`, `by.binding`, `by.repeater`, `by.exactBinding` e `by.options` leem diretamente os dados das diretivas do AngularJS. Padrão. Selenium Localizadores como by.css, by.id e by.xpath permanecem disponíveis na mesma especificação.

A autorreparação assistida por IA compara um localizador com falha com o DOM ativo e o repara automaticamente, enquanto o aprendizado de máquina agrupa falhas repetidas para que os defeitos genuínos se separem do ruído de temporização durante a execução. teste de automação.

O Copilot e assistentes de agentes similares reescrevem rapidamente blocos de descrição, chamadas de `element()` e asserções de expectativa em localizadores do Playwright, mas cada especificação gerada ainda precisa de revisão humana de esperas, asserções e caso de teste cobertura.

Resuma esta postagem com: