2014-11-26 10 views
10

Sto cercando di trovare informazioni specifiche su come impostare Selenium con associazioni PHP in un tipo di installazione "client-server". Non sono nemmeno sicuro se ciò che voglio sia possibile, ma cercherò di fare del mio meglio per descrivere l'obiettivo di ciò che sto cercando di ottenere.Come impostare Selenium (WebDriver e Server) con associazioni PHP

Faccio QA su un progetto di sviluppo Web, in cui stiamo lavorando con membri del team distribuiti. Abbiamo bisogno di test front end automatizzati e abbiamo deciso che (a causa di una serie di fattori) Selenium è il miglior candidato per il lavoro. Il nostro team è specializzato in PHP, quindi ha senso utilizzare Selenium con associazioni PHP.

La mia più grande sfida è:

1) Come faccio a installare questi attacchi PHP?

2) Come posso creare ed eseguire uno script Selenium in PHP? Questo potrebbe sembrare ovvio, ma ho bisogno di sapere se ho bisogno di creare una sorta di "progetto" in PHP, o se questo richiede passaggi diversi. I manuali sono molto chiari e dettagliati quando riguardano i bind JAVA predefiniti, ma mancano irrimediabilmente dei binding PHP.

3) Come faccio a fare tutto questo, volendo richiamare un test da un client, ma averlo eseguito da un 'assistente/VM'? (Tenendo presente che se ci fosse la possibilità, vorrei anche essere in grado di creare test sul server, in grado di eseguire/invocare attività di test sul desktop del client.)

4) Come impostare un server che soddisfa tutti i requisiti per eseguire Selenium Server con associazioni PHP?

L'obiettivo è di essere in grado di creare inizialmente una VM (probabilmente una casella di Vagrant) che conterrà il Selenium Server (e se necessario altri componenti) con gli script di test effettivi, che possono essere condivisi tra i membri del team. Questa VM dovrebbe essere in grado sia di eseguire test senza testa, ma idealmente dovrebbe anche essere in grado di guidare test sull'host (se possibile).

Tecnicamente si dovrebbe sostenere lo scenario in cui QA trova un problema nel prodotto, e dovrebbe essere in grado di specificare solo lo script necessario per riprodurlo. Lo sviluppatore che ha il compito di risolvere il problema dovrebbe solo eseguire lo script sulla sua macchina per riprodurre effettivamente l'errore trovato.

Alla fine vorremmo migrare la VM a un server vero e proprio, da qui il motivo che vogliamo configurarlo in questo modo fin dall'inizio. Ciò manterrà le cose più semplici una volta che saremo pronti per passare a un server fisico.

Ti ho cercato in tutto l'Internet per la documentazione dettagliata, ma in quasi tutta la documentazione molte ipotesi sono fatte sugli ambienti già installato e configurato. Ho davvero bisogno di una spiegazione passo passo su come impostare le cose.

PHPUnit sembra un po 'di una scelta strana da abbinare con selenio, dal momento che entrambi coprono completamente diverse aree di test. Ho visto (ancora una volta incompleta) istruzioni sul sito PHPUnit, ma sembra molto goffo e il nostro team di sviluppo non è molto entusiasta di questa configurazione. Abbiamo persone che suggeriscono Jenkins, ma personalmente non vedo come Jenkins eliminerebbe la normale configurazione del Selenio, che comunque è necessario seguire dall'inizio.

ho già Selenio Server in esecuzione come un servizio in una VM, ho solo bisogno di sapere che cosa ho bisogno, e come ho bisogno di configurarlo, come configurarlo. come far comunicare le cose, ecc.

Qualsiasi aiuto/idea sarebbe molto apprezzato.

+0

Hai provato il php-webdriver da Facebook? https://github.com/facebook/php-webdriver Funziona bene per me. – ymas

+0

Ho dato un'occhiata a quello, ma dal momento che non fornisce istruzioni complete, non mi è chiaro come usarlo. Immagino che questo sia il mio problema principale. Io non sono uno sviluppatore PHP, quindi ho davvero bisogno di istruzioni per i principianti. Dal momento che lo stai usando, puoi darmi solo una rapida panoramica di come l'hai installato? –

+0

è possibile installare il pacchetto php-webdriver di Facebook tramite il compositore (https://getcomposer.org/). La mia copia del driver web del selenio gira sul mio computer locale, tuttavia, non è un granché farlo funzionare in remoto (usavo Sauce Labs (https://saucelabs.com/) per questo). – ymas

risposta

0

Per ottenere questo correre a livello locale, seguire le istruzioni qui:

https://github.com/facebook/php-webdriver#getting-started

Ecco un PHP campione WebDriver script che è possibile utilizzare. Si aprirà firefox, vi porterà alla pagina di Google e inviare una query di ricerca:

// you'll need to modify this path so it points to the composer autoloader 
    require_once __DIR__ . '/vendor/autoload.php'; 

    /** 
    * since I'm running the selenium jar locally, this is all I need. 
    * I just run it in the background and my php scripts connect to it and 
    * the tests 
    */ 
    $host = 'http://localhost:4444/wd/hub'; 

    $driver = RemoteWebDriver::create($host, DesiredCapabilities::firefox()); 

    $driver->get('http://google.com'); 
    $element = $driver->findElement(WebDriverBy::name('q')); 
    $element->sendKeys('Cheese'); 
    $element->submit(); 

E 'questo il tipo di dettagli che stai cercando?

+0

Ciao, Ho bisogno di un momento per controllare questo, ma mostra alcune cose che stavo cercando. Tornerò su questo di sicuro però. –

+0

Bene, ho eseguito alcuni test approfonditi e ho cercato di far funzionare il webdriver con chromedriver e xvfb per un'installazione senza headset. L'esempio sembra funzionare, ma in qualche modo ottengo (come appare) l'output della pagina Web nella mia console durante l'esecuzione del test. Devo dire che è una sfida immensa ottenere tutti i componenti impostati correttamente in modo che tutto funzioni insieme, e trovo molto triste che non ci sia un set completo di istruzioni su come impostare le cose dall'inizio alla fine. Grazie ancora per la tua risposta ymas. Non era "la soluzione" ma mi faceva andare avanti. –