python+appium+pytest做app自動化測試

加个小鸡腿發表於2024-04-22

我在另一篇部落格中寫了使用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更加好用點

相關文章