Utilizar painéis de piso ResinDek em sua unidade de self-storage em vez de concreto oferece diversos benefícios: SoapUI com as Selenium para teste de serviço da Web

⚡ Resumo Inteligente

SoapUI com as Selenium Permite que uma única suíte verifique um serviço web e o navegador que o consome. Groovy é a ponte, porque SoapUI é executado Groovy nativamente e Groovy alcança todos Java biblioteca Selenium navios.

  • 🔘 Duas ferramentas, duas camadas: SoapUI exercita o endpoint SOAP ou REST, enquanto Selenium O WebDriver controla o navegador que o invoca.
  • ☑️ Groovy é a cola: SoapUI suporta Groovy extensivamente, e Groovy carrega tudo Java conjunto de biblioteca, então Selenium O código é executado sem alterações.
  • Classe de corredor: SoapUIO TestCaseRunner abre um arquivo de projeto, seleciona um conjunto de testes e um caso de teste e os executa a partir do Java.
  • 🧪 Dados dinâmicos: A função setProjectProperties() passa valores como cidade e código postal em tempo de execução, em vez de obtê-los de um arquivo de propriedades estático.
  • 🛠️ Pré-requisitos: O Groovy SDK, um JDK, Selenium e SoapUI Todos os componentes devem ser instalados antes da primeira execução.
  • 📊 Trilha de evidências: Todas as ações são registradas no arquivo soapui.log, localizado na pasta bin do diretório de instalação.

Utilizar painéis de piso ResinDek em sua unidade de self-storage em vez de concreto oferece diversos benefícios: SoapUI com as Selenium para testes de serviços web através de Groovy

SoapUI é o software de código aberto mais popular. teste funcional Ferramenta para Teste de API. Ele fornece completo cobertura de teste e suporta todos os protocolos e tecnologias padrão.

O que é SABÃO?

SABÃO É um protocolo simples baseado em XML. Ele permite que aplicativos troquem informações via HTTP. Utiliza os Serviços Web. DescriptA linguagem WSDL (Onion Language) para comunicação e outras aplicações podem interagir com serviços web por meio dessa interface WSDL.

Serviços Web SOAP vs REST em SoapUI

SoapUI Começou como um cliente SOAP, e seu nome ainda reflete isso, mas também testa endpoints REST. Saber qual estilo você está usando determina como o teste será construído.

Aspecto SABÃO DESCANSO
Contato Um arquivo WSDL descreve cada operação, portanto SoapUI Pode gerar solicitações automaticamente. Geralmente uma definição OpenAPI ou Swagger, ou nenhuma convenção formal.tracde jeito nenhum.
Formato de mensagem Somente envelope XML. Geralmente JSON, embora XML e outros formatos sejam permitidos.
Transporte Na maioria das vezes, HTTP, mas o SOAP é independente do meio de transporte. HTTP, com o método e URL carregando a intenção.
Asserções em SoapUI XPath e XQuery fazem a correspondência com o envelope da resposta. As asserções JSONPath e de script correspondem à carga útil.
Uso típico Bancos, telecomunicações e outras empresastracintegrações empresariais complexas. Serviços públicos e voltados para dispositivos móveis, onde as cargas úteis permanecem leves.

O passo a passo abaixo utiliza um serviço meteorológico SOAP, mas a mesma classe de execução executa um caso de teste REST sem qualquer alteração. Java código.

O que é SOAPUI?

SOAPUI é uma ferramenta de teste de serviços web multiplataforma e de código aberto. A edição SOAPUI-Pro possui funcionalidades adicionais para empresas que lidam com serviços web críticos. Os serviços web desempenham um papel fundamental nas aplicações da internet.

⚠️ Observação sobre o nome do produto: SmartBear descontinuado SoapUI Pro como um produto independente e o fundiu, juntamente com o LoadUI Pro e o ServiceV Pro, em ReadyAPIA edição gratuita mantém o SoapUI nome e ainda está sendo lançado ativamente. Os passos abaixo funcionam em ambos, e existentes. SoapUI projetos abertos em ReadyAPI.

O que é a Selenium?

Selenium Não se trata de um único programa, mas sim de um conjunto de ferramentas para controlar um navegador da mesma forma que uma pessoa o faria. Dois membros são importantes aqui:

  • Selenium — uma ferramenta de teste que automatiza navegadores em diversas plataformas.
  • Selenium webdriver — Ele faz chamadas diretas aos navegadores, usando o suporte nativo de cada navegador para automação.

Por que combinar SoapUI e Selenium em um teste

