2015-04-03 17 views
6

Stiamo testando un'applicazione browser singola/accoppiata (chrome) a pagina singola con selenio web per Chrome. Alcuni suggeriscono di usare PhantomJS per la sua velocità, perché è senza testa.Quali sono i pro e i contro nell'uso nativo di PhantomJS invece di Chrome tramite webdriver per il test funzionale del QA?

Questa applicazione Web è anche un client thick di JavaScript. Voglio conoscere eventuali vantaggi o svantaggi nell'uso di PhantomJS per questo scopo.

+0

Si intende Chrome vs PhantomJS sia tramite webdriver che non Chrome (Webdriver) vs PhantomJS (nativo), giusto? –

+0

In realtà si tratta dell'approccio Chrome (Webdriver) vs. PhantomJS (nativo). – Nalin

risposta

2

Se sei unito a Chrome come dici tu, devi eseguire Chrome.

PhantomJS non esegue più lo stesso motore di rendering di Chrome da quando è stato rilasciato Blink, quindi i test di esecuzione di PhantomJS non forniranno una rappresentazione accurata di come il tuo sito web si esibirà su Chrome (potrebbe funzionare allo stesso modo, ma potrebbe esserci qualche le differenze).

Inoltre, PhantomJS può essere eseguito su Webkit, ma è una versione molto vecchia di Webkit.

Bottom line: Blink =/= Webkit. Vai con Chrome.

+2

Vale la pena ricordare che PhantomJS e Chrome, contemporaneamente, potrebbero essere utilizzati in modo intercambiabile per i test. Questo non è il caso più. – aholt

3

La mia opinione è che PhantomJS non è davvero maturo per un progetto su larga scala.

Ho usato ChromeDriver, IE molto estesamente per un'applicazione di buste paga abbastanza grande. Ho esplorato PhantomJS per alcuni test ed esplorandone i benefici.

Pro e contro di utilizzare PhantomJS invece di browser reali

Pro:

  • sacco di persone usano PhantomJS perché è senza testa e per evitare un ulteriore sovraccarico con vero browser.

  • è possibile eseguire i test sui CI utilizzando direttamente questo ed evitare di griglia Hub relazione (o altro meccanismo simile) che a volte è poco disordinato per gestire

Contro:

  • C'è un numero significativo di problemi in sospeso in PhantomJS

  • Mentre i test di e2e e UI sono principalmente utilizzati per replicare il comportamento dell'utente, PhantomJs non lo fa esattamente

  • Ci sono alcuni casi in cui PhantomJS fallisce ma gli altri driver funzionano perfettamente.

  • Protractor il team scoraggia direttamente l'utente a utilizzare PhantomJS se si prevede di farlo.

0

PhantomJS ha molti problemi in sospeso e la mancanza di sviluppo attivo sul progetto rende la situazione ancora più difficile. Molti siti Web non vengono caricati su PhantomJS.

Puoi provare Chrome Headless.https://developers.google.com/web/updates/2017/04/headless-chrome

È possibile ottenere la natura senza testa di PhantonJS e mainstream-ness di Chrome. Il meglio di entrambi i mondi.