Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using NUnit.Framework;
- using Selenium;
- namespace Lune_Automation_Unite
- {
- //=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=//
- // ---------- Selenium_MasterTCC -------------
- // This is the main class of the execution, it handles how the execution is made and calls
- // the Selenium_Server Class
- //=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=//
- public class Selenium_MasterTCC
- {
- //private ISelenium selenium_base;
- private Selenium_Server selenium;
- private StringBuilder verificationErrors;
- private Lune_Basic_Module master;
- public int starting_row = 0;
- public int scene = 1;
- // Set Test Variables
- public string name_of_test;
- public void SetupTest()
- {
- //=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=//
- // ---------- CONFIGURAÇÂO INICIAL DA APLICAÇÃO -------------
- //=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=//
- selenium = new Selenium_Server(); //Inicialização da classe
- master = new Lune_Basic_Module();
- selenium.Config(); //Configuração necessária
- master.load_xml("C:/Selenium/configuracao.xml"); //Carrega o arquivo xml
- KillProcess("Excel");
- master.set_database(master.get_xml_tag("configuracao", "db"), master.get_xml_tag("configuracao", "caminhoDB"), "Master"); // Configuração de database
- selenium.set_tries(int.Parse(master.get_xml_tag("configuracao", "falha"))); //Configuração de tentativas até falhar o teste
- selenium.set_wait(1); //Configuração de tempo a cada nova tentativa
- selenium.set_path(master.get_xml_tag("configuracao", "evidencia")); //Configuração de local e nome das evidências
- selenium.set_deepness(int.Parse(master.get_xml_tag("configuracao", "deepness"))); //Configuração de profundidade das evidências
- selenium.set_timeout(int.Parse(master.get_xml_tag("configuracao", "timeout"))); //Configuração de tempo limite para timeout
- selenium.set_highlight(bool.Parse(master.get_xml_tag("configuracao", "highlight"))); //Configuração de highlight ativo ou inativo
- string[] header = { "Cenário", "Número dos Passos", "Nome dos Passos", "Resultado Esperado", "Resultado Obtido", "Status" };
- master.writeTestCasesHeader("CasosDeTeste", header);
- starting_row = 2; //Configuração de linha inicial
- master.change_tables("Master");
- //=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=//
- // Aqui fica o looping principal do framework, ele manuseia os cenários de teste
- // de acordo com o banco de dados, caso o "Run" esteja como "Yes",
- // O cenário será aberto e executado.
- //=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=//
- while (master.has_tests(starting_row))
- {
- if (master.get_data(starting_row, 2) == "Yes")
- {
- scene = 1; // Configura o caso de teste no estado inicial
- selenium.set_on_error(false); // Reseta a condição de erro para false
- selenium.set_scenario(scene); // Exporta o scene(que é 1) para a classe Selenium_Server
- name_of_test = master.get_data(starting_row, 1); //adquire o nome do cenário de teste
- selenium.set_path("C://Selenium//Evidencia_Teste//", name_of_test); //Configuração de local e nome das evidências
- master.change_tables(name_of_test); //Abre o a aba/banco de dados do cenário
- selenium.start_timer(); //Inicia o contador
- selenium_tests(); //Executa o cenário de teste
- //master.writeTestCases("CasosDeTeste", name_of_test, selenium.GetList(), starting_row, selenium.GetOnErrorStep());
- selenium.end_timer(); //Finaliza o contador
- starting_row += 1; //Vai para a próxima linha
- }
- master.change_tables("Master"); // Volta para a aba principal de controle dos cenários
- }
- TeardownTest(); // Finalização dos testes
- }
- public void TeardownTest()
- {
- master.close_database();
- try
- {
- selenium.Stop();
- }
- catch (Exception)
- {
- // Ignore errors if unable to close the browser
- }
- //Assert.AreEqual("", verificationErrors.ToString());
- }
- // Aqui é feito a chamda para o método com o mesmo nome do
- // cenário de teste.
- public void selenium_tests()
- {
- this.GetType().GetMethod(name_of_test).Invoke(this, null);
- }
- // Você pode adicionar métodos/funções auxiliares para a
- // automatização
- public void fazer_login(string login, string password)
- {
- //selenium....
- }
- // Aqui é o método principal do cenário, ele deve ter o mesmo nome que
- // estará no banco de dados
- public void Teste_Topicos()
- {
- int row = 2; //Linha inicial de onde iniciará os testes
- while (master.has_tests(row)){ // Verificação se há algo escrito naquela linha
- selenium.set_scenario(scene);
- if (master.get_data(row, 2) == "No") // Caso o valor seja "No"
- {
- row += 1; //Pula uma linha
- continue; //Vai para a próxima iteração
- }
- //=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=//
- // ---------- Coloque aqui as variáveis utilizadas!!! -------------
- // Para chamar um dado da tabela basta usar o comando, master.get_data(row, col)
- // row é a linha, col a coluna, você também pode pegar dados de outras tabelas
- // Utilizando a função master.change_tables(name_of_test), mas lembre-se
- // de voltar para a tabela atual.
- //=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=//
- string text = "";
- string output = "";
- string caseName = master.get_data(row, 1);
- string expected_result = master.get_data(row, 5);
- string testResult = "";
- //=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=//
- // ---------- INSERIR O CÓDIGO AQUI!!! -------------
- // O código segue exatamente o mesmo padrão do Selenium RC, aonde
- // selenium é o objeto principal, e nele contém as funções para serem
- // utilizadas, dentro de cada função já tem um print, não é necessário
- // colocar comandos de print.
- //=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=//
- // Exemplo de um código
- //selenium.Open(caseName);
- //selenium.Type("//input[@type='password']", Senha);
- master.CheckValue(row, testResult);
- master.save_database();
- // Example #2: Write one string to a text file.
- // WriteAllText creates a file, writes the specified string to the file,
- // and then closes the file. You do NOT need to call Flush() or Close().
- }
- }
- public void KillProcess(string element)
- {
- System.Diagnostics.Process[] Processos = System.Diagnostics.Process.GetProcessesByName(element);
- foreach (System.Diagnostics.Process x in Processos)
- {
- x.Kill();
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement