1.unittest框架
class TestStringMethods(unittest.TestCase):
? ? def setUp(self) -> None: ?# 每一條測試用例開始前執行
? ? ? ? print("setup")
?
? ? def tearDown(self) -> None: ?# 每一條測試用例結束后執行
? ? ? ? print("teardown")
?
? ? @classmethod
? ? def setUpClass(cls) -> None: ?# 此類的所有測試執行前執行一次
? ? ? ? print("setupcls")
?
? ? @classmethod
? ? def tearDownClass(cls) -> None: ?# 此類的所有測試執行后執行一次
? ? ? ? print("teardowncls")
2.pytest框架
setup_class、teardown_class
該方法表示在類中執行測試用例前,只執行1次測試前置和測試后置
setup_method、teardown_method
該方法表示在類中每次執行測試用例前,測試前置和測試后置都會執行一次
setup_function、teardown_function
該方法表示在類外面執行用例過程中,每次都會執行前置和后置。
setup_module、teardown_module
該方法表示只能類外面執行用例過程中,只執行1次。相當于unittest中的setupclass和teardownclass方法
setup、teardown
先介紹第一個大家都比較熟悉的與unittest中的書寫一直,這個可以在類中使用,也可以在類外進行使用。
該方法每條用例都會執行
本文就采用的pytest框架,基于類封裝啟動移動端應用進行用例測試
class driver_base_class():
@classmethod
def setup_class(cls)-> None:
cls.desired_caps = {
"appPackage": "plus.H5EA2E279",
"platformName": "Android",
"deviceName": "cb5c2f8f",
"appActivity": "io.dcloud.PandoraEntry",
"skipServerInstallation": "false"
}
with warnings.catch_warnings():
warnings.filterwarnings("ignore", category=DeprecationWarning)
cls.driver = webdriver.Remote('http://localhost:4723/wd/hub', cls.desired_caps) # 啟動app
@classmethod
def teardown_class(cls)-> None:
cls.driver.quit()
在測試用例類中集成上面封裝好的啟動應用類的方法
class Test_login(driver_base_class):
? ? ? ?"""編寫測試用例""""
在終端使用?pytest -v test_login.py --alluredir=../reports 即在測試用例中啟動測試用例即可