Nodejs中ES Modules如何操作運用?
阿新 • • 發佈:2020-09-19
如果想要做多終端測試,肯定要用到引數化,如何做引數化?首先得了解它的函式。
@pytest.fixture
作用域scope預設是函式,params是可選的引數列表,fixture函式呼叫該引數列表執行
@pytest.fixture(scope='module',params=[(4723,'xiaomi'),(4727,'meizu')])
(4723,'xiaomi'),(4727,'meizu')裡面每組引數都要獨立執行一次測試
fixture函式的名稱可以放在後面引用,在執行測試之前呼叫:test,模組或類可以使用pytest.mark.usefixtures(固定名稱)
yield 的函式被稱為生成器(generator)
每次遇到 yield 時函式會暫停並儲存當前所有的執行資訊,返回 yield 的值, 並在下一次執行 next() 方法時從當前位置繼續執行。
呼叫一個生成器函式,返回的是一個迭代器物件。
#演示pytest引數化 import pytest #重新定義初始化清除函式 @pytest.fixture(scope='module',params=[(4723,'xiaomi'),(4727,'meizu')]) def before_test_module(request): port=request.param[0] #取元組的第一個元素作為引數 device=request.param[1]print("準備") print(f'==========在{device}手機啟動被測應用=============') print(f'連線appium服務埠號:{port}') yield #簡單理解為會呼叫後面這個函式,也可以在yield後面寫print清除 after_test_module()
#清除函式 def after_test_module(): print('關閉被測app') print(f'斷開appium服務') #假如這是不同密碼登入的測試函式,psw為引數名,['123','456']為引數值,每組引數都獨立執行一次測試#也可以理解為引數化後,你的同一個測試用例用不同的引數值去執行。 @pytest.mark.usefixtures('before_test_module') #使用某個初始化函式 @pytest.mark.parametrize('psw',['123','456']) #測試用例引數化 def test_app(psw): print(f'使用不同的密碼{psw}登入') if __name__ == '__main__': pytest.main(['pytest_parameter.py','-s'])