2012-10-11 23 views
9

मेरे पास मेरी स्थानीय मशीन पर सेलेनियम-सर्वर-स्टैंडअलोन.जर चल रहा है, और परीक्षण जो मैं अपने रिमोट मशीन पर संकलित करना चाहता हूं, लेकिन मुझे नहीं पता कि मैं मशीन से परीक्षण कैसे कनेक्ट करता हूं वह ब्राउज़र चलाएगा। किसी भी मदद की सराहना की।सेलेनियम वेबड्राइवर रिमोट सेटअप

अद्यतन: अपने स्थानीय मशीन (एक मैं पर ब्राउज़र चल रहा हो जाएगा) मैं अपने दूरस्थ मशीन पर

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

भाग गया (है कि मैं से परीक्षण चलाता है) मैं

java -jar selenium-server-standalone-2.25.0.jar -role webDriver -hub http://**My ip*:4444 
भाग गया पर

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

मैं लिनक्स और मेरी टी का उपयोग कर रहा:

मेरी कोड निम्न शामिल ests जावा

+0

आपके सेलेनियम परीक्षण किस भाषा में लिखे गए हैं? –

+0

मेरे परीक्षण जावा – confusified

+1

में लिखे गए हैं I implicitWait को बदलने की अनुशंसा नहीं करेंगे। इसे 0 के डिफ़ॉल्ट पर छोड़कर आपको अधिक सामान्य व्यवहार देने जा रहा है। अधिकतर लोग आपको फ्लोरेंटवेट जैसे वेबड्राइवरवेट को लागू करते हैं ताकि आपको अधिक परिवर्तनीय प्रतीक्षा समय मिल सके। इसे '20' सेकंड में बदलने से बचें। – djangofan

उत्तर

7

अच्छी तरह से लिखा गया है। वह कोई समस्या नहीं है। मैं साझा करना चाहता हूं कि मैंने इस मुद्दे को कैसे हल किया। मुझे वीएम (वर्चुअल मशीन) मिला है जिसमें जेडीके स्थापित है और सेलेनियम सर्वर वीएम पर चल रहा है। वीएम में आईपी है: 1 9 2.168.4.52 मैं इसके माध्यम से (आरडीसी-रिमोट डेस्कटॉप कनेक्शन) से जुड़ा हुआ हूं। उस पर स्थापित आवश्यक ब्राउज़र (फ़ायरफ़ॉक्स 15)। खुला ब्राउज़र। सभी अपडेट और अन्य पॉप अप अक्षम।

मुझे अपनी स्थानीय मशीन पर सेलेनियम परीक्षण पैक मिला है। और मैं उन्हें अपने वीएम पर चलाता हूं। सेलेनियम सेटअप पीछा कर रहा है:

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

..... 

इस कोड का टुकड़ा रिमोट मशीन पर सभी सेलेनियम परीक्षण चलेंगे। स्ट्रिंग driver = new RemoteWebDriver(new URL("http://192.168.4.52:4444/wd/hub"), capability); में आपको बस अपनी मशीन के आईपी का जिक्र करना चाहिए और यह काम करना चाहिए।

उम्मीद है कि यह आपकी मदद करता है।

+0

तो क्या seleniuim-server ब्राउज़र पर या परीक्षण के साथ मशीन पर चल रहा है? मेरे परीक्षण एक मशीन I ssh पर कमांड लाइन से चलाए जाते हैं, और मेरा ब्राउज़र मेरे स्थानीय मशीन – confusified

+1

पर मेरे दृष्टिकोण (वर्तमान प्रोजेक्ट पर) सेलेनियम सर्वर वीएम (रिमोट मशीन) पर चल रहा है और ब्राउज़र वीएम (रिमोट) पर है मशीन) भी। टेस्ट सेट मेरी स्थानीय मशीन पर है, लेकिन मैं इसे रिपोजिटरी में प्रतिबद्ध करने वाला हूं, उन्हें हडसन-जेनकींस को रिपोजिटरी से लेने और दूरस्थ रूप से चलाने के लिए कार्य जोड़ें। –

+0

सम्मान आप Chrome ब्राउज़र के लिए डॉकर कंटेनर का उपयोग कर ऐसा कर सकते हैं। Http://underthehood.meltwater.com/blog/2016/11/09/using-docker-with-selenium-server-to-run-your-browser-tests/ और https://github.com/SeleniumHQ का संदर्भ लें/डोकर-सेलेनियम – vikramvi

संबंधित मुद्दे