Pergunta

Não tenho certeza se entendi bem a diferença. A API do WebDriver também controla diretamente o navegador de escolha. Quando você deve usar o Selênio Remote Control (Selenium RC)?

No momento, minha situação atual é que estou testando um aplicativo da Web escrevendo uma suíte com a API do Selenium Webdriver e deixando -a executar no meu computador. Os testes estão demorando mais e mais para serem concluídos, por isso tenho procurado maneiras de executar os testes em um servidor Linux.

Se eu uso o controle remoto de selênio, isso significa que tenho que reescrever tudo o que escrevi com a API do WebDriver?

Estou me confundindo com a grade de selênio, Hudson, Selenium RC. Encontrei um plug -in de grade de selênio para o Hudson, mas não tenho certeza se isso inclui o Selênio RC.

Estou seguindo a rota correta? Eu imagino a seguinte arquitetura:

  • Hudson rodando em poucos servidores dedicados do Ubuntu.
  • Hudson executando com o plug -in XVNC e Selenium Grid. (Preciso instalar o Firefox separadamente?)
  • Grade de selênio executando suítes de teste de selênio rc.

Eu acho que isso é muito mais eficiente em relação ao teste no meu computador de trabalho de trabalho atual com a API do WebDriver.

Foi útil?

Solução

Até onde eu entendo, a implementação do Webdriver começou pouco mais tarde que o Selenium RC. Do meu ponto de vista, o WebDriver é uma solução mais flexível, que corrigiu alguns problemas irritantes do seleniumrc.

O WebDriver fornece interface padrão para testar a GUI da web. Existem várias implementações dessa interface (HTTP, específicas do navegador e baseadas no selênio). Como você já tem alguns testes do WebDriver, você deve estar familiarizado com documentos básicos como isto

Os testes estão ficando mais longos para serem concluídos, por isso tenho procurado maneiras de executar os testes em um servidor Linux.

Você tentou encontrar gargalos reais? Não tenho certeza de que a eliminação da camada do webdriver ajudará. Eu acho que a maior parte do tempo é gasta em comandos de selênio enviando e solicitações HTTP para o sistema sub-test.

Se eu uso o Sleneium Remote Control, isso significa que tenho que reescrever tudo o que escrevi com a API do WebDriver?

Geralmente, sim. Se você não implementou alguma camada adicional entre o código dos testes e o WebDriver.

Quanto à grade de selênio: você pode iniciar várias instâncias RC de selênio em vários nós diferentes [virtuais] e depois registrá -los na grade de selênio. Seus testes se conectam à grade de selênio e redireciona todos os comandos para instâncias do Seleniumrc, coordenando -os de acordo com os navegadores necessários.

Para detalhes do plugin Hudson, você pode encontrar mais informações aqui

Outras dicas

O WebDriver agora é o selênio 2. As bases de código de selênio e webdriver estão sendo mescladas. O WebDriver supera uma série de problemas que o Selenium tem e o Selenium supera uma série de problemas que o WebDriver.

Se você escreveu seus testes em selênio, não precisa reescrevê -los para trabalhar com o selênio 2. Nós, os principais desenvolvedores, o escrevemos para criar uma instância do navegador e injetar isso no selênio e seus testes de selênio 1 irão Trabalhe no Selenium 2. Coloquei um exemplo abaixo para você.

// You may use any WebDriver implementation. Firefox is used here as an example
WebDriver driver = new FirefoxDriver();

// A "base url", used by selenium to resolve relative URLs
String baseUrl = "http://www.google.com";

// Create the Selenium implementation
Selenium selenium = new WebDriverBackedSelenium(driver, baseUrl);

// Perform actions with selenium
selenium.open("http://www.google.com");
selenium.type("name=q", "cheese");
selenium.click("name=btnG");

Infelizmente, o Selênio 2 não foi colocado no Selenium 2, mas não deve demorar muito até que tenha sido adicionado, pois esperamos alcançar a beta nos próximos meses.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top