gpt4 book ai didi

javascript - 将 TestNG 添加到现有的 Selenium 脚本 - 我的通过/失败输出与 TestNG 不匹配

转载 作者:行者123 更新时间:2023-11-29 09:27:14 25 4
gpt4 key购买 nike

这里是 Stackoverflow 的初学者,也是 Java/Scripting/Selenium/TestNG 的初学者

我创建了一个简单的脚本来检查页面元数据,如果预期的页面标题正确打印通过或失败,我修改了我找到的教程中的一些代码。后来我尝试添加一些 TestNG 框架的测试,对代码进行更多修改,但即使在我的打印输出中说测试可能会失败,TestNG 输出也会失败

这是我到目前为止的代码

package live_MetaData;
import org.testng.annotations.*;
import static org.testng.Assert.*;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;



public class Demo{
private WebDriver driver;
private StringBuffer verificationErrors = new StringBuffer();

@BeforeClass(alwaysRun = true)
public void setUp() throws Exception {
System.setProperty("webdriver.gecko.driver", "C:\\Automation\\SeleniumFiles\\Browser Drivers\\geckodriver.exe");
driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
}

@Test
public void DemoTest() throws Exception {
String baseUrl = "http://demo.guru99.com/test/newtours/";
String expectedTitle = "Not Meta";
String actualTitle = "";

driver.get(baseUrl);

actualTitle = driver.getTitle();

if (actualTitle.contentEquals(expectedTitle)){
System.out.println("Test Passed!");
} else {
System.out.println("Test Failed");}}

//close Fire fox
@AfterClass(alwaysRun = true)
public void tearDown() throws Exception {
driver.quit();
String verificationErrorString = verificationErrors.toString();
if (!"".equals(verificationErrorString)) {
fail(verificationErrorString);

}

}}

这给了我这个输出文本:

Test Failed

PASSED: DemoTest

===============================================
Default test
Tests run: 1, Failures: 0, Skips: 0
===============================================


===============================================
Default suite
Total tests run: 1, Failures: 0, Skips: 0
===============================================

感谢您提供的任何帮助,特别是如果它可以解释我哪里出了问题以及为什么它应该像(希望)解决方案那样,我从星期二的一无所知变成了这个。

最佳答案

您的 actualTitle 是“Welcome: Mercury Tours”并且 expectedTitle = “Not Meta

您的代码:

if (actualTitle.contentEquals(expectedTitle)){
System.out.println("Test Passed!");
} else {
System.out.println("Test Failed");}

问题的控制将转到 else ,因为 if 条件不满足。您的测试用例已通过,但您在其他地方打印“测试失败”。

===============================================
Default test
Tests run: 1, Failures: 0, Skips: 0
===============================================

这意味着测试用例通过计数为 1。
测试用例失败 计数为 0。
测试用例 skip 计数为 0。

我的建议:使用断言来验证这种情况。

将此代码用于断言:

@Test
public void DemoTest() throws Exception {
String baseUrl = "http://demo.guru99.com/test/newtours/";
String expectedTitle = "Not Meta";
String actualTitle = "";
driver.get(baseUrl);
actualTitle = driver.getTitle();
assertEquals(actualTitle , expectedTitle );

关于javascript - 将 TestNG 添加到现有的 Selenium 脚本 - 我的通过/失败输出与 TestNG 不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49813429/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com