我在Eclipse中使用Java中的TestNG框架为我的网站创建了一个登录测试,并希望通过在命令提示符下运行它来通过XML文件执行我的测试。
我要测试的网站名称名为“我的网站”。我的项目的根文件夹是Test My Website
,我的文件夹的文件系统在以下屏幕截图中说明:
我已按照here上的说明进行操作,并相应地安排了我的项目文件系统。
PS:我的项目根目录中也存在bin
文件夹,Java编译器使用它来存储.class
文件,但不会显示在Eclipse的程序包中资源管理器。
TestClass1.java 的源代码是,
package testngsample;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import org.testng.annotations.AfterClass;
public class TestClass1 {
protected static WebDriver driver;
protected static String result;
@BeforeClass
public void setup() {
driver = new ChromeDriver();
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
driver.manage().window().maximize();
}
@Test
void loginTest() {
try {
driver.get("https://test.rockon.me");
driver.findElement(By.id("btnLogin")).click();
driver.findElement(By.id("txtUserName")).sendKeys("max_marchisio");
driver.findElement(By.id("txtPassword")).sendKeys("Rockon123");
driver.findElement(By.id("GoArrow")).click();
Thread.sleep(15000);
result = driver.getTitle();
Assert.assertEquals(result, "Home | RockON");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
@AfterClass
public void teardown() {
driver.close();
driver.quit();
}
}
TestNG.xml 文件的源代码是,
<?xml version="1.0" encoding="UTF-8"?>
<suite name="My sample Suite">
<test name="Search test">
<classes>
<class name="TestClass1" />
</classes>
</test>
</suite>
此处的问题是,尽管遵循上面提供的链接中给出的正确说明,但我无法执行TestNG.xml
文件。为了从命令提示符执行文件,我在命令提示符下执行以下命令。
1)cd C:\Users\rugved.mandrekar\workspace\Test My Website
2)set ProjectPath="C:\Users\rugved.mandrekar\workspace\Test My Website"
3)set classpath=%ProjectPath%\bin;%ProjectPath%\lib\*
4)java -cp org.testng.TestNG %ProjectPath%TestNG.xml
并在我的命令提示符
中获取以下输出(字面意思)Error: Could not load find or load main class C:\Users\rugved.mandrekar\workspace\Test My Website"TestNG.xml
我可以通过为Eclipse创建TestNG运行配置来执行 TestNG.xml文件来运行脚本,它还可以生成输出并完美地生成报告,但为什么是这不是从命令提示符发生的吗?
任何人都可以告诉我我哪里错了?最早的回复将受到高度赞赏。谢谢。
答案 0 :(得分:0)
好吧,在将我的头撞在砖墙上之后,我终于找到了解决问题的解决方法。我刚刚更改了我的XML文件来运行包的脚本而不是单个类。因此我的 TestNG.xml 文件已更改为
<?xml version="1.0" encoding="UTF-8"?>
<suite name="My sample Suite">
<test name="Search test">
<packages>
<package name="testngsample" />
</packages>
</test>
</suite>
我还通过执行以下命令
从命令提示符设置项目的类路径java -cp "C:\Users\rugved.mandrekar\workspace\Test My Website\lib\*;C:\Users\rugved.mandrekar\workspace\Test My Website\bin" org.testng.TestNG TestNG.xml