2014-11-27 18 views
19

Sto provando a scegliere uno strumento per i test di automazione Javascript.Differenza tra webdriverjs e webdriverio

Fino ad ora ho utilizzato Selenium WebDriver in Java con TestNG per creare i miei test, ma mi è stato chiesto di cercare la soluzione JavaScript per scrivere test.

Naturalmente la prima cosa che avevo in mente era spostare su WebDriverJs - dovrebbe essere simile ai miei test Java.

Ma ho trovato anche un altro framework: WebdriverIO. Non sono riuscito a trovare nulla che potesse essere fatto con WebdriverIO che non è possibile con WebDriverJs.

Please help me per capire la differenza in modo da poter scegliere la struttura giusta per me.

+2

Perfavore utilizza correttamente Java e JavaScript, non sono acronimi :) –

risposta

23

"WebdriverJS" è un altro nome per selenium-webdriver, l'implementazione ufficiale di Node.JS dello JSONWire (WebDriver Wire) Protocol dal team Selenium.

"WebdriverIO" è un'implementazione indipendente del JSON Wire Protocol di Christian Bromann (SO profile), che lavora presso Sauce Labs, un fornitore di test cross-browser cloud-base. WebdriverIO avvolge le sue richieste di livello inferiore in comandi utili, con una sintassi concisa:

client 
    .url('http://google.com') 
    .setValue('#q','webdriver') 
    .click('#btnG') 

Lo stesso test con selenio-WebDriver è più complicato:

driver.get('http://www.google.com'); 
driver.findElement(webdriver.By.id('q')).sendKeys('webdriver'); 
driver.findElement(webdriver.By.id('btnG')).click(); 

Ci sono almeno seven Webdriver clients written in Node.JS.

3

WebdriverJS è in realtà il pacchetto WebdriverIO insieme a un test runner in un formato di pacchetto del nodo. Non c'è davvero nulla che non possa essere fatto con WebdriverJS che WebdriverIO farà. È possibile utilizzare WebdriverJS insieme a Jasmine o Mocha.

Ovviamente, i wrapper in WebdriverJS e WebdriverIO sono etichettati in modo diverso ma non cambiano il modo in cui implementano il protocollo di Webdriver WIRE.

Se si stanno testando le applicazioni basate su AngularJS, c'è un'implementazione ancora più snella del protocollo WebDriver WIRE in Protractor (che viene nuovamente distribuito come pacchetto di nodi).

+2

Non proprio. Il goniometro utilizza effettivamente WebDriverJs, che è ciò che implementa il protocollo wire, mentre WebdriverIO implementa il protocollo wire in modo indipendente. – titusfortner