一、Appium簡介
Appium是一個開源的跨平台自動化測試工具,支持iOS、Android平台以及Windows桌面應用程序。Appium官方網站:http://appium.io/
Appium的核心是WebDriver協議,利用它可以進行自動化測試,實現設備/模擬器的操作。Appium支持用任何一種編程語言編寫測試腳本,通過調用Appium提供的API,對應的腳本便可以進行自動化測試。
總體來說,使用Appium進行自動化測試有以下優點:
- 支持多種平台,例如iOS、Android平台;
- 不依賴於測試對象的實現技術;
- 可以基於多個測試框架,使用任何一種編程語言編寫測試腳本;
- 提供豐富的API,方便測試腳本的編寫。
二、Python和Appium的結合
Python是高級編程語言之一,它的設計目標是注重可讀性、簡潔明了。由於Python語言易於學習和使用,因此在自動化測試中應用非常廣泛。Python語言提供了完整的測試框架,例如unittest和pytest,它們可以使得測試腳本易於編寫和維護。
因此,Python和Appium的結合可以讓我們更加便捷地實現移動設備的自動化測試。Python語言提供了Appium庫,可以讓我們利用Python語言進行Appium自動化測試。
三、Python+Appium自動化測試實踐
1. 安裝Appium和Python環境
安裝Appium和Python環境是進行自動化測試的前提,這裡不再贅述。Appium安裝流程可以參考官方網站:http://appium.io/docs/en/about-appium/getting-started/?lang=en。Python安裝流程可以參考Python官方網站:https://www.python.org/downloads/。
2. 使用Python和Appium庫實現簡單的自動化測試
下面我們將通過一個簡單的示例,介紹如何使用Python和Appium庫實現自動化測試。在這個示例中,我們將通過Appium啟動Android模擬器,並打開Calculator(計算器)應用程序,在計算器中輸入兩個數字並進行相加,最後驗證計算器的輸出結果是否符合預期。
首先,我們需要準備好以下文件:
_test.py
chromedriver.exe
其中,_test.py是測試腳本文件,該腳本實現了上述自動化測試。chromedriver.exe是Google Chrome瀏覽器驅動程序,用於啟動Android模擬器。執行上述測試腳本之前,請確保已經安裝好Java環境,並將Google Chrome瀏覽器驅動程序放置到環境變量中。
下面是_test.py文件的具體代碼實現:
import unittest
from appium import webdriver
class TestCalculator(unittest.TestCase):
def setUp(self):
desired_caps = {
"platformName": "Android",
"deviceName": "Android Emulator",
"appPackage": "com.android.calculator2",
"appActivity": "com.android.calculator2.Calculator"
}
self.driver = webdriver.Remote("http://localhost:4723/wd/hub", desired_caps)
def tearDown(self):
self.driver.quit()
def test_addition(self):
first_num = self.driver.find_element_by_id("com.android.calculator2:id/digit_2")
first_num.click()
plus = self.driver.find_element_by_id("com.android.calculator2:id/op_add")
plus.click()
second_num = self.driver.find_element_by_id("com.android.calculator2:id/digit_3")
second_num.click()
equal = self.driver.find_element_by_id("com.android.calculator2:id/eq")
equal.click()
result = self.driver.find_element_by_id("com.android.calculator2:id/result")
self.assertEqual(result.text, "5")
if __name__ == "__main__":
unittest.main()
上面的代碼實現了以下功能:
- 啟動Appium並連接到Android模擬器;
- 打開Calculator應用程序;
- 在Calculator中輸入2+3=,並驗證結果是否正確。
在執行該測試腳本之前,請確保Appium已經啟動,並連接到Android模擬器。
3. 使用pytest實現Appium自動化測試
在上面的示例中,我們使用unittest框架實現了Appium自動化測試。但是,Python還提供了其他的測試框架,pytest就是其中之一。pytest是Python的一個成熟的測試框架,其特點包括易於編寫、讀取和維護測試用例。
下面是使用pytest框架的簡單示例。在該示例中,我們將通過Appium啟動Android模擬器,並打開Clock(時鐘)應用程序,驗證當前時間是否正確。
首先,我們需要準備好以下文件:
conftest.py
test_clock.py
其中,conftest.py文件用於配置Appium,test_clock.py文件用於編寫測試用例。
conftest.py文件的配置信息如下:
from appium import webdriver
def pytest_configure(config):
desired_caps = {
"platformName": "Android",
"deviceName": "Android Emulator",
"appPackage": "com.android.deskclock",
"appActivity": "com.android.deskclock.DeskClock"
}
config.driver = webdriver.Remote("http://localhost:4723/wd/hub", desired_caps)
test_clock.py文件中實現了一個簡單的測試用例:
def test_check_time(pytestconfig):
driver = pytestconfig.driver
hour_element = driver.find_element_by_id("com.android.deskclock:id/hours")
minute_element = driver.find_element_by_id("com.android.deskclock:id/minutes")
current_time = time.strftime("%H:%M")
expected_hour, expected_minute = current_time.split(":")
expected_hour = int(expected_hour)
expected_minute = int(expected_minute)
assert int(hour_element.text) == expected_hour
assert int(minute_element.text) == expected_minute
在這個測試用例中,我們查找了Clock應用中的小時和分鐘元素,獲取當前系統時間並比較應用程序中的元素與當前時間是否一致。
四、總結
本文詳細介紹了Python+Appium自動化測試的基礎知識,並通過一個簡單示例介紹了如何使用Python和Appium庫實現自動化測試。此外,我們還介紹了如何使用pytest框架實現Appium自動化測試。
通過Python和Appium的結合,我們可以很方便地進行移動設備的自動化測試。除此之外,Python語言提供了豐富的測試框架和應用庫,可以極大地提高測試腳本的編寫和維護效率。
原創文章,作者:LTYFS,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/333117.html