Watir vs selenium

Olá Conner Tolley,

O script de Sahi não é baseado em Java. É baseado em Javascript e também possui drivers em Java Ruby e PHP. A gravação e a reprodução são realmente úteis para obter os bits iniciais. Especialmente com Sahi, como gravadores. A afirmação "desaprovada" não é mais verdadeira. Bons gravadores são como geradores de código. Eles podem economizar muito tempo e esforço. Os testes do Sahi são incrivelmente estáveis. Os acessadores (estratégias de localização) são inteligentes, rápidos e independentes dos navegadores.

O Sahi não usa seletores XPaths ou css, que são a principal razão para alta manutenção e fragilidade dos testes. Sahi também não precisa de esperas - sim, você ouviu - sem esperas. Mesmo para aplicativos AJAX complexos, com cargas de quadros e iframes. Além disso, ele pode trabalhar com aplicativos que possuem IDs dinâmicos etc.

Thoughtworks, os criadores originais do Selenium, usam Sahi com Twist. Aqui está um artigo de um dos desenvolvedores do Twist:

"Apenas as esperas implícitas e a simpatia do localizador (a estratégia que passa pelo nome etc) são tão poderosas que estou mantendo Sahi por enquanto.

Pode ser que, se eu tiver tempo, eu posso postar o código do nosso histórico do git para mostrar como o webdriver e o código Sahi se parecem com a mesma operação. O código Sahi é muito menor ".

A publicação completa está disponível aqui: http://pavanks.blogspot.com/2010/12/web-ui-driver-comparison.html

A Redhat usa Sahi para os testes, onde eles também falam sobre selênio: http://sahi.co.in/forums/viewtopic.php?id=2582

Outro artigo explicando como testar aplicativos baseados no zkoss: http://books.zkoss.org/wiki/Small_Talks/2010/January/Making_ZK_Functional_Tests_With_Sahi

Atenciosamente, Narayan

Não tenho experiência com selênio ou sahi. Eu tenho experiência com Watir e achei um prazer usá-lo. Se você se sente à vontade para aprender novas linguagens de codificação (Ruby) e tem experiência na desconstrução de uma página da Web usando inspetores html, então é fácil pegar o Watir.

Edit: Eu ganhei mais experiência no mundo da automação de teste de software e as várias estruturas disponíveis. Houve também algumas mudanças emocionantes. Gostaria de responder sua pergunta com mais profundidade. Deixe-me começar recapitulando os prós e contras das APIs mencionadas na sua pergunta.

Sahi: Eu ainda tenho que usar o Sahi, então não posso discuti-lo com muita profundidade. Eu sei que ele é baseado em Java e é o principal para testes de gravação e reprodução. No mundo da automação, os testes de registro / reprodução são desaprovados devido à sua fragilidade, que muitas vezes leva a grandes quantidades de manutenção de testes e à necessidade de registrar novamente os testes quando o aplicativo é alterado.

Selenium: o Selenium é a API de automação de código aberto mais popular do mercado. O Selenium 1, também conhecido como Selenium RC, também possui recursos de gravação / reprodução com o uso de uma extensão do Firefox. O Selenium 1 usa javascript para "dirigir" o navegador. O selênio 1 ainda é mantido, embora quase estritamente no modo de manutenção.

Selenium WebDriver: A segunda e mais nova versão do Selenium é conhecida como Selenium WebDriver. Esta versão do Selenium utiliza a estrutura do WebDriver para dirigir o navegador, em vez da pura implementação em javascript do Selenium 1. Usando o WebDriver, o Selenium 2 é capaz de automatizar muitos tipos diferentes de navegadores usando várias linguagens de programação diferentes. O WebDriver está definido para se tornar um padrão W3C e é sem dúvida o futuro da automação da web de código aberto.

Watir: Watir é uma API usada para controlar o navegador Internet Explorer. Ao contrário do Selenium 1, o Watir usa objetos COM para dirigir o navegador. Você cria seus scripts usando a linguagem de programação Ruby.

Watir Webdriver: Como o Selenium WebDriver, o Watir WebDriver é construído sobre a estrutura do WebDriver. Ainda é limitado a usar o Ruby apenas para scripts, mas pode dirigir a maioria dos navegadores populares, incluindo o Firefox, ou seja, o Chrome e o Opera.

Em resumo, o futuro da automação da web de código aberto está na estrutura do WebDriver e são duas APIs, Watir Webdriver e Selenium Webdriver. Qualquer uma dessas opções seria excelente para começar a aprender a automação. Existem excelentes recursos de aprendizado online para qualquer API. Se você prefere programar em Java, C # ou Python, o Selenium Webdriver seria uma excelente opção. Se você é um Rubyist, eu escolheria Watir Webdriver ou Watir (se você quiser dirigir, ou seja, apenas). Mais uma vez, não posso falar sobre o uso do Sahi, pois ainda não o experimentei, mas espero que alguém mais experiente nessa área possa conversar sobre isso. Espero que isto ajude.

Eu encontrei a resposta sozinho ... dê uma olhada:

voto negativo aceito

Watir Pros:

  • É uma biblioteca Ruby
  • Suporte para vários navegadores (e SO)
  • Tem uma API rica
  • Possui uma classe 'Simples' (para usuários não técnicos)
  • Watij & Watin (Java e .NET)

Contras:

  • Precisa aprender Ruby (a menos que você escolha Watij ou Watin)
  • Todo navegador requer uma biblioteca diferente

Profissionais de selênio:

  • Suporte para vários navegadores, SO e idioma
  • Instale no servidor ou como complemento do FF
  • Tem seu próprio IDE
  • Testes de gravação e reprodução

Contras:

  • Tem que aprender um vendorscript => Selenese (A menos que você escreva testes em outro idioma que ele suporte. Depois, basta usar a referência da API, que é direta).
  • Sahi Pros:

    • Suporte para vários navegadores
    • Tem seu próprio IDE
    • Testes de gravação e reprodução

    Contras:

    • Interface confusa
    • Comunidade menos desenvolvida / menor

    Há muitas outras coisas pequenas que eu não incluí. Decidi usar o Selenium porque gosto da liberdade que você obtém com todas as linguagens que ele suporta e porque o desenvolvimento geralmente é mais rápido por causa do gravador IDE. edit: Eu fiz algumas das mesmas tarefas no Watir e elas parecem mais estáveis ​​e diretas no Watir (escritas em Ruby) do que no que escrevi no Selenium (em Java). O Selenium tem muitos problemas de tempo, mas o Watir aguarda automaticamente o término do carregamento da página e pode detectar quando o carregamento é concluído. Enquanto que com o Selenium, você precisa usar o comando pause (ou Thread.sleep () se você o usar em Java).

    Fonte: StakOverflow