1.在使用testng.xml進(jìn)行多個(gè)測(cè)試case的測(cè)試時(shí),同個(gè)suite下可以有多個(gè)test囱怕,每個(gè)test下包含多個(gè)class,每個(gè)class下包含多個(gè)method毫别。娃弓。看具體的測(cè)試流程怎么實(shí)現(xiàn)
class在命名時(shí)最好是按照ascii碼來
preserve-order="true"用來控制<test></test>下的執(zhí)行順序是按照classes的名字的ascii順序執(zhí)行還是按照排列的順序執(zhí)行岛宦。為true時(shí)是按照順序執(zhí)行台丛,默認(rèn)為false是按照類名的ascii順序執(zhí)行(也可以控制class下的method執(zhí)行順序)
parallel是用來控制并發(fā)的,與thread-count配合使用
parallel="classes"每個(gè)類運(yùn)行在不同的線程中砾肺,在同一個(gè)類的線程中運(yùn)行該類下的所有方法
parallel="methods"在不同的線程中運(yùn)行測(cè)試方法挽霉,除非互相依賴的方法。相互依賴的方法會(huì)運(yùn)行在同一個(gè)線程中变汪,并且遵照其運(yùn)行順序
parallel="tests"在相同的線程中運(yùn)行相同<test>標(biāo)記下的所有方法侠坎,但是每個(gè)<test>下的方法會(huì)運(yùn)行在不同的線程下
thread-count="3"同時(shí)運(yùn)行的線程數(shù)
2.單個(gè)類都會(huì)寫B(tài)eforeXXX、 AfterXXX的方法裙盾,在使用testng.xml進(jìn)行測(cè)試時(shí)會(huì)把所有類的Before和After先調(diào)用实胸,查看各個(gè)BeforeXXX的優(yōu)先級(jí)別。如果有個(gè)比較后面運(yùn)行的類中有BeforeTest番官,但是其他類只有BeforeMethod庐完,根據(jù)BeforeTest比BeforeMethod先運(yùn)行的原則,會(huì)先運(yùn)行BeforeTest徘熔,再根據(jù)執(zhí)行順序運(yùn)行類假褪。
3.數(shù)據(jù)驅(qū)動(dòng)循環(huán)執(zhí)行同個(gè)代碼的時(shí)候,會(huì)出現(xiàn)找不到元素的情況近顷,是因?yàn)閟elenium找到元素時(shí)只能被一次運(yùn)行,第二次要使用時(shí)必須重新定位一次宁否。在循環(huán)體外和循環(huán)體內(nèi)都要定位一次要使用的元素窒升。
循環(huán)時(shí)要找好退出的點(diǎn)--這個(gè)很關(guān)鍵。陷在循環(huán)里出不來啦(┬_┬)