使用TestProject Python SDK創(chuàng)建移動(dòng)Appium測試
使用模擬器在Android上運(yùn)行移動(dòng)網(wǎng)絡(luò)測試
我將假設(shè)您已經(jīng)下載了Python SDK,已經(jīng)配置了代理和開發(fā)人員令牌,并且代理正在運(yùn)行。如果沒有,您可以在這篇文章中閱讀如何做。另外,我將假設(shè)您已經(jīng)創(chuàng)建并啟動(dòng)了運(yùn)行Android的模擬器。
讓我們以這個(gè)測試為例:
import pytestfrom appium import webdriverfrom tests.pageobjects.web import LoginPage, ProfilePagedef driver():desired_capabilities = {"udid": "emulator-5554","browserName": "chrome","platformName": "Android",}driver = webdriver.Remote(desired_capabilities=desired_capabilities)yield driverdriver.quit()def test_example_on_chrome_on_android(driver):LoginPage(driver).open().login_as("John Smith", "12345")profile_page = ProfilePage(driver)profile_page.update_profile("United States","Street name and number","[email protected]","+1 555 555 55",)assert profile_page.saved_message_is_displayed() is True
如您所定義的desired_capabilities,您可以在名稱為的模擬器上運(yùn)行此測試,該模擬器運(yùn)行Android。指定瀏覽器名稱(即)表示我們正在運(yùn)行移動(dòng)Web測試。emulator-5554chrome
要將這個(gè)Appium測試變成一個(gè)基于TestProject的測試,類似于基于Selenium的測試,您需要做的就是更改此import語句:
from appium import webdriver# 到from src.testproject.sdk.drivers import webdriver
另外:您不再需要運(yùn)行自己的Appium服務(wù)器,因?yàn)門estProject Agent可以為您充當(dāng)Appium服務(wù)器!
運(yùn)行此測試時(shí),它將在您的Android模擬器上啟動(dòng)Chrome瀏覽器并運(yùn)行該測試:

測試完成執(zhí)行后,SDK將報(bào)告發(fā)送到代理,代理將依次在TestProject平臺上創(chuàng)建新的測試報(bào)告:

使用真實(shí)設(shè)備在iOS上運(yùn)行本機(jī)應(yīng)用測試
如您先前所讀,TestProject Python SDK同時(shí)支持Android和iOS。讓我們看一個(gè)示例測試,該示例測試在真實(shí)iPhone上運(yùn)行的本機(jī)iOS應(yīng)用程序:
import pytestfrom src.testproject.sdk.drivers import webdriverfrom tests.pageobjects.android import LoginPage, ProfilePagedef driver():desired_capabilities = {"udid": "" ,"deviceName": "iPhone van Bas","browserName": "","platformName": "iOS","bundleId": "io.testproject.Demo",}driver = webdriver.Remote(desired_capabilities=desired_capabilities)yield driverdriver.close_app()driver.quit()def test_example_on_native_ios_app(driver):LoginPage(driver).login_as("John Smith", "12345")profile_page = ProfilePage(driver)profile_page.update_profile("United States","Street name and number","[email protected]","+1 555 555 55",)assert profile_page.saved_message_is_displayed() is True
沒有指定瀏覽器desired_capabilities,這表示此測試是針對本機(jī)應(yīng)用程序運(yùn)行的。以下是在測試執(zhí)行過程中使用的實(shí)際iOS設(shè)備的屏幕截圖:

fact?有趣的事實(shí):此處使用的iOS設(shè)備已連接到Windows計(jì)算機(jī)!通過TestProject,您可以在iOS設(shè)備上運(yùn)行測試,而無需運(yùn)行macOS或XCode,也無需自己運(yùn)行Appium服務(wù)器。
正如我們在發(fā)送到TestProject的報(bào)告中看到的那樣,該測試也通過了:

如您所見,使用TestProject Python SDK(或 ??Java或C#?SDK),您可以輕松地將現(xiàn)有基于Appium的測試轉(zhuǎn)換為TestProject驅(qū)動(dòng)的測試,無論它們是用于Android還是iOS,都可以使用仿真器或真實(shí)設(shè)備,在macOS,Linux和Windows上測試移動(dòng)Web或本機(jī)應(yīng)用程序。

