请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

parameter取不了xml中的值

图片描述

@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加了这个是可以跳转到百度的,但是不加就报错

正在回答 回答被采纳积分+3

1回答

提问者 慕勒801805 2021-04-15 23:13:37

报错信息:

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 回复 有任何疑惑可以回复我~
  • 从 testng.xml 执行 你看一下 选择testng  然后选中 右键运行testng 而不是代码中运行
    回复 有任何疑惑可以回复我~ 2021-04-16 10:26:14
  • 提问者 慕勒801805 回复 Mushishi #2
    最后发现是<parameter>位置放错了,不能放到<class>里面,还有就是chrome的版本不对应
    回复 有任何疑惑可以回复我~ 2021-04-18 14:56:22
  • Mushishi 回复 提问者 慕勒801805 #3
    额 好吧。很佩服你哦 加油
    回复 有任何疑惑可以回复我~ 2021-04-18 20:26:00
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信