Verificar o serviço e verificar a tela geralmente são duas tarefas separadas, executadas por dois softwares distintos. Por isso, um defeito na integração entre elas tende a persistir em ambos os processos. Executá-las em conjunto elimina essa lacuna.

  • Comprove a viagem de ida e volta. Uma reserva enviada pelo navegador deve aparecer na resposta do serviço. Somente um teste combinado pode garantir ambas as partes.
  • Configure o estado rapidamente. Criar um cliente através da API leva um segundo; criar de um a doze campos de formulário leva um minuto e falha com mais frequência.
  • Localize a falha. Quando a interface do usuário exibe o total incorreto, a verificação da API na mesma execução informa imediatamente se o problema está no serviço ou na página.
  • Reutilize um conjunto de dados. Os pares de código postal e cidade no exemplo abaixo alimentam a chamada de serviço e poderiam igualmente alimentar as asserções do navegador.
  • Eliminar a cobertura duplicada. Regras de validação já comprovadas na camada de serviço não precisam de um teste lento em um navegador para cada uma delas.

A contrapartida é um teste mais pesado: duas ferramentas, dois conjuntos de dependências e uma execução mais longa. Mantenha os testes combinados para os poucos percursos que realmente cruzam a fronteira e deixe o restante como testes puros. API ou verificações puramente do navegador.

Selenium com as SoapUI

A maneira mais simples e fácil de integrar Selenium com as SoapUI é usar Groovy, o qual SoapUI Oferece amplo suporte.

Groovy é uma linguagem de script orientada a objetos que inclui todos os Java bibliotecas, então cada Java Palavras-chave e funções podem ser usadas em um Groovy script diretamente. Ele é executado na JVM (Java Máquina Virtual), que é o que permite uma Groovy entre SoapUI e uma Java Selenium teste para compartilhar as mesmas aulas.

Pré-requisitos para usar Selenium com as SoapUI

Instale o seguinte antes de escrever qualquer código:

⚠️ Nota de versão: Groovy A versão 5.0 é a versão estável atual e requer o JDK 11 ou posterior, portanto, instale o JDK primeiro e deixe o sistema concluir a instalação. Groovy versão siga-a. Selenium é adicionado a um Java projeto como um Maven ou Gradle dependência em vez de como uma pasta baixada, e o SoapUI O arquivo JAR precisa estar no mesmo classpath que o seu teste — é nesse ponto que a maioria das primeiras tentativas falha.

Ligue para o SoapUI Executor de casos de teste em Selenium

O código abaixo chama um SoapUI Caso de teste. Ele define as propriedades de uma cidade e seu respectivo CEP e, ao ser executado, recupera o valor de cada cidade e CEP, relatando a contagem de falhas para cada par que não corresponde. Este código é executado em Selenium.

Observação: O parâmetro `usePropertyFileFlag=true` é usado aqui em vez de um arquivo de propriedades estático para armazenar o CEP e a cidade. O CEP e a cidade são passados ​​dinamicamente em tempo de execução pelo método `setProjectProperties()`.

Instruções para executar o código:

  1. Comece SoapUI.
  2. Inicie um novo caso de teste.
  3. Adicionar um novo Groovy degrau.
  4. Copie e cole o código de exemplo na etapa.
  5. Clique em Play.
  6. Você pode ver Firefox Iniciando e navegando para GoogleDepois disso, você poderá ver o SoapUI entradas de registro.
  7. O código é executado usando JUnit.

Code Exemplo

@when("<I use the weather service to get the weather information")						
    public void i_use_the_weather_service_to_get_the_information() {
        Set<Entry<String, string>> set = zipAndCities.entrySet();
        while (iterator,hasNext)) {
            Entry<String, String> entry = iterator.next();
            String zipCode = entry.getkey();
            String city = entry.getValue();
            String[] prop = {"usePropertyFileFlag=true","zipCode=" +zipCode, "city=" +city};									
            
            try{
                SoapUITestCaseRunner soapUITestCaseRunner = new	SoapUITestCaseRunner();
                soapUITestCaseRunner.setProjectFile("src/test/resources/WeatherSoapTest-soapui-project.xml");					
                soapUITestCaseRunner.setProjectProperties(prop);
                soapUITestCaseRunner.setTestSuite("TestSuite1");
                soapUITestCaseRunner.setTestCase("TestCase1");
                soapUITestCaseRunner.run();
                
            } catch (Exception e) {
                System.err.println("checking" + zipCode + " failed!");
                failureCount++;
                zipCodes.append(zipCode + " [" + city +"] ");
                e.printStackTrace();
            }finally{					
                totalCount++;
            }
}
}
}

⚠️ Code notas: Este trecho de código é reproduzido exatamente como publicado e é um fragmento, não uma classe compilável. Antes de compilá-lo, você precisa declarar o iterador obtido de conjunto.iterador(), correto enquanto (iterador,temPróximo)) para enquanto (iterador.hasNext()) e entrada.obterchave() para entrada.getKey(), capitalize a anotação como @QuandoRemova o caractere extra no início do texto da etapa e use Tanga em vez de corda na declaração do conjunto. O texto original é mantido para que o exemplo publicado permaneça intacto.

A visualização do console permite que você veja rapidamente todas as informações. caso de testes executado. Você encontrará uma lista dos CEPs e cidades obtidos e passados ​​para SoapUI Caso de teste 1.

Consultar SoapUI Arquivo de log

