"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > मैं अपने बीडीडी परीक्षणों को तेज करने के लिए समानांतर निष्पादन के साथ ककड़ी का उपयोग कैसे कर सकता हूं?

मैं अपने बीडीडी परीक्षणों को तेज करने के लिए समानांतर निष्पादन के साथ ककड़ी का उपयोग कैसे कर सकता हूं?

2024-11-01 को प्रकाशित
ब्राउज़ करें:758

How can I use Cucumber with parallel execution to speed up my BDD tests?

ककड़ी फ़ीचर फ़ाइलों को समानांतर में निष्पादित करना

परिचय

आधुनिक परीक्षण वातावरण में, समानांतर परीक्षण निष्पादन परीक्षण प्रक्रियाओं की दक्षता और गति में काफी सुधार कर सकता है। ककड़ी, एक लोकप्रिय व्यवहार-संचालित विकास (बीडीडी) ढांचा, फीचर फ़ाइलों के समानांतर निष्पादन की अनुमति देता है।

प्लगइन-आधारित दृष्टिकोण

ककड़ी में समानांतर निष्पादन प्राप्त करने के लिए, आप ककड़ी का उपयोग कर सकते हैं- जेवीएम-समानांतर-प्लगइन। यह प्लगइन गतिशील रूप से टेस्ट रनर क्लास बनाता है जिसे समानांतर में निष्पादित किया जा सकता है।

com.github.temyers ककड़ी-जेवीएम-समानांतर-प्लगइन 2.1.0संस्करण> निर्भरता>

  1. प्लगइन को pom.xml में कॉन्फ़िगर करें:

  com.github.temyers
  cucumber-jvm-parallel-plugin
  2.1.0
    जेनरेटेड रनर क्लासेस को इनवॉक करें
  1. जेनरेटेड रनर क्लासेस को समानांतर में इनवॉइस करने के लिए एक मेवेन श्योरफायर प्लगइन जोड़ें:
org.apache.maven.plugins maven-surefire-plugin 2.19संस्करण> 5 सही **/*IT.class शामिल> विन्यास> प्लगइन>

  com.github.temyers
  cucumber-jvm-parallel-plugin
  2.1.0
  
    
      generateRunners
      generate-test-sources
      
        generateRunners
      
      
        foo, bar
        ${project.build.directory}/generated-test-sources/cucumber
        src/test/resources/features/
        target/cucumber-parallel
        json
      
    
  

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

पब्लिक क्लास शेयर्डड्राइवर इवेंटफायरिंगवेबड्राइवर का विस्तार करता है { निजी स्थैतिक वेबड्राइवर REAL_DRIVER = शून्य; स्थैतिक { Runtime.getRuntime().addShutdownHook(CLOSE_THREAD); } सार्वजनिक शेयर्डड्राइवर() { सुपर(क्रिएटड्राइवर()); } सार्वजनिक स्थैतिक वेबड्राइवर CreateDriver() { वेबड्राइवर वेबड्राइवर; यदि (REAL_DRIVER == शून्य) वेबड्राइवर = नया फ़ायरफ़ॉक्सड्राइवर(); सेटवेबड्राइवर(वेबड्राइवर); वेबड्राइवर लौटाएँ; } }

  org.apache.maven.plugins
  maven-surefire-plugin
  2.19
   
    5
    true
    
      **/*IT.class
    
  

समानांतर निष्पादन और ग्रिड:

इष्टतम प्रदर्शन के लिए, पर्याप्त नोड्स (हब के साथ पंजीकृत ब्राउज़र) के साथ ग्रिड का उपयोग करें।
public class SharedDriver extends EventFiringWebDriver {
    private static WebDriver REAL_DRIVER = null;

    static {
        Runtime.getRuntime().addShutdownHook(CLOSE_THREAD);
    }

    public SharedDriver() {
        super(CreateDriver());
    }

    public static WebDriver CreateDriver() {
        WebDriver webDriver;
        if (REAL_DRIVER == null)
            webDriver = new FirefoxDriver();
        setWebDriver(webDriver);
        return webDriver;
    }
}
हब मेमोरी:

अधिक संख्या में नोड्स (50) वाले हब इंस्टॉलेशन के लिए पूल आकार बढ़ाएं (उदाहरण के लिए, -DPOOL_MAX=512)।

    नवीनतम ट्यूटोरियल अधिक>

    चीनी भाषा का अध्ययन करें

    अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

    Copyright© 2022 湘ICP备2022001581号-3