1.在使用testng.xml进行多个测试case的测试时,同个suite下可以有多个test,每个test下包含多个class,每个class下包含多个method。。看具体的测试流程怎么实现
class在命名时最好是按照ascii码来
preserve-order="true"用来控制<test></test>下的执行顺序是按照classes的名字的ascii顺序执行还是按照排列的顺序执行。为true时是按照顺序执行,默认为false是按照类名的ascii顺序执行(也可以控制class下的method执行顺序)
parallel是用来控制并发的,与thread-count配合使用
parallel="classes"每个类运行在不同的线程中,在同一个类的线程中运行该类下的所有方法
parallel="methods"在不同的线程中运行测试方法,除非互相依赖的方法。相互依赖的方法会运行在同一个线程中,并且遵照其运行顺序
parallel="tests"在相同的线程中运行相同<test>标记下的所有方法,但是每个<test>下的方法会运行在不同的线程下
thread-count="3"同时运行的线程数
2.单个类都会写BeforeXXX、 AfterXXX的方法,在使用testng.xml进行测试时会把所有类的Before和After先调用,查看各个BeforeXXX的优先级别。如果有个比较后面运行的类中有BeforeTest,但是其他类只有BeforeMethod,根据BeforeTest比BeforeMethod先运行的原则,会先运行BeforeTest,再根据执行顺序运行类。
3.数据驱动循环执行同个代码的时候,会出现找不到元素的情况,是因为selenium找到元素时只能被一次运行,第二次要使用时必须重新定位一次。在循环体外和循环体内都要定位一次要使用的元素。
循环时要找好退出的点--这个很关键。陷在循环里出不来啦(┬_┬)