public class JavaFile1 extends frameworkClass {

    @BeforeClass(alwaysRun=true)
    public void setup(){
    setMailServer1();
    //setMailServer2();
}

    @Test(priority = 0, groups = { "webdriver", "UI","helloTest"})
    public void test1(){}
    @Test(priority = 1, groups = { "webdriver", "UI","helloTest"})
    public void test2(){}
    @Test(priority = 2, groups = { "webdriver", "UI","helloTest"})
    public void test3(){}
    @Test(priority = 3, groups = { "webdriver", "UI","helloTest"})
    public void test4(){}
    @Test(priority = 4, groups = { "webdriver", "UI","helloTest"})
    public void test5(){}

}

public class JavaFile2 extends frameworkClass{
    @Test(priority = 0, groups = { "webdriver", "UI","helloTest1"})
    public void test1(){}
    @Test(priority = 1, groups = { "webdriver", "UI","helloTest1"})
    public void test2(){}
    @Test(priority = 2, groups = { "webdriver", "UI","helloTest1"})
    public void test3(){}
    @Test(priority = 3, groups = { "webdriver", "UI","helloTest1"})
    public void test4(){}
    @Test(priority = 4, groups = { "webdriver", "UI","helloTest1"})
    public void test5(){}

}

`मैं निम्नलिखित क्रम में 2 जावा फाइलों से टेस्टएनजी परीक्षण चलाने की कोशिश कर रहा हूं।

कॉन्फ़िगरेशन1 जावा फ़ाइल से सभी परीक्षण चलाएँ1 जावा फ़ाइल2 से सभी परीक्षण चलाएँ कॉन्फ़िगरेशन2 जावा फ़ाइल1 से परीक्षणों का एक ही सेट चलाएँ

कोड को डुप्लिकेट किए बिना, उपरोक्त क्रम में चलाने के लिए परीक्षणों को कैसे ट्विक करें? नोट: कक्षा 2 कक्षा 1 का विस्तार नहीं कर सकता क्योंकि यह पहले से ही किसी अन्य फ्रेमवर्क वर्ग का विस्तार कर रहा है

-2
Arthi Vigneshwari 2 अगस्त 2019, 17:41

2 जवाब

सबसे बढ़िया उत्तर

यदि आप अपनी परीक्षा कक्षा को @Factory से जोड़ते हैं तो आप ऐसा कर सकते हैं।

यहां बताया गया है कि आप इसे कैसे करते हैं [मैं टेस्टएनजी 7.0.0-beta7 का उपयोग कर रहा हूं जो इस उत्तर को पोस्ट करने के समय नवीनतम जारी किया गया संस्करण है]

  1. एक इंटरफ़ेस को परिभाषित करें जो setup और teardown को सारगर्भित करता है
  2. (1) में परिभाषित इंटरफ़ेस के एक या अधिक कार्यान्वयन बनाएँ
  3. एक या एक से अधिक टेस्ट क्लास इंस्टेंस बनाने के लिए एक @Factory कार्यान्वयन का उपयोग करें जिसमें उनमें से प्रत्येक को (2) में परिभाषित प्रत्येक कार्यान्वयन के साथ इंजेक्ट किया जाता है।

यहाँ एक पूर्ण नमूना है।

इंटरफ़ेस जो सेटअप और टियरडाउन क्षमताओं को परिभाषित करता है

public interface ITestCaseConfiguration {
  void setup();

  void tearDown();
}

इंटरफ़ेस का कार्यान्वयन

public class VariantOne implements ITestCaseConfiguration {

  @Override
  public void setup() {
    System.err.println("setup() from VariantOne");
  }

  @Override
  public void tearDown() {
    System.err.println("tearDown() from VariantOne");
  }
}
public class VariantOne implements ITestCaseConfiguration {

  @Override
  public void setup() {
    System.err.println("setup() from VariantOne");
  }

  @Override
  public void tearDown() {
    System.err.println("tearDown() from VariantOne");
  }
}

यहां बताया गया है कि फैक्ट्री कैसी दिखेगी

import org.testng.annotations.Factory;

public class MyTestClassFactory {

  @Factory
  public static Object[] createTestClassInstances() {
    return new Object[] {
      new SampleTestClass(new VariantOne()), new SampleTestClass(new VariantTwo())
    };
  }
}
0
Krishnan Mahadevan 4 अगस्त 2019, 20:46

आप फ्रेमवर्क क्लास में अपनी @BeforClass विधि रख सकते हैं और इसे कॉन्फ़िगरेशन 1 और 2 के लिए चलाने के लिए इसे पैरामीटरकृत कर सकते हैं। मैं अनुमान लगा रहा हूं कि आपके setMailServer1() और setMailServer2() विधि डेटा के विभिन्न सेट को छोड़कर एक ही काम करती है।

कोड की तरह दिखेगा:

public class Frameworkclass
{
@Parameters({"data1","data2"})
@BeforeClass
public void setup(String data1, String data2)
{
    setMailServer();
    System.out.println(data1+"   "+data2);
}
}

टेस्टक्लास1 :

public class JavaFile1 extends FrameworkClass 
{

    @Test(priority = 0, groups = { "webdriver", "UI","helloTest"})
    public void test1(){}
    @Test(priority = 1, groups = { "webdriver", "UI","helloTest"})
    public void test2(){}
    @Test(priority = 2, groups = { "webdriver", "UI","helloTest"})
    public void test3(){}
    @Test(priority = 3, groups = { "webdriver", "UI","helloTest"})
    public void test4(){}
    @Test(priority = 4, groups = { "webdriver", "UI","helloTest"})
    public void test5(){}
}

टेस्टक्लास2 :

public class JavaFile2 extends FrameworkClass
{
    @Test(priority = 0, groups = { "webdriver", "UI","helloTest1"})
    public void test1(){}
    @Test(priority = 1, groups = { "webdriver", "UI","helloTest1"})
    public void test2(){}
    @Test(priority = 2, groups = { "webdriver", "UI","helloTest1"})
    public void test3(){}
    @Test(priority = 3, groups = { "webdriver", "UI","helloTest1"})
    public void test4(){}
    @Test(priority = 4, groups = { "webdriver", "UI","helloTest1"})
    public void test5(){}

}

सुइट फ़ाइल:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="testsuit" parallel="false" verbose="2">
    <test name="test1" parallel="false" preserve-order="true">
        <classes>
            <class name="TestProject.test.JavaFile1"/>
            <parameter name="data1" value="value1"/>
            <parameter name="data2" value="value2"/>
        </classes>
     </test>
     <test name="test2" parallel="false" preserve-order="true">
        <classes>
            <class name="TestProject.test.JavaFile2"/>
            <parameter name="data1" value="value3"/>
            <parameter name="data2" value="value4"/>
        </classes> 
    </test>
</suite>

आउटपुट:

[RemoteTestNG] detected TestNG version 6.14.3
...
... TestNG 6.14.3 by Cédric Beust (cedric@beust.com)
...

value1   value2
PASSED: test1
PASSED: test2
PASSED: test3
PASSED: test4
PASSED: test5

===============================================
    test1
    Tests run: 5, Failures: 0, Skips: 0
===============================================

value3   value4
PASSED: test6
PASSED: test7
PASSED: test8
PASSED: test9
PASSED: test10

===============================================
    test2
    Tests run: 5, Failures: 0, Skips: 0
===============================================


===============================================
testsuit
Total tests run: 10, Failures: 0, Skips: 0
===============================================
0
NitishKshirsagar 5 अगस्त 2019, 08:23