2012-10-11 50 views
9

Yerel makinem üzerinde çalışan selenium-server-standalone.jar ve uzaktaki makinemde derlemek istediğim testler var, ancak testlerin makineye nasıl bağlandığımı bilmiyorum Bu tarayıcıyı çalıştıracak. Herhangi bir yardım takdir edildi.Selenium Webdriver uzaktan kurulum

Güncelleme: Ben

java -jar selenium-server-standalone-2.25.0.jar -role webDriver -hub http://**My ip*:4444 
ran (ı dan testler edeceği) benim uzak makinede

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

ran benim yerel makinede (I tarayıcısını çalıştıran olacak bir) Açık Ben Linux ve benim t kullanıyorum

@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)); 

:

benim kod aşağıdakileri içerir est'ler, Java

+0

Selenyum testleriniz hangi dilde yazılmıştır? –

+0

Testlerim java – confusified

+1

'de yazılmıştır ImplicitWait'i değiştirmenizi tavsiye etmem. Varsayılan olarak 0'dan ayrılmak size daha tipik davranışlar verecektir. Çoğu kişi size daha uzun bekleme süreleri vermek için WebDriverWait gibi bir FluentWait uygular. '20' saniyeye değiştirmekten kaçının. – djangofan

cevap

7

da yazılmıştır. Problem değil. Bu sorunu nasıl çözdüğümü paylaşmak isterim. Sanal makinede çalışan jdk yüklü ve selenum sunuculu VM (sanal makine) var. VM, IP'ye ( 192.168.4.52 ) bağlanmıştır (RDC uzaktan masaüstü bağlantısı). Üzerinde yüklü tarayıcı var (firefox 15). Tarayıcı aç. Tüm güncellemeleri ve diğer açılır pencereleri devre dışı bırak.

Yerel makinemde selenyum testleri paketi var. Ve onları sanal makinemde çalıştırıyorum. Selenyum kurulumu takip ediyor: kodun

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(); 
    } 

..... 

bu parça uzak makinedeki tüm selenyum testler yapar. driver = new RemoteWebDriver(new URL("http://192.168.4.52:4444/wd/hub"), capability); dizesindeki , sadece makinenizin IP'sinden söz etmelisiniz ve bu işe yaramalıdır.

Bu yardımcı olur umarım.

+0

Tarayıcıda ya da testlerin yapıldığı makinede çalıştırılan seleniuim sunucusu nedir? Testlerim bir makinedeki komut satırından geliyor ve benim tarayıcım benim yerel makinemdeki – confusified

+1

benim yaklaşıma göre (mevcut projede) sanal makinede çalışan selenyum sunucusu (uzak makine) ve tarayıcı VM'de (uzaktan) Makine) Test seti yerel makinemde ancak depoya vereceğim, havuzdan alıp uzaktan çalıştırmak için Hudson-jenkins'a görev ekleyeceğim. Saygılarımızla –

+0

Bunu, Chrome tarayıcı için docker kabını kullanarak yapabilirsiniz. Http://underthehood.meltwater.com/blog/2016/11/09/using-docker-with-selenium-server-to-run-your-browser-tests/ ve https://github.com/SeleniumHQ adresine bakın./docker-selenyum – vikramvi

İlgili konular