parameter取不了xml中的值

来源:7-9 分层设计之企业实战中数据的管理及传递

慕勒801805

2021-04-15

图片描述

@Listeners({ TestNGLisetenerScreen.class })
public class LoginCase {
private static Logger logger = Logger.getLogger(LoginCase.class);

public WebDriver driver;
public LoginHandle loginHandle;

//@Optional("https://www.imooc.com")
@Parameters({"url"})
@BeforeClass
public void beforeClass(@Optional("https://www.baidu.com")String url) {
	System.out.println(url);
	// 引入log4j的配置文件(重点)
	PropertyConfigurator.configure("log4j.properties");
	logger.debug("初始化浏览器");
	driver = new ChromeDriver();
	logger.debug("打开浏览器");
	driver.get(url);
	try {
		Thread.sleep(3000);
	} catch (InterruptedException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	loginHandle = new LoginHandle(driver);
	loginHandle.clikBtn();

	try {
		Thread.sleep(2000);
	} catch (InterruptedException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
}

@AfterClass
public void afterClass() {
	driver.close();

}

/**
 * case 2 1.判断登录是否成功 2.登录错误截图
 * 
 * @Optional({"17828895362,s45s464"}String username,String password)
 */

@Parameters({"username","password"})
@Test
public void isLoginCase(String username,String password) {
	
	loginHandle.sendEmail(username);
	loginHandle.sendPassword(password);
	loginHandle.clickLoginBtn();
	try {
		Thread.sleep(3000);
	} catch (InterruptedException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	// 拿到用户的登录名
	String usertext = loginHandle.GetUserText();
	// 用断言判断登录的信息与用户名信息是否相同
	Assert.assertEquals(usertext, "慕勒80185");
	logger.error("登录失败+isLoginCase");
}

/**
 * case 1 用户登录
 * @return 
 */

@Parameters({"username","password"})
@Test
public void loginCase(String username,String password) {
	logger.debug("执行第一个case");
	
	loginHandle.sendEmail(username);
	loginHandle.sendPassword(password);
	loginHandle.clickLoginBtn();
	try {
		Thread.sleep(3000);
	} catch (InterruptedException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	// 拿到用户的登录名s
	String usertext = loginHandle.GetUserText();
	// 用断言判断登录的信息与用户名信息是否相同
	Assert.assertEquals(usertext, "慕勒801805");
}

}

@Optional(“https://www.baidu.com”)url加了这个是可以跳转到百度的,但是不加就报错

写回答

1回答

慕勒801805

提问者

2021-04-15

报错信息:

FAILED CONFIGURATION: @BeforeClass beforeClass

org.testng.TestNGException: 

Parameter 'url' is required by @Configuration on method beforeClass but has not been marked @Optional or defined

in C:\Users\Administrator\AppData\Local\Temp\testng-eclipse-1873359355\testng-customsuite.xml

at org.testng.internal.Parameters.createParameters(Parameters.java:154)

at org.testng.internal.Parameters.createParameters(Parameters.java:361)


0
3
Mushishi
回复
慕勒801805
额 好吧。很佩服你哦 加油
2021-04-18
共3条回复

Java Web自动化测试 Selenium基础到企业实际应用

转型Java自动化测试,企业用什么,你就学什么。

752 学习 · 446 问题

查看课程