【发布时间】:2018-03-08 12:24:06
【问题描述】:
Selenium 和自动化的新手。
首先,当我使用 Junit 运行测试时,我的测试在 Eclipse 中运行良好。但是如果我通过 Jenkins 或 CLI 开始测试,我会得到结果:Total tests run: 0, Failures: 0, Skips: 0
现在我可能弄错了测试的结构,或者我可能做错了什么。我查遍了所有在线解决方案似乎都无法解决我的问题。
我的测试只是一个简单的登录测试而已。
我认为我可能将框架混合在一起或以错误的方式将它们一起使用。我正在使用 Testng 开始我的硒测试我认为。我再次举手并承认我是新手,所以我希望有人能告诉我哪里出错了。我确实注意到在我的实际 selenium 测试文件中我没有使用任何 Testng 函数或任何东西,而只是 selenium web 驱动程序。我在下面列出了我的代码文件以及我从测试中获得的结果。
再次抱歉,如果我遗漏了一个简单的步骤,或者我正在尝试一些不可能的事情,我只需要专家的帮助或正确方向的指示。感谢您提前提供任何帮助。
测试
出于安全原因,我删除了实际 URL 和凭据。
package testing;
import static org.junit.Assert.fail;
import java.util.concurrent.TimeUnit;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.NoAlertPresentException;
import org.openqa.selenium.NoSuchElementException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.Assert;
public class login {
private WebDriver driver;
private String baseUrl;
private boolean acceptNextAlert = true;
private StringBuffer verificationErrors = new StringBuffer();
@Before
public void setUp() throws Exception {
System.setProperty("webdriver.gecko.driver","C:\\gecko\\geckodriver.exe");
driver = new FirefoxDriver();
baseUrl = "";
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
}
@Test
public void testLogin() throws Exception {
driver.get(baseUrl + "");
driver.findElement(By.id("email")).clear();
d
river.findElement(By.id("email")).sendKeys("");
driver.findElement(By.id("password")).clear();
driver.findElement(By.id("password")).sendKeys("");
driver.findElement(By.xpath("//input[@value='Login »']")).click();
}
@After
public void tearDown() throws Exception {
driver.quit();
String verificationErrorString = verificationErrors.toString();
if (!"".equals(verificationErrorString)) {
fail(verificationErrorString);
}
}
private boolean isElementPresent(By by) {
try {
driver.findElement(by);
return true;
} catch (NoSuchElementException e) {
return false;
}
}
private boolean isAlertPresent() {
try {
driver.switchTo().alert();
return true;
} catch (NoAlertPresentException e) {
return false;
}
}
private String closeAlertAndGetItsText() {
try {
Alert alert = driver.switchTo().alert();
String alertText = alert.getText();
if (acceptNextAlert) {
alert.accept();
} else {
alert.dismiss();
}
return alertText;
} finally {
acceptNextAlert = true;
}
}
}
testng.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Sample Suite">
<test name="Learning Jenkins">
<classes>
<class name="testing.login"></class>
</classes>
</test>
</suite>
CLI 或 Jenkins 测试的结果
[TestNG] Running:
C:\Users\keating99\workspace\FdimTests\testng.xml
===============================================
Sample Suite
Total tests run: 0, Failures: 0, Skips: 0
===============================================
Finished: SUCCESS
我再次意识到我在实际测试中没有使用任何 Testng,但我测试的目的是启动 selenium 来运行测试。也许我的做法不对。
硒测试有效,我可以从 Eclipse 中启动。
提前感谢您的帮助!
【问题讨论】:
-
testng.xml包含什么内容? -
嗨莫菲克。我添加了 testng.xml。谢谢
标签: java selenium jenkins selenium-webdriver testng