安裝pytest_ordering,經過裝飾器@pytest.mark.run(order=1)來進行控制,數字越小,越前執行,python
安裝pytest-dependency 在對應的方法A上添加@pytest.mark.dependency()對所依賴的方法進行標記設置爲被依賴方法,在依賴方法使用@pytest.mark.dependency(depends=["被依賴方法名"])引用依賴 可添加name=參數session
@pytest.fixture裝飾,包括session、module、class、functionapp
@pytest.mark.dependency()依賴方法示例:ide
1.在同一個類中,再被依賴的方法上進行標記 如,被依賴方法 @pytest.mark.dependency(depends=["類名::方法名"])spa
@pytest.mark.dependency() # 被依賴方法 @pytest.mark.flaky(reruns=2, reruns_delay=4) # 失敗重跑該方法 def test_login(self): # 打開網址 Primary.driver.get(Config.URL) # 登陸操做 bool_success = LoginSystem(Primary.driver).login_system() if bool_success is False: pytest.fail("登陸失敗") @pytest.mark.dependency(depends=["Test_Login::test_login"]) # 依賴該方法 def test_join_apply(self): # 進入指定應用 Change_To_BusinessAndProject(Primary.driver).change_to_project_plug(project_name=Config.PROJECT, plug_name=Config.YANGCHEN_PLUGNAME, project_id=Config.PROJECTID)
2. 在不一樣模塊或者類中調用,如被依賴的方法在模塊A,類A中,依賴方法在B模塊,類B中,能夠在B類上depends=["test/模塊名A.py::類名A::方法名test_A"]進行依賴,若是依賴方法A失敗,B類中的方法都不會運行ci
在B類中的方法進行依賴操做一致get
@pytest.mark.dependency( depends=["test/test_Login.py::Test_Login::test_login"], scope='session' ) @pytest.mark.run(order=2) class B: