2012-10-11 20 views
9

Mam selenium-server-standalone.jar działający na moim komputerze lokalnym, a testy, które chcę uruchomić, zostały skompilowane na moim zdalnym komputerze, ale nie mam pojęcia, jak sprawić, aby testy były połączone z maszyną która uruchomi przeglądarkę. Każda pomoc doceniona.Zdalna konfiguracja Selenium Webdriver

Aktualizacja: Na moim komputerze lokalnym (jednego będę uruchamiając przeglądarkę ON) wpadłem

java -jar selenium-server-standalone-2.25.0.jar -mode hub 

na moim komputerze zdalnym (że będę uruchomić testy z) Pobiegłem

java -jar selenium-server-standalone-2.25.0.jar -role webDriver -hub http://**My ip*:4444 

mój kod zawiera następujące elementy:

@Before 
    public void setUp() throws Exception { 
      DesiredCapabilities capability = DesiredCapabilities.firefox(); 
      driver = new RemoteWebDriver(new URL("http://**My ip**:4444/wd/hub"), 
      capability); 
      baseUrl = "http://phy05:8080"; 
      driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS); 
      driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS); 
      driver.manage().window().setSize(new Dimension(1920, 1080)); 

używam Linuksa i moje t ests są napisane w Javie

+0

W jakim języku są napisane testy selenu? –

+0

Moje testy są napisane w java – confusified

+1

Nie polecam zmiany implicitWait. Pozostawienie wartości domyślnej 0 da ci bardziej typowe zachowanie. Większość ludzi implementuje FluentWait, takie jak WebDriverWait, aby zapewnić dłuższy czas oczekiwania na zmienną. Unikaj zmiany go na "20" sekund. – djangofan

Odpowiedz

7

oraz. To nie jest problem. Chcę się podzielić, jak rozwiązałem ten problem. Mam maszynę wirtualną z zainstalowanym jdk i serwerem selenowym działającym na maszynie wirtualnej. VM ma adres IP: 192.168.4.52 Połączyłem się z nim przez (połączenie pulpitu zdalnego RDC). Zainstalowałem potrzebną przeglądarkę (firefox 15). Otwórz przeglądarkę. Wyłączono wszystkie aktualizacje i inne wyskakujące okienka.

Mam pakiet testów selenowych na mojej lokalnej maszynie. I uruchamiam je na mojej maszynie wirtualnej. setup Selen jest następujący:

import com.google.common.base.Function; 
import com.thoughtworks.selenium.SeleneseTestBase; 
import junit.framework.Assert; 
import org.junit.AfterClass; 
import org.junit.Before; 
import org.junit.BeforeClass; 
import org.openqa.selenium.*; 
import org.openqa.selenium.remote.DesiredCapabilities; 
import org.openqa.selenium.remote.RemoteWebDriver; 
import org.openqa.selenium.support.ui.FluentWait; 
import org.openqa.selenium.support.ui.Wait; 
import org.springframework.beans.factory.annotation.Value; 
import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer; 
import org.springframework.core.io.support.PropertiesLoaderUtils; 

import java.io.IOException; 
import java.net.MalformedURLException; 
import java.net.URL; 
import java.util.NoSuchElementException; 
import java.util.Properties; 
import java.util.concurrent.TimeUnit; 


public class BaseSeleniumTest extends SeleneseTestBase { 
    static WebDriver driver; 


    @Value("login.base.url") 
    private String loginBaseUrl; 

    @BeforeClass 
    public static void firefoxSetUp() throws MalformedURLException { 

//  DesiredCapabilities capability = DesiredCapabilities.firefox(); 
     DesiredCapabilities capability = DesiredCapabilities.internetExplorer(); 

     driver = new RemoteWebDriver(new URL("http://192.168.4.52:4444/wd/hub"), capability); 


//  driver = new FirefoxDriver(); //for local check 

     driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS); 
     driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS); 
     driver.manage().window().setSize(new Dimension(1920, 1080)); 
    } 
    @Before 
    public void openFiretox() throws IOException { 



     driver.get(propertyKeysLoader("login.base.url")); 


    } 


    @AfterClass 
    public static void closeFirefox(){ 
     driver.quit(); 
    } 

..... 

ten fragment kodu będzie uruchomić wszystkie testy selenu na zdalnej maszynie. w ciągu znaków driver = new RemoteWebDriver(new URL("http://192.168.4.52:4444/wd/hub"), capability); po prostu powinieneś wymienić adres IP swojej maszyny i to powinno działać.

Mam nadzieję, że to pomoże.

+0

Czy serwer seleniuim działa na komputerze z przeglądarką lub z testami? Moje testy uruchamiane są z wiersza poleceń na komputerze, na którym uruchamiam, a moja przeglądarka jest na mojej lokalnej maszynie – confusified

+1

w moim podejściu (na bieżącym projekcie) selenowym uruchomieniu serwera na VM (zdalnym komputerze) i przeglądarka jest na VM (zdalna maszyna). Zestaw testowy znajduje się na moim lokalnym komputerze, ale zamierzam go przenieść do repozytorium, dodać zadanie do Hudson-jenkinsa, aby pobrać je z repozytorium i uruchomić zdalnie. Pozdrowienia –

+0

Możesz to zrobić, używając kontenera dokera w przeglądarce Chrome. Zobacz http://underthehood.meltwater.com/blog/2016/11/09/using-docker-with-selenium-server-to-run-your-browser-tests/ i https://github.com/SeleniumHQ/doker-selen – vikramvi

Powiązane problemy