我在另一篇部落格中寫了使用unittest做app自動化測試的,包含了前期的環境的環境搭建,請參考如下連結:python+appium+unittest做app自動化測試
這裡,我們使用pytest框架再改寫一個版本,因為pytest做測試報告看著更加好看,程式碼改良如下:
from appium import webdriver import pytest @pytest.fixture(scope='session') def driver(request): server_url = 'http://localhost:4723/wd/hub' desired_caps = {} desired_caps['platformName'] = 'Android' desired_caps['platformVersion'] = '8.1.0' desired_caps['deviceName'] = '2c7c688a' desired_caps['appPackage'] = 'com.hhh.aaa.xxx.test' # 應用的包名 desired_caps['appActivity'] = 'com.hhh.aaa.xxx.test.MainActivity' # 應用的主Activity driver = webdriver.Remote(server_url, desired_caps) def fin(): driver.quit() request.addfinalizer(fin) return driver def test_find_and_click_element(driver): button = driver.find_element_by_id('com.hhh.aaa.xxx.test:id/apiCastBtn') button.click()
這裡需要安裝pytest,命令列下執行pip install pytest,如果出現報錯,可嘗試使用管理員許可權開啟cmd,執行pip install --ignore-installed pytest,生成測試報告,需要執行pip install pytest-html
上面的python程式碼儲存為檔案appiumtest.py,執行:
pytest --html=report.html appiumtest.py
當前路徑下生成了report.html檔案,內容如下:
對比unittest,看著還是pytest更加好用點