Pytanie Alternatywa dla CasperJS do użytku z Cucumber.js


Po wielu badaniach i próbach i błędach wybrałem następujący stos dla testów BDD Frontend:

  • Cucumber.js
  • CasperJS (przez SpookyJS)
  • PhantomJS

Chciałbym uniknąć kolejki uruchamiania CasperJS i używać PhantomJS bezpośrednio (przez phantom-proxy) z callbackami w każdym kroku:

@World = (cb) ->
    @phantom = require "phantom-proxy"
    cb()

@Before (cb) ->
    self = this
    @phantom.create {}, (proxy) ->
        self.proxy = proxy
        self.page = proxy.page
        cb()

@After (cb) ->
    @proxy.end ->
        cb()

@When /^I go to url "([^"]*)"$/, (url, cb) ->
    @page.open url, ->
        cb()

czyniąc całość bardziej logiczną i podobną do BDD.

Dodatkowo SpookyJS nie zapewnia pełnego API dla CasperJS.

Jednak interfejs API PhantomJS jest dość niski. Czy istnieje inne narzędzie zapewniające funkcjonalność podobną do CasperJS (kliknięcie, oczekiwanie na elementy itp.) Dla Node.js bez użycia kolejek uruchamiania?


12
2018-03-08 15:16


pochodzenie


Ewww ... uruchamianie PhantomJs z poziomu Node jest brzydkie. Mówię o tym z wielu wad. Rozwiązanie: PhantomJs + Casper może być uruchamiany jako samodzielny i dużo łatwiejszy do skonfigurowania i dostosowania jako taki. Nie mogę jednak zalecić samodzielnego uruchamiania wersji na Linuksa - kolejna awaria z mojej strony. ALE program phantom.exe uruchomiony z poziomu wiersza poleceń systemu Windows to dar niebios. Po prostu działa. Serwer można zbudować w mniej niż 20 liniach. CasperJS + twoje własne testy są łatwe do zbudowania i dostosowania również z przykładów podanych na przykładowej stronie CasperJs. Wysoce polecany. - FredTheWebGuy
Z tego co wiem, działało dobrze dla aplikacji z jedną stroną, ale nie dla stron internetowych, gdzie trzeba nawigować od strony do strony. W końcu poszliśmy z testowaniem wewnątrz django z sałatą i ghostdriverem. działa jak urok i jest bardzo szybki. - Ernests Karlsons
Powinieneś użyć github.com/AllegiantAir/cucumber-defaults - Dr.Knowitall


Odpowiedzi:


Mocha-PhantomJS może być właśnie tym, czego szukasz.

Alternatywnie, WebdriverJS ma wsparcie dla testów ogórka.

Jeśli chcesz być na niskim poziomie, możesz spróbować połączyć się z selen-webdriver bezpośrednio. Tutaj jest próbny na github.

Powodzenia!


5
2017-07-25 22:55





Polecam Mokka który ma dodatek do składni ogórka (mocha-cackes) i / lub Chai i jego wtyczki chai-jquery i Chai-timery.

Również Karma pochodzi z obsługą składni ogórka poprzez wtyczkę karma-ogórek.

Zarówno Karma, jak i Mocha pozwalają na przeprowadzanie testów na prawdziwych urządzeniach za pomocą wyrzutni dla np. Saucelabs lub przeglądarki.

Mam nadzieję, że to pomoże.


1
2017-07-24 14:41