1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        TestProject Python SDK入門

        共 3706字,需瀏覽 8分鐘

         ·

        2020-08-01 02:58

        使用TestProject Python SDK,您可以使用TestProject平臺的功能執(zhí)行Selenium和Appium測試。這意味著您將受益于HTML和PDF中的自動測試報(bào)告,Selenium瀏覽器驅(qū)動程序的自動更新和配置,協(xié)作報(bào)告儀表板,以及更多其他功能。


        安裝TestProject Python SDK

        TestProject Python SDK是100%免費(fèi)和開源的,并以PyPI軟件包的形式提供。您可以使用pip安裝軟件包:

        pip install testproject-python-sdk

        這將安裝SDK及其依賴項(xiàng)。為了防止項(xiàng)目之間的版本沖突,建議使用虛擬環(huán)境來開發(fā)測試。

        像所有TestProject SDK一樣,Python SDK使用TestProject Agent執(zhí)行測試。該代理負(fù)責(zé)瀏覽器驅(qū)動程序的安裝和配置以及發(fā)送TestProject平臺的報(bào)告。

        默認(rèn)情況下,SDK將通過其默認(rèn)地址http://localhost:8585與代理進(jìn)行通信。如果要在其他端口甚至是完全不同的計(jì)算機(jī)上運(yùn)行代理,則可以通過將環(huán)境變量設(shè)置為正確的地址來配置TP_AGENT_URL正確的地址。

        配置您的開發(fā)者令牌

        要與代理進(jìn)行通信,您需要開發(fā)者令牌。您可以通過從https://app.testproject.io/#/integrations/sdk獲取令牌,并使用令牌值設(shè)置環(huán)境變量來配置SDK以使用它TP_DEV_TOKEN。

        創(chuàng)建您的第一個(gè)測試

        在安裝和設(shè)置SDK之后,是時(shí)候開始編寫我們的第一個(gè)測試?

        from src.testproject.sdk.drivers import webdriver src.testproject.sdk.drivers import webdriver
        def simple_test():def simple_test(): driver = webdriver.Chrome()= webdriver.Chrome()
        driver.get("https://example.testproject.io/web/").get("https://example.testproject.io/web/")
        driver.find_element_by_css_selector("#name").send_keys("John Smith").find_element_by_css_selector("#name").send_keys("John Smith") driver.find_element_by_css_selector("#password").send_keys("12345").find_element_by_css_selector("#password").send_keys("12345") driver.find_element_by_css_selector("#login").click().find_element_by_css_selector("#login").click()
        passed = driver.find_element_by_css_selector("#logout").is_displayed()= driver.find_element_by_css_selector("#logout").is_displayed()
        print("Test passed") if passed else print("Test failed")print("Test passed") if passed else print("Test failed")
        driver.quit().quit()

        if __name__ == "__main__":if __name__ == "__main__": simple_test()()

        如果您已經(jīng)熟悉用Python開發(fā)基于Selenium的測試,那么這些代碼應(yīng)該不難理解。讓我們運(yùn)行它,看看會發(fā)生什么!但首先,請確保您的TestProject代理正在運(yùn)行。?

        運(yùn)行測試

        假設(shè)我們剛才看到的示例測試駐留在名為的Python模塊中。由于使用使該模塊可運(yùn)行,因此我們只需執(zhí)行以下命令即可運(yùn)行此測試:web_test.pyif?__name__?==?__main__

        python?web_test.py

        這將從TestProject代理請求一個(gè)Chrome驅(qū)動程序?qū)嵗?,運(yùn)行測試并將結(jié)果報(bào)告給TestProject平臺。如果您正確配置了開發(fā)人員令牌和代理地址,您將在控制臺中看到以下輸出,表明我們的測試已成功執(zhí)行:

        <...>Test passed2020-07-13 09:30:03,884 INFO Connection to Agent at http://127.0.0.1:8585 closed successfully
        Process finished with exit code 0

        讓我們看一下生成的報(bào)告。

        檢查測試報(bào)告

        TestProject代理將自動將您的測試結(jié)果報(bào)告發(fā)送給TestProject平臺。如果您轉(zhuǎn)到https://app.testproject.io/#/reports,則會看到一個(gè)名為“?未命名項(xiàng)目?”的項(xiàng)目

        如果單擊此按鈕,則將看到與此項(xiàng)目關(guān)聯(lián)的測試運(yùn)行的概述。這將包含一個(gè)名為“?web_test?”的作業(yè)(該作業(yè)名稱是自動從Python模塊名稱派生的)和一個(gè)通過的測試名為“ simple_test?”(測試名稱是從測試方法名稱中自動派生的):

        如您所見,該測試被標(biāo)記為已通過,并且瀏覽器驅(qū)動程序?qū)嵗龍?zhí)行的所有單個(gè)操作都直接報(bào)告給右側(cè),無需額外配置!

        TestProject Python SDK為您提供了多種自定義報(bào)告的選項(xiàng)。我們將在后續(xù)文章中詳細(xì)介紹這些內(nèi)容(即將發(fā)布?。?/span>不過,值得一提的是,輸入密碼字段的值會自動刪除,如您在報(bào)告的第5步中所見。如果需要,也可以關(guān)閉此功能。您將很快在有關(guān)報(bào)告的文章中看到。?

        支持的單元測試框架

        當(dāng)前,TestProject Python SDK支持unittestpytest單元測試框架。如果您已經(jīng)有基于unittest?pytest?的Selenium測試,將它們轉(zhuǎn)換為TestProject驅(qū)動的測試非常容易。

        讓我們看一下這個(gè)基于pytest?的示例。順便說一下,對于unittest?,該過程是完全相同的

        from selenium import webdriverfrom tests.pageobjects.web import LoginPage, ProfilePagedef test_example_using_chrome():    driver = webdriver.Chrome()    LoginPage(driver).open().login_as("John Smith", "12345")    assert ProfilePage(driver).greetings_are_displayed() is True    driver.quit()

        假設(shè)您已將TestProject SDK添加為項(xiàng)目的依賴項(xiàng),并且已按照本文前面的說明配置了代理和開發(fā)人員令牌,則只需更改此import語句即可:

        from selenium import webdriver#?from src.testproject.sdk.drivers import webdriver

        假設(shè)該測試是example_test名為的軟件包中模塊的一部分tests如果使用以下命令運(yùn)行此測試:

        pytest tests\example_test.py

        并再次轉(zhuǎn)到TestProject報(bào)告頁面,您將看到如下所示的報(bào)告:

        SDK?分別從測試方法名稱和程序包名稱自動導(dǎo)出了測試名稱('?test_example_using_chrome')和作業(yè)名稱('?example_test?'?)。另外,如果您使用的是pytest?unittest?,SDK還將根據(jù)測試模塊所在的軟件包自動推斷項(xiàng)目名稱。如果您愿意,也可以自定義項(xiàng)目,作業(yè)和測試名稱。您很快就會在報(bào)告文章中看到如何做到這一點(diǎn)。

        推薦閱讀


        瀏覽 81
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評論
        圖片
        表情
        推薦
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            自慰网址 | 美女露胸露尿口 | 日本99热| 欧美成人做爱视频网站 | 影音先锋成人资源在线 | yin娃sao货调教情趣用品店 | 泰国同性男男gayxxxxx | 西西人体大胆瓣开腿自慰 | 处一女一级c一片 | 嗯~用力啊~嗯~c我~视频 |