有个业务场景: 写了 100 个 UI 自动化的用例,需要验证 10 个权限的用户执行这些用例是否有问题
目前想到的做法是把 10 个权限放到文件里,每个测试用例指定@Test(dataProvider="xx") 来做数据驱动,这样做需要修改 1000 次权限,开销很大
有没有可能修改一次权限后 执行这 100 个用例,把数据驱动放到测试集里做,这样只需要修改 10 次权限,每次权限执行这 100 个用例
拜谢各位了!
数据驱动,把测试数据放到数据库里,设计好对应数据期望值,然后一个循环,只需维护测试数据就可以了
没怎么看明白,ABC 不就三条测试数据吗,跟 suite 有啥关系
没有可能,Junit/TestNg 设计如此
换个思路,在@Before里产生修改数据后 作为 dataProvider
我确认下我的理解,假设 DataProvider 产生 A、B、C 三个账号数据,你是想把执行顺序从:
用例1:A 用例1:B 用例1:C 用例2:A ...
改为
用例1:A 用例2:A 用例3:A ... 用例100: A 用例1:B 用例2:B ...
对吗?
如果是,那其实你要做的并不是数据驱动,而是执行顺序编排。这个可以用 testng.xml 来做。建立 10 个 testsuite,每个 suite 里面都是你那 100 条用例,然后每个 testsuite 里面设定不同的 parameter 对应不同用户,testcase 里面通过 @Parameter 来获取当前 suite 对应的用户信息即可。
如果不是,可以类似上面示例这样说清楚你想要达到的效果?
正解,感谢
目前是这样做的:
现在才知道 @BfterTest 不是单个测试方法执行之前执行,而是 xml 里的 test 标签