what is hybrid framework selenium
Este tutorial informativo explica o que é uma estrutura híbrida, usos e componentes da estrutura híbrida do Selenium e como implementá-la:
O que é um Hybrid Framework?
O Hybrid Driven Framework é uma combinação de ambos os frameworks Data-Driven e Keyword-Driven.
Aqui, as palavras-chave, bem como os dados de teste, são externalizados. As palavras-chave são mantidas em um arquivo de classe Java separado e os dados de teste podem ser mantidos em um arquivo de propriedades / arquivo excel / podem usar o provedor de dados de uma estrutura TestNG.
=> Verifique aqui para ver os tutoriais de treinamento de A-Z de selênio aqui.
O que você aprenderá:
melhor maneira de abrir arquivo xml
Introdução ao Hybrid Framework
Aqui está o tutorial em vídeo:
A estrutura Hybrid Driven é principalmenteusado por testadores manuais que não têmmuito conhecimento de linguagens de programação. Essas pessoas podem apenas dar uma olhada nas palavras-chave, dados de teste, repositório de objetos e começar a criar o caso de teste imediatamente, sem ter que codificar nada no framework.
Componentes da estrutura Hybrid Driven
Os componentes do Hybrid Framework são semelhantes aos componentes do Keyword Driven Frameworkem que todos os dados de teste, bem como as palavras-chave, são externalizados, fazendo com que o script apareça de uma forma mais generalizada
- Biblioteca de funções
- Folha de Excel para armazenar palavras-chave
- Modelo de caso de teste de design
- Repositório de objetos para elementos / localizadores
- Scripts de teste ou script de driver
# 1) Biblioteca de funções
Métodos definidos pelo usuário são criados para cada ação do usuário. Em outras palavras, palavras-chave são criadas no arquivo de biblioteca.
Por exemplo: Tomemos uma instância para automatizar os casos de teste abaixo.
Caso de teste não | Descrição | Etapas de teste | resultado esperado | ||
---|---|---|---|---|---|
AssertElement | xpath | // div (contém (@ id, 'usericon')) | Exibido | ||
1 | Verifique se o logotipo da Amazon está presente | 1. Insira o URL - https://www.amazon.com | O logotipo da Amazon deve ser exibido na página inicial | ||
dois | Verificar login válido | 1. Insira o URL - https://www.amazon.com 2. Clique no link 'SignIn' 3. Insira um e-mail válido 4. Clique em continuar 5. Digite a senha válida 6. Clique em SignInButton | O ícone do usuário deve estar presente na página inicial | ||
3 | Login inválido | 1. Insira o URL - https://www.amazon.com 2. Clique no link 'SignIn' 3. Insira o e-mail inválido 4. Clique em continuar | Esta mensagem de erro deve conter 'não é possível encontrar uma conta' |
Primeiro, os casos de teste e suas etapas de teste são analisados e suas ações são anotadas.
Diga, em TC 01: Verifique se o logotipo da Amazon está presente - as ações do usuário serão: Insira o URL
Dentro TC 02: Verificar SignIn válido - as ações do usuário são Inserir URL, Clicar, Digitar
Dentro TC03: Verificar login inválido - as ações do usuário são Inserir URL, clicar, digitar
Agora, o arquivo de biblioteca será criado com palavras-chave definidas para cada ação conforme abaixo:
o que é um bom downloader de mp3 para android
Keywords.java
package Keywords.Defined; import java.io.File; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; public class Keywords { String path = System.getProperty('user.dir'); WebDriver driver; // driver object is declared //method for entering URL – Keyword is ‘enter_URL’ public void enter_URL(WebDriver driver,String TestData) throws IOException { driver.get(TestData); } //method for typing action – Keyword is ‘type’ public void typeIn(WebDriver driver, String locatorValue, String locatorType, String testdata) { driver.findElement(this.getObject(ObjectName,locatorType)).sendKeys(testdata); } //method for click action – Keyword is ‘click’ public void click(WebDriver driver, String locatorValue, String locatorType) { driver.findElement(this.getObject(ObjectName,locatorType)).click(); } }
# 2) Planilha do Excel para armazenar palavras-chave
Palavras-chave que são criadas no arquivo de biblioteca são armazenadas em uma planilha do Excel com sua descrição para que qualquer um que use esta estrutura possa entender.
# 3) Modelo de caso de teste de design
Um modelo de caso de teste é criado para a estrutura. Não há um modelo específico a seguir. De acordo com o Hybrid Framework, os dados de teste e as palavras-chave devem ser externalizados. Portanto, um modelo é criado de acordo. Por exemplo:
Para o caso de teste 2 - Verifique o login válido
Etapas de teste | Tipo de localizador | Valor localizador | Dados de teste | AssertionType | Valor esperado |
---|---|---|---|---|---|
enter_URL | https://www.amazon.com | ||||
Clique | xpath | // div (contém (@ id, 'SignIn')) | |||
digitar | xpath | // div (contém (@ id, 'email')) | test@gmail.com | ||
Clique | xpath | // div (contém (@ id, 'continue')) | |||
digitar | eu ia | senha | Senha @ 123 | ||
Clique | eu ia | Entrar |
Da mesma forma, as etapas do teste são preenchidas para cada caso de teste em uma folha separada.
# 4) Repositório de objetos para elementos
Um Repositório separado é mantido para todos os elementos da página da web. Cada WebElement é referido com um nome seguido por seu valor em um Repositório de Objetos (neste caso, é um arquivo de propriedades). O modelo de caso de teste conterá o nome do objeto e seu valor é obtido do repositório como abaixo:
Aqui, LoginLink é o nome do objeto e seu valor é lido em OR.properties como ‘// div (contains (@id,’ SignIn ’))
Assim, o código para ler o valor de ObjectRepository será incluído no script Keywords.java
Por exemplo Arquivo de biblioteca: considere a ação 'clique' em Keywords.java
public class Keywords { public void click(WebDriver driver, String ObjectName, String locatorType) throws IOException{ driver.findElement(this.getObject(ObjectName, locatorType)).click(); } By getObject(String ObjectName, String locatorType) throws IOException{ //Object Repository is opened File file = new File(path+'\Externals\Object Repository.properties'); FileInputStream fileInput = new FileInputStream(file); //Properties file is read Properties prop = new Properties(); //find by xpath if(locatorType.equalsIgnoreCase('XPATH')){ return By.xpath(prop.getProperty(ObjectName)); // ObjectName is read and its value is returned } //find by class else if(locatorType.equalsIgnoreCase('ID')){ return By.Id(prop.getProperty(ObjectName)); // ObjectName is read and its value is returned } //find by name else if(locatorType.equalsIgnoreCase('NAME')){ return By.name(prop.getProperty(ObjectName)); // ObjectName is read and its value is returned } return null; } }
Repositório de objetos para dados de teste em casos de teste
Deixe-me mostrar um exemplo simples de como todos os dados de teste envolvidos no script são externalizados, tendo o framework mais generalizado.
- Externalizando dados de teste do modelo de caso de teste:
Da mesma forma, os dados de teste também são lidos do arquivo de propriedades.
- Repositório de objetos para dados de teste em script geral
Outros dados gerais, como nome do navegador, localização do driver executável, nome do arquivo do caso de teste, etc, também podem ser externalizados em um repositório separado.
No exemplo acima, o parâmetro do navegador é externalizado em um arquivo de propriedades - Basic.properties.
- Dados de teste de aprovação do TestNG Suite:
TestData também pode ser passado de um arquivo de suíte de TestNG para o método.
Usamos uma tag chamada no arquivo TestNG.xml logo acima da classe onde ela é usada.
Sintaxe:
Depois que o conjunto de testes é especificado com o nome do parâmetro e seu valor, as anotações são usadas no script para especificar qual método usa o valor. Isso é especificado usando a anotação @Parameters.
Sintaxe: @Parameters ({“value_to_be_passed”})
como fazer uma série de objetos
Vários parâmetros também podem ser passados para um método como:
Sintaxe:
@Parameters({“Chrome”}, {“ TestCase.xls”}, {“ chromedriver.exe”}) public void init(String Browser, String SheetName, String DriverLocation){ ….. …… ………. }
Observe que isso não se refere a vários valores do mesmo parâmetro, apenas leva vários valores de parâmetros diferentes.
# 5) Script do driver
Ele contém a lógica principal para ler todos os casos de teste da planilha do excel do modelo de caso de teste e executa a ação correspondente lendo o arquivo de biblioteca. O script é projetado com base no modelo de caso de teste criado.
Conclusão
Assim, um Hybrid Framework pode ser criado e usado para automatizar qualquer aplicativo. Isso, por sua vez, reduzirá as horas de trabalho gastas no script do código de automação, uma vez que uma estrutura, uma vez criada, pode ser usada para automatizar vários aplicativos.
Da mesma forma, frameworks podem ser criados de acordo com as necessidades do projeto e usados para fins de automação.
Esperamos que você tenha gostado da série de tutoriais informativos sobre o Selenium!
=> Verifique TODOS os tutoriais do Selenium aqui.
Leitura recomendada
- Data Driven Framework no Selenium WebDriver usando Apache POI
- Criação do Selenium Framework e acesso aos dados de teste do Excel - Selenium Tutorial # 21
- Introdução ao JUnit Framework e seu uso no Selenium Script - Selenium Tutorial # 11
- Como usar o TestNG Framework para criar scripts do Selenium - Tutorial do TestNG Selenium nº 12
- Teste baseado em dados ou parametrizado com Spock Framework
- Tutorial Cucumber Selenium: Cucumber Java Selenium WebDriver Integration
- Introdução ao Selenium WebDriver - Selenium Tutorial # 8
- Como ler ou gravar dados da planilha do Excel no Selenium Web Driver