कैसे प्राप्त करने के लिए WebDriver के लिए मेरे श्रोता वर्ग का उपयोग करते समय "सार्वजनिक ThreadLocal<WebDriver> webdriver = नया ThreadLocal<WebDriver>();" विधि

0

सवाल

मैं हो रही रखने NullPointerException के लिए मेरे श्रोता WebDriver. यह है क्योंकि मैं ThreadLocal पर WebDriver में आधार वर्ग? यदि ऐसा है तो कैसे मैं परीक्षण के मामले के ड्राइवर के लिए मेरे श्रोता onTestSuccess विधि?

यह मेरा श्रोता वर्ग:

@Override
    public void onTestSuccess(ITestResult result) {
        extentTest.get().log(Status.PASS,"Test Passed");
        WebDriver driver = null;
        Object testObject = result.getInstance();
        Class clazz = result.getTestClass().getRealClass();
        try {
            driver = (WebDriver)clazz.getField("webdriver").get(testObject);
        } catch (Exception e) {
        }
        try {
            extentTest.get().addScreenCaptureFromPath(getScreenShotPath(result.getMethod().getMethodName(), driver), result.getMethod().getMethodName());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

BaseClass:

public ThreadLocal<WebDriver> webdriver = new ThreadLocal<WebDriver>();


@BeforeClass
public void setup() {
    Reporter.log("@@@@@ Setup @@@@@",true);
    ExtentReports extent = ExtentReport.extentReportGenerator();
}


@BeforeMethod
public void startBrowser() {
    WebDriverFactory webDriverFactory = new WebDriverFactory();
    webDriverFactory.setDriver();
    webdriver.set(webDriverFactory.getDriver());
    webdriver.get().get(baseURL);

TestCase वर्ग:

@Test(dataProvider = "jsonData", dataProviderClass = TestData.class)
public void  testAggregator(String jSon) throws ParseException {
    extent.createTest("Test The Welcome Page");
    welcomePageImpl = new WelcomePageImpl(webdriver.get());
    welcomePageImpl.getAggregatorRequest(webdriver.get(),jSon);
}

अपवाद:

java.lang.NullPointerException
    at main.java.com.shoppingCart.testCases.BaseClass.getScreenShotPath(BaseClass.java:71)
    at main.java.com.shoppingCart.utilities.Listeners.onTestSuccess(Listeners.java:37)
    at org.testng.internal.TestListenerHelper.runTestListeners(TestListenerHelper.java:70)
    at org.testng.internal.TestInvoker.runTestResultListener(TestInvoker.java:219)
    at org.testng.internal.TestInvoker.invokeMethod(TestInvoker.java:651)
    at org.testng.internal.TestInvoker.invokeTestMethod(TestInvoker.java:173)
    at org.testng.internal.MethodRunner.runInSequence(MethodRunner.java:46)
    at org.testng.internal.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:816)
    at org.testng.internal.TestInvoker.invokeTestMethods(TestInvoker.java:146)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:128)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
java selenium selenium-webdriver testng
2021-11-24 03:29:52
1

सबसे अच्छा जवाब

0

समस्या है, में अपने कोड का परीक्षण.

onSuccess द्वारा की गारंटी नहीं है TestNG में चलाने के लिए एक ही धागे के रूप में अपने परीक्षण विधि है ।

यह तय करने के लिए, कृपया refactor अपने श्रोता का उपयोग करने के लिए beforeInvocation और afterInvocation के माध्यम से TestNG श्रोता इंटरफ़ेस org.testng.IInvokedMethodListener क्योंकि है कि गारंटी करने के लिए पर चलाने के लिए एक ही धागे (के रूप में दूर के रूप में मुझे याद कर सकते हैं).

2021-11-24 06:30:25

हाँ मैं यह कोशिश की है और सीखा है कि अपने निर्माण के परीक्षण के लिए हर विधि है । मैं कुछ करना चाहते हैं, जहां इसे प्राप्त कर सकते हैं ही @ परीक्षण विधि और स्क्रीनशॉट बनाने के लिए जब यह विफल रहता है या के तहत पारित @ परीक्षण विधि शीर्षक में रिपोर्टर ।
Alvin

पाया मुद्दा है ।
Alvin

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में