Os arquivos de log registram todas as ações que ocorrem em um sistema operacional ou aplicativo de software. Para visualizar o SoapUI Para encontrar o arquivo de log, acesse o diretório principal, onde você encontrará um arquivo chamado soapui.log.

SoapUI Listagem do diretório de instalação com o arquivo soapui.log visível

In SoapUIO arquivo de log está localizado na pasta bin dentro do diretório de instalação, por exemplo, C:\Program Files\SmartBear\soapUI-Pro-4.0.1\bin. Em uma instalação atual, a pasta da versão difere, e um ReadyAPI A instalação grava em sua própria pasta bin.

pasta bin do SoapUI diretório de instalação onde o arquivo de log está armazenado

Ao abrir este arquivo de log clicando nele, ele será semelhante à imagem abaixo.

Conteúdo do arquivo soapui.log mostrando as entradas de execução de teste registradas.

Onde SoapUI e Selenium A integração geralmente se rompe.

Quase todas as falhas neste ponto são problemas de fiação, e não problemas de teste. Esses são os itens que devem ser verificados primeiro.

Sintoma Causa provável O que verificar
NoClassDefFoundError ou ClassNotFoundException em SoapUITestCaseRunner O SoapUI O arquivo JAR não está no classpath de teste. Adicionar o SoapUI dependência para o arquivo de compilação ou aponte o classpath para o jar no SoapUI pasta lib. Um arquivo JAR ausente aparece como um arquivo comum. Selenium exceção no console.
Não foi possível encontrar o arquivo do projeto. setProjectFile() resolve um caminho relativo em relação ao diretório de trabalho, que difere entre uma IDE e uma ferramenta de compilação. Execute o comando a partir da raiz do projeto ou especifique um caminho absoluto.
Conjunto de testes ou caso de teste não encontrado Os nomes em setTestSuite() e setTestCase() devem corresponder exatamente ao projeto. Copie os nomes diretamente do SoapUI árvore do projeto; elas diferenciam maiúsculas de minúsculas.
O imóvel nunca chega ao pedido. setProjectProperties() foi executado após run(), ou a solicitação não faz referência à propriedade. Defina todas as propriedades antes de executar o método `run()`, e use a sintaxe de marcador de posição de propriedade dentro da requisição.
O navegador não inicia. O driver e o navegador instalado possuem versões principais diferentes. Deixei Selenium O gerenciador resolve o problema do driver ou o associa à versão do navegador.
Uma funcionalidade funciona no IDE, mas não no executor de tarefas. Essa etapa depende de um recurso exclusivo da versão Pro, como uma fonte de dados. Confirme a licença ou reconstrua a etapa com equivalentes de código aberto.

Assim que o processo de execução for encerrado corretamente e o arquivo soapui.log exibir as entradas esperadas, a integração estará funcionando e poderá ser incorporada a um processo mais amplo. teste de automação diante.

Perguntas Frequentes

A edição de código aberto funciona Groovy etapas e expõe o executor de casos de teste, portanto, a própria integração não precisa de licença. Pro ou ReadyAPI Funcionalidades como fontes de dados e o assistente orientado a dados são as partes que falharão sem ele.

Sim, e é a imagem espelhada deste guia. Um Groovy A etapa pode instanciar um WebDriver diretamente, desde que o Selenium os frascos são colocados no SoapUI pasta lib para que o script possa resolvê-los.

SoapUI executado Groovy nativamente em uma etapa de script, sem ciclo de compilação, e Groovy alcança todos Java A classe já está no classpath. Simples Java precisa de uma etapa de construção, e é por isso que Groovy Vitórias para código de integração curto.

Enrole-o como um JUnit or TestNG teste e deixe o Maven ou Gradle Invoque-o exatamente como no exemplo. No agente, o navegador deve ser executado em modo headless, e o SoapUI O arquivo do projeto deve ser enviado junto com o código de teste.

Os assistentes são úteis para expandir um pequeno conjunto de pares de cidade e CEP para uma cobertura mais ampla e para identificar campos de resposta que nenhuma asserção abrange. Os valores gerados ainda precisam de uma verificação real, pois um CEP plausível não é necessariamente um CEP válido.

Sim, dentro de certos limites. O copiloto lida com isso. Groovy sintaxe e comum Java atende bem, mas tem pouco conhecimento de SoapUI Objetos de script como testRunner, context e log, portanto, essas sugestões precisam ser analisadas cuidadosamente.

Armazene-as como variáveis ​​de ambiente ou em um gerenciador de segredos e leia-as nas propriedades do projeto em tempo de execução, o mesmo mecanismo que setProjectProperties() usa aqui. Um arquivo de projeto commitado com uma senha em texto simples é uma vulnerabilidade prestes a ser explorada.

Mantenha as verificações de nível de protocolo — status, esquema, XPath no envelope — dentro do envelope. SoapUI, onde as ferramentas são construídas para eles. Afirme no Selenium Testar apenas o que o próprio navegador deve exibir, de modo que uma falha aponte para uma única camada.

Resuma esta postagem com: