【发布时间】:2020-07-04 07:43:44
【问题描述】:
我无法找到解决方案,所以我在这里发帖寻求帮助。我在并行运行测试时遇到问题(使用 POM 和页面工厂)。
*\ 测试库类 */
public WebDriver driver;
@BeforeClass
@Parameters("Browsername")
public void initializeaccount(String Browsername)
{
if(Browsername.equals("chrome")) {
System.setProperty("webdriver.chrome.driver", "C:\\Users\\User\\eclipse-workspace\\test\\chromedriver.exe");
driver = new ChromeDriver();
}
else if(Browsername.equals("chrome1")) {
System.setProperty("webdriver.chrome.driver", "C:\\Users\\User\\eclipse-workspace\\test\\chromedriver.exe");
driver = new ChromeDriver();
}
driver.manage().window().maximize();
driver.manage().deleteAllCookies();
driver.manage().timeouts().pageLoadTimeout(testutility.page_Load_Timeout, TimeUnit.SECONDS);
driver.manage().timeouts().implicitlyWait(testutility.page_Load_Timeout, TimeUnit.SECONDS);
driver.get(prop.getProperty("accounturl"));
}
* POM 类 *
public CreateAccountPage() {
PageFactory.initElements(driver, this);
}
//action
public String vailidatewebpagetitle() throws InterruptedException
{
return driver.getTitle();
}
* 测试用例 *
public Accountpagetest() {
super();
}
@BeforeMethod
public void setup()
{
CreateAccountPage = new CreateAccountPage();
}
@Test(priority=1)
public void verifycreateaccountwebpagetitle() throws InterruptedException
{
String title = CreateAccountPage.vailidatewebpagetitle();
Assert.assertEquals(title, "google");
}
* XML 文件 *
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="TestSuite" parallel= "tests" thread-count="2">
<listeners>
<listener class-name="Report.DownloadReport" />
</listeners>
<test name="Testchrome" parallel= "methods" thread-count="5">
<parameter name="Browsername" value ="chrome"> </parameter>
<classes>
<class name="testcases.Accountpagetest"/>
</classes>
</test> <!-- Test -->
<test name="Testchrome2" parallel= "methods" thread-count="5">
<parameter name="Browsername" value ="chrome1"> </parameter>
<classes>
<class name="testcases.Accountpagetest"/>
</classes>
</test>
</suite> <!-- Suite -->
我收到 java nullpointerexception 错误
===============================================
TestSuite
Total tests run: 2, Passes: 0, Failures: 2, Skips: 0
===============================================
java.lang.NullPointerException
at pages.CreateAccountPage.vailidatewebpagetitle(CreateAccountPage.java:44)
at testcases.Accountpagetest.verifycreateaccountwebpagetitle(Accountpagetest.java:37)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:133)
at org.testng.internal.TestInvoker.invokeMethod(TestInvoker.java:584)
at org.testng.internal.TestInvoker.invokeTestMethod(TestInvoker.java:172)
at org.testng.internal.MethodRunner.runInSequence(MethodRunner.java:46)
at org.testng.internal.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:804)
at org.testng.internal.TestInvoker.invokeTestMethods(TestInvoker.java:145)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:128)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:830)
java.lang.NullPointerException
at pages.CreateAccountPage.vailidatewebpagetitle(CreateAccountPage.java:44)
at testcases.Accountpagetest.verifycreateaccountwebpagetitle(Accountpagetest.java:37)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:133)
at org.testng.internal.TestInvoker.invokeMethod(TestInvoker.java:584)
at org.testng.internal.TestInvoker.invokeTestMethod(TestInvoker.java:172)
at org.testng.internal.MethodRunner.runInSequence(MethodRunner.java:46)
at org.testng.internal.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:804)
at org.testng.internal.TestInvoker.invokeTestMethods(TestInvoker.java:145)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:128)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:830)
** 更新 我遇到的错误,/* POM 类 *\ createnewpage 方法驱动程序返回一个空参数。
无论如何,我在这里尝试的是运行两个 chrome 浏览器进行并行测试。
任何人之前都遇到过这个问题,可以建议需要进行哪些更正?我被困住了。
【问题讨论】:
标签: java selenium selenium-webdriver pageobjects page-factory