原文鏈接
如果你是Java棧的同學,那麼你可能知道extent report測試報告框架。而Python你可能知道HTMLTestRunner測試報告框架。今天要介紹的則是基於HTMLTestRunner的新測試報告框架PyTestReport。
如果Python語言界已經有了HTMLTestRunner
,那麼爲什麼還要一個PyTestReport
測試框架呢?原因很簡單,因爲與Extent Report
框架相比,HTMLTestRunner
在界面的優越性上面還是有不少的差距,而PyTestReport
則意在成爲Python語言中的Extent Report
。
開局一張圖
這個就是PyTestReport
的默認主題模板,雖然看上去跟Extent Report
的衆多模塊相比,還是稍有遜色顯得不是很專業。但是這並不影響我們介紹這款框架,因爲它在基於HTMLTestRunner
進行改良之後開始支持模板擴展了,也就是說將來它可以擁有和Extent Report
同步樣式的報告模板。
所以如果你對此框架還有興趣,就一起來看下如果快速的使用和擴展該框架的主題模板。如果你具有較好的CSS功底,那麼歡迎來爲我們的主題模板舔磚加瓦_!開源合作相關請點擊PyTestReport的github地址查看詳情。
安裝
通過pip安裝
pip install PyTestReport
通過安裝包
可通過發佈的安裝包進行安裝,具體安裝包可在dist目錄查找。
pip install PyTestReport-0.1.X-py3-none-any.whl
通過源碼(最新版本)
pip install git+https://github.com/five3/PyTestReport.git
或者
git clone https://github.com/five3/PyTestReport.git
cd PyTestReport
python setup.py build
python setup.py install
使用
PyTestReport可用通過多種方式運行,分別如下:
- 單元測試
- lib庫引入(後續支持)
- 命令行(後續支持)
- REST API(後續支持)
單元測試使用樣例
import unittest
import pytestreport
class MyTest(unittest.TestCase):
def testTrue(self):
self.assertTrue(True)
if __name__ == '__main__':
pytestreport.main(verbosity=2)
以這種方式執行之後,默認會在當前文件夾下生成一個PyTestReport.html
日誌文件,且這個文件名和樣式模板都不可以重新指定的。
注意:這種方式執行時,如果使用Pycharm等IDE,確保不是以IDE的內建單元測試框架來執行的;或者直接通過命令行來執行。
import unittest
from pytestreport import TestRunner
class MyTest(unittest.TestCase):
def testTrue(self):
self.assertTrue(True)
if __name__ == '__main__':
suite = unittest.TestSuite()
suite.addTests(unittest.TestLoader().loadTestsFromTestCase(MyTest))
with open(r'/path/to/report.html', 'wb') as fp:
runner = TestRunner(fp, title='測試標題', description='測試描述', verbosity=2)
runner.run(suite)
這種方式適合批量加載和執行測試用例,從測試文件的外部來導入測試用例並執行。這裏可以指定具體的結果文件路徑和測試標識等信息。
這裏使用的是默認模板主題,如果想要使用其它模板主題,可以通過制定模板的主題文件來實現。比如:使用遺留模板的方式如下所示。
from pytestreport import TestRunner
...
runner = TestRunner(fp, title='測試標題', description='測試描述', verbosity=2,
htmltemplate='legency.html', stylesheet='legency.css', javascript='legency.js')
附錄
獲取更多關於Python和自動化測試的文章,請掃描如下二維碼!