java – TestNG多次运行所有类方法,初步使用提供的数据执行@Befo
我正在使用TestNG和Selenium WebDriver为webapp编写测试套件.
我需要的是为不同的经过身份验证的用户多次运行测试类的所有方法(数据在运行时拉出:来自数据库).所以我需要将数据传递给具有数据提供者的类,该数据提供者提供所有用户的凭据,然后为每个用户创建一个Web驱动程序(为了实验的纯度)并使用@BeforeClass方法中提供的凭据进行身份验证,运行该类的所有@Test方法,并使@AfterClass拆除关闭Web驱动程序. 我怎样才能做到这一点? 我试图这样做是在这里: Attempt1是在课堂上放置一个@Test(dataProvider =“getUsersIdAndName”). 这个类上的@Test(dataProvider =)是否意味着什么? Attempt2是在方法的@Test注释上添加dataProvider. 第一次和第二次尝试的缺点是登录本身是在测试方法中完成而不是在@BeforeClass方法中完成,因为我知道无法用数据提供者的数据提供它. Attempt3是一个绝望的尝试,将@BeforeClass和@Test结合在单一方法上. 然后我发现TestNG没有提供一种方法来使用不同的数据多次调用所有类方法: 我还有两个关于如何归档相同效果的想法. Idea4是在每个测试方法上放置一个@Test(dataProvider =),每个方法将自己执行一次身份验证和isAuthenticated()测试,然后执行它自己的测试. 看起来最实惠的Idea5就是用@Test标记一种方法来聚合所有其他测试方法:它从数据提供者接收数据,由给定用户执行身份验证,然后运行isAuthenticated测试和所有其他必要的测试.在这种情况下,@ BeforeClass和@AfterClass只是设置和拆除Web驱动程序.这种方法的缺点是我失去了使用@BeforeMethod和@AfterMethod的能力,但这对我来说是可以承受的:看起来我不需要它们. 有没有更好的方法来存档相同的效果? 对不起,留言很长. 提前致谢. 解决方法
您可以尝试探索工厂以满足您的需求. Factory允许您运行所有使用不同数据的类的@Test注释的方法.在这种情况下,您可以在ur beforeclass中初始化ur webdriver.解释
here.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |