【发布时间】:2021-09-28 19:44:16
【问题描述】:
package testSteps;
import java.io.IOException;
import org.testng.Assert;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import pageObjects.loginPage;
import utilities.XLUtils;
public class testLoginDDT extends baseClass{
@Test(dataProvider="LoginData")
public void loginTestDDT(String uname, String pswd) throws InterruptedException {
loginPage lp = new loginPage(driver);
lp.enterUsername(uname);
lp.enterPassword(pswd);
lp.clickSignIn();
//user defined method created to check validation point is present or not
boolean myprop= driver.getPageSource().contains("What’s New");
if(myprop==true) {
Assert.assertTrue(true);
lp.closePopUp();
lp.clickSignOut();
Thread.sleep(2000);
driver.switchTo().defaultContent();
}
else
{
//captureScreen(driver, "testLoginDDT");
driver.switchTo().defaultContent();
Assert.assertTrue(false);
}
}
@DataProvider(name="LoginData")
String [][] getData() throws IOException{
String path=System.getProperty("user.dir")+"/src/test/java/testData/LoginData.xlsx";
int rownum=XLUtils.getRowCount(path, "Sheet1");
int colcount=XLUtils.getCellCount(path,"Sheet1",1);
String logindata[][]=new String[rownum][colcount];
for(int i=1;i<=rownum;i++)
{
for(int j=0;j<colcount;j++)
{
logindata[i-1][j]=XLUtils.getCellData(path,"Sheet1", i,j);
}
}
return logindata;
}
}
TestNG.XML
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="TestPlan">
<listeners>
<listener class-name="utilities.Reporting" />
</listeners>
<test name="SiteRecon Test">
<parameter name="browser" value="chrome" />
<classes>
<!-- <class name="testSteps.test_loginSteps" /> -->
<class name="testSteps.testLoginDDT" />
</classes>
</test>
</suite>
TestNG 跟踪:
TestNG message -
java.lang.NoSuchMethodError: org.apache.commons.io.IOUtils.toString(Ljava/io/InputStream;Ljava/nio/charset/Charset;)Ljava/lang/String;
at io.github.bonigarcia.wdm.versions.Shell.runAndWaitNoLog(Shell.java:66)
at io.github.bonigarcia.wdm.versions.Shell.runAndWaitArray(Shell.java:55)
at io.github.bonigarcia.wdm.versions.Shell.runAndWait(Shell.java:49)
at io.github.bonigarcia.wdm.versions.VersionDetector.getBrowserVersionInWindows(VersionDetector.java:222)
at io.github.bonigarcia.wdm.versions.VersionDetector.getDefaultBrowserVersion(VersionDetector.java:181)
at io.github.bonigarcia.wdm.managers.ChromeDriverManager.getBrowserVersionFromTheShell(ChromeDriverManager.java:123)
at io.github.bonigarcia.wdm.WebDriverManager.detectBrowserVersion(WebDriverManager.java:719)
at io.github.bonigarcia.wdm.WebDriverManager.resolveDriverVersion(WebDriverManager.java:588)
at io.github.bonigarcia.wdm.WebDriverManager.manage(WebDriverManager.java:540)
at io.github.bonigarcia.wdm.WebDriverManager.setup(WebDriverManager.java:288)
at testSteps.baseClass.setUp(baseClass.java:45)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:133)
at org.testng.internal.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:62)
at org.testng.internal.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:385)
at org.testng.internal.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:321)
at org.testng.internal.TestMethodWorker.invokeBeforeClassMethods(TestMethodWorker.java:176)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:122)
at java.util.ArrayList.forEach(Unknown Source)
at org.testng.TestRunner.privateRun(TestRunner.java:794)
at org.testng.TestRunner.run(TestRunner.java:596)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:377)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:371)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:332)
at org.testng.SuiteRunner.run(SuiteRunner.java:276)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:53)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:96)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1212)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1134)
at org.testng.TestNG.runSuites(TestNG.java:1063)
at org.testng.TestNG.run(TestNG.java:1031)
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)
pom.XML 依赖:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.141.59</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.github.bonigarcia/webdrivermanager -->
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>4.3.1</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.17</version>
</dependency>
<dependency>
<groupId>com.aventstack</groupId>
<artifactId>extentreports</artifactId>
<version>3.1.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.testng/testng -->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>7.4.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.0</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-io</artifactId>
<version>1.3.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/log4j/log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
</dependencies>
基类代码:
package testSteps;
import java.io.File;
import java.io.IOException;
import java.util.concurrent.TimeUnit;
import org.apache.commons.io.FileUtils;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.edge.EdgeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Parameters;
import io.github.bonigarcia.wdm.WebDriverManager;
import utilities.ReadConfig;
public class baseClass {
ReadConfig readconfig= new ReadConfig();
public String baseURL=readconfig.getAppURL();
public String email=readconfig.getEmail();
public String password=readconfig.getPassword();
public static WebDriver driver;
@Parameters("browser")
@BeforeClass
public void setUp(String br) {
if(br.equals("chrome")) {
WebDriverManager.chromedriver().setup();
driver= new ChromeDriver();
}
else if(br.equals("firefox")) {
WebDriverManager.firefoxdriver().setup();
driver= new FirefoxDriver();
}
else if(br.equals("edge")) {
WebDriverManager.edgedriver().setup();
driver= new EdgeDriver();
}
driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);
driver.get(baseURL);
}
@AfterClass
public void tearDown() {
driver.close();
driver.quit();
}
public void captureScreen(WebDriver driver, String tname) throws IOException {
TakesScreenshot ts = (TakesScreenshot) driver;
File source = ts.getScreenshotAs(OutputType.FILE);
File target = new File(System.getProperty("user.dir") + "/Screenshots/" + tname + ".png");
FileUtils.copyFile(source, target);
System.out.println("Screenshot taken");
}
}
我正在尝试运行此代码,但这给出了错误。在测试运行期间,它会跳过测试用例并在控制台上显示此消息: 测试计划 总测试运行:6,通过:0,失败:0,跳过:6 配置失败:1,跳过:1 我无法找到此问题的根本原因。请帮忙。谢谢
【问题讨论】:
-
你是怎么运行这个的?
-
使用 TestNG.xml 运行
标签: java eclipse selenium testng