automated-tests - 配置失败 - 空点异常
问题描述
我是编程和测试的新手。只是页面对象和一个测试用例,试图执行它。测试失败并出现空点异常。如果有人可以帮助解决这个问题,那就太好了。
我对此进行了谷歌搜索,发现了类似的错误,但答案对我没有帮助
这是我的第一个登录页面测试用例:
package com.ProjectName.TestCases;
import org.testng.annotations.Test;
import com.ProjectName.PageObject.LoginPage;
import junit.framework.Assert;
public class TC_LoginTest_001 extends BassClass{
@Test
public void loginTest()
{
driver.get(baseURL);
LoginPage lp = new LoginPage(driver);
lp.setUserName(username);
lp.setPassword(password);
lp.clickSubmit();
if(driver.getTitle().equals("Guru99 Bank Manager HomePage"))
{
Assert.assertTrue(true);
//logger.info("Login test passed");
}
else
{
//captureScreen(driver,"loginTest");
Assert.assertTrue(false);
//logger.info("Login test failed");
}
}
}
包含常见事物的基类:
package com.ProjectName.TestCases;
import org.openqa.selenium.WebDriver;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
public class BassClass {
public String baseURL = "http://demo.guru99.com/V4/index.php";
public String username = "mngr201172";
public String password = "tysemUz";
public static WebDriver driver;
@BeforeClass
public void setup()
{
System.setProperty("Webdriver.chrome.driver", System.getProperty("user.dir")+"//Drivers//chromedriver.exe");
}
@AfterClass
public void tearDown()
{
driver.quit();
}
}
错误:
[RemoteTestNG] detected TestNG version 6.14.3
FAILED CONFIGURATION: @AfterClass tearDown
java.lang.NullPointerException
at com.ProjectName.TestCases.BassClass.tearDown(BassClass.java:23)
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:124)
at org.testng.internal.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:59)
at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:458)
at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:222)
at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:142)
at org.testng.internal.TestMethodWorker.invokeAfterClassMethods(TestMethodWorker.java:214)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
at org.testng.TestRunner.privateRun(TestRunner.java:648)
at org.testng.TestRunner.run(TestRunner.java:505)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:455)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:450)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:415)
at org.testng.SuiteRunner.run(SuiteRunner.java:364)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:84)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1208)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1137)
at org.testng.TestNG.runSuites(TestNG.java:1049)
at org.testng.TestNG.run(TestNG.java:1017)
at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)
FAILED: loginTest
java.lang.NullPointerException
at com.ProjectName.TestCases.TC_LoginTest_001.loginTest(TC_LoginTest_001.java:14)
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:124)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:583)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:719)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:989)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109)
at org.testng.TestRunner.privateRun(TestRunner.java:648)
at org.testng.TestRunner.run(TestRunner.java:505)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:455)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:450)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:415)
at org.testng.SuiteRunner.run(SuiteRunner.java:364)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:84)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1208)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1137)
at org.testng.TestNG.runSuites(TestNG.java:1049)
at org.testng.TestNG.run(TestNG.java:1017)
at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)
===============================================
Default test
Tests run: 1, Failures: 1, Skips: 0
Configuration Failures: 1, Skips: 0
===============================================
===============================================
Default suite
Total tests run: 1, Failures: 1, Skips: 0
Configuration Failures: 1, Skips: 0
===============================================
Expecting Automation of Login page
解决方案
我认为您忘记实例化ChromeDriver,例如:
driver = new org.openqa.selenium.chrome.ChromeDriver();
因为driver
is null 你在尝试调用它的函数时得到一个NPE 。
查看设计模式 - 页面对象模型文章,其中甚至包括一个示例项目,您可以将其用作实验的基础。
推荐阅读
- c# - 使用 Entity Framework Core 添加迁移时出现错误
- system-verilog - System Verilog 覆盖点和覆盖组是否适用于实际变量类型?
- git - git log 输出中的遥控器是什么意思?
- intellij-idea - PATH 上缺少 node_modules bin
- c# - 有没有一种很好的方法来访问 xaml 中嵌套控件的属性?
- sql-server - SQL Server 错误:在表上引入外键约束可能会导致循环或多个级联路径
- c++ - 如何使用可变数量的基类使基类的运算符可见(请参见下面的代码)?
- ansible - Ansible playbook 创建相对链接
- python-3.x - Docker python无法导入通过apt-get安装的模块
- sql - 如何分析实际执行计划并创建非聚集索引来帮助查询