我找不到解决方法,所以我在这里发帖寻求帮助。我在并行运行测试时遇到问题(使用POM和page factory)。
*\Testbase类*/
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浏览器进行并行测试。
任何有过这个问题的人都可以建议需要做哪些更正?我卡住了。
将参数“Browsername”读入方法参数中,并删除读取方法代码内属性的调用
public WebDriver driver;
@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"));
}
当使用liquibase maven更新目标执行更新时,我得到了以下错误。 LiquiBase.Exception.ChangeLogParseException:解析db.changeLogDiff.xml的第4459行第108列时出错:cvc-complex-type.3.2.2:属性“Object QuotingStrategy”不允许出现在元素“Change Set”中。 diff生成的c
问题内容: 使用in 时可以执行更新吗?例如: 问题答案: 有一个非常强大的功能,称为: [15.4。DML风格的操作](http://docs.jboss.org/hibernate/orm/4.3/manual/en- US/html/ch15.html#batch-direct) 来自doc的小引用: …但是,Hibernate提供了通过Hibernate查询语言执行批量SQL样式DML语句
问题内容: 我有一个页面正在从第三方(新闻提要)加载脚本。脚本的url在加载时动态分配(根据第三方代码)。 然后从中加载的脚本创建并加载具有新闻提要中各种内容的元素,并以漂亮的格式等将元素加载到其中(传入ID“ div1287”,以便脚本知道在何处加载内容)。 唯一的问题是,它只会加载一次。我希望它每n秒重新加载一次(从而显示新内容)。 所以,我想我会尝试一下: div清除后,我得到警报,但是没有
对于一个小的新项目,我决定尝试一下JDBI(通常我使用hibernate/jpa)。 我喜欢使用@SqlUpdate/@Sql Query创建轻量级、基于注释的dao。 但是:在某些情况下,我无法确定是要创建实体还是更新现有实体。我会放置一个“选择”语句,并根据其返回值使用插入或更新语句。 问题:jdbi中的“仅接口”道是否以某种方式支持这一点?还是我必须自己编写一个“createOrUpdate
在数据库表中,如下所示; 我想做的如下; 如何在不刷新的情况下更新新列(gsm列)(php artisan migrate:refresh)
第一个类运行成功,但第二个类失败与错误: “org.testng.TestNGException:无法调用public void TestScripts.NewAccountCreation.AccountCreation1():将其设为静态或向类中添加无参数构造函数” 如果我添加非参数构造函数,我将得到空指针异常。 我使用PageFactory来设计我的测试用例。 Eclipse版本:开普勒 T