顏值爆表的 UI 測(cè)試報(bào)告 - ptest

起源

這是一場(chǎng)意外

話說(shuō)筆者某天閑著沒(méi)事,也正巧剛啃完 Python & Selenium ,于是漫無(wú)目的地在網(wǎng)上搜索著技術(shù)相關(guān)文章。搜著搜著搜到了一個(gè)開源的報(bào)告生成庫(kù),這時(shí),一幅精美的報(bào)告映入了我的眼簾...

初識(shí) ptest

精美報(bào)告在此:

image

當(dāng)我看到這個(gè)報(bào)告的一瞬間,心中小鹿亂撞,沒(méi)想到從沒(méi)經(jīng)歷過(guò)的一見鐘情 ( 臉 ) 竟會(huì)發(fā)生在我身上。

image

零距離接觸

于是乎內(nèi)心火熱的我找到了此項(xiàng)目的開源地址,進(jìn)行了一次零距離的接觸......

安裝

依然是萬(wàn)年不變的 pip install 大法:

pip install ptest==1.9.5

最佳實(shí)踐

這里我使用了自己開發(fā)的 violent-webdriver 庫(kù)進(jìn)行 selenium 二次封裝,所以需要再來(lái)一次 pip install 大法:

pip install violent-webdriver==1.0.27

然后我們可以開始擼代碼拉~

首先我們新建一個(gè) Python 文件,名為 uitest.py,并寫入下列 核心代碼~

核心代碼

from ptest.decorator import TestClass, Test, BeforeClass, AfterClass
from ptest.assertion import assert_true
from ptest.plogger import preporter
# from selenium.webdriver.chrome.options import Options
from violent_webdriver import Chrome

# chrome驅(qū)動(dòng)地址,請(qǐng)自行修改
CHROMEDRIVER_PATH = 'C://MyDownloads/Download/chrome-win32/chromedriver.exe'

# 還是按照慣例拿百度開測(cè)
TEST_URL = 'https://www.baidu.com'

@TestClass(run_mode="singleline")
class BaiduTest:

    # 初始化Chrome
    @BeforeClass(description='啟動(dòng)瀏覽器')
    def before(self):
        self.driver = Chrome.violent_chromedriver(CHROMEDRIVER_PATH)
        self.driver.set_window_size(1920, 1080)
        self.driver.implicitly_wait(10)
    
    # 測(cè)試執(zhí)行
    @Test(tags=["regression", "smoke"], timeout=60, description="驗(yàn)證百度首頁(yè)的title中是否包含「百度一下」字符串")
    def BaiduTest_001(self):
        self.driver.get(TEST_URL)
        title_text = self.driver.title
        preporter.info('已進(jìn)入百度首頁(yè)并獲取頁(yè)面title,title值為: 「%s」' % title_text, screenshot=True)
        assert_true('百度一下' in title_text)

    # 關(guān)閉資源
    @AfterClass(timeout=10, description='關(guān)閉瀏覽器')
    def after(self):
        self.driver.quit()

代碼講解

沒(méi)錯(cuò),我們還是拿百度做實(shí)驗(yàn) :) , 代碼執(zhí)行過(guò)程非常簡(jiǎn)單:

  • 初始化瀏覽器
  • 登錄百度首頁(yè)
  • 獲取百度首頁(yè)標(biāo)題
  • 校驗(yàn)百度首頁(yè)標(biāo)題是否為 百度一下
  • 關(guān)閉瀏覽器

再介紹一下 ptest 框架中獨(dú)有的裝飾器~

  • @TestClass 代表測(cè)試類
  • @BeforeClass 代表在執(zhí)行測(cè)試類中用例的前置步驟 ( 如:初始化瀏覽器等...... )
  • @Test 代表一個(gè)測(cè)試用例的具體執(zhí)行過(guò)程 ( 如:訪問(wèn)測(cè)試地址、獲取頁(yè)面標(biāo)題、斷言等......)
  • @AfterClass 則常用于測(cè)試類運(yùn)行完畢后的清理工作 ( 如:關(guān)閉瀏覽器等...... )

運(yùn)行效果

代碼擼完后在當(dāng)前目錄下直接運(yùn)行:

ptest3 -t uitest

代碼運(yùn)行完畢后將在當(dāng)前目錄下生成測(cè)試報(bào)告,打開后如下所示:

image
image

嗯,沒(méi)錯(cuò),是我喜歡的模樣。

總結(jié)

一個(gè)好看的報(bào)告將會(huì)帶來(lái)一天的好心情~

希望大家能從本篇文章有所收獲~

最后給大家推薦一下我的公眾號(hào) 「智能測(cè)試開發(fā)」,歡迎大家掃描下方海報(bào)二維碼領(lǐng)取 進(jìn)階教程~

image
image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容