Python接口自動化之ExtentHTMLTestRunner測試報告

  引言

  結合HTMLTestRunner作的改動,頁面內容拿的HttpRunnerManager中的測試報告模板(感謝HttpRunnerManager),HttpRunnerManager是直接將結果數據傳遞給報告,結合原HTMLTestRunner是在執行測試的同時將結果寫到測試報告中,功能還不夠完善,可是基本功能都已ok;模板地址:https://github.com/wishchen/ExtentHTMLTestRunnercss

  示例

from ExtentHTMLTestRunner import HTMLTestRunner


filename="/*/result.html"
fp=open(filename,'wb')

runner=HTMLTestRunner(
                      stream=fp,
                      title='自動化測試報告',
                      description='用例執行狀況:')

  

  在報告中展現截圖:html

  • 截圖須和html報告在同一目錄下;
  • 須要在對應的case中打印一下截圖名稱,截圖名稱以 screenshot_*.png 格式命名.
  • 報告須要的extent.js、extent.css可能下載不了,若是報告展現有問題多是這些資源沒有拿到,注意檢查下。

  案例講解

  項目結構:git

  

  方法1:

from ExtentHTMLTestRunner import HTMLTestRunner
import unittest

class InterfaceTest(unittest.TestCase):
    def test_1(self):
        print("測試")
        print("screenshot_baidu.png")

    def test_2(self):
        a = 1
        b = 2
        return  a*b
if __name__ == '__main__':
    suite = unittest.TestSuite()
    suite.addTest(unittest.makeSuite(InterfaceTest))

    filename="result22.html"
    fp=open(filename,'wb')

    runner=HTMLTestRunner(
                          stream=fp,
                          title='自動化測試報告',
                          description='用例執行狀況:')
    runner.run(suite)
    fp.close()

  運行結果:github

 

 

   第二條用例沒有輸出什麼,因此是空api

 

  方法2:

  項目結構和上面是同樣的,只是用例代碼不同:post

__author__ = 'Leo'

from ExtentHTMLTestRunner import HTMLTestRunner
import unittest,os,requests

# 獲取根目錄
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
# 獲取指定目錄test_case
TEST_CASE = os.path.join(BASE_DIR,"test_case")


class InterfaceTest(unittest.TestCase):
    def test_1(self):
        url = 'https://api.apiopen.top/getWangYiNews'
        data = {
            'page':1,
            'count':1
        }
        r = requests.post(url=url,data=data)
        print(r.text)
    def test_2(self):
        a = 1
        b = 2
        # Name and print in this format "screenshot_*.png" if you want to show screenshot in report.
        print("screenshot_baidu.png")
        return  a*b
if __name__ == '__main__':
    # suite = unittest.TestSuite()
    # suite.addTest(unittest.makeSuite(InterfaceTest))

    discover = unittest.defaultTestLoader.discover(TEST_CASE, pattern='test_002.py')

    filename="result.html"
    fp=open(filename,'wb')
    runner=HTMLTestRunner(
                          stream=fp,
                          title='自動化測試報告',
                          description='用例執行狀況:')
    runner.run(discover)
    fp.close()

  運行結果:學習

 

 

  第二條用例使用了截圖功能,如圖所示:測試

 

   總結:

  喜歡的朋友能夠學習一下,後面還能夠平臺化,另外對測試及測試開發感興趣的夥伴,能夠加入到咱們的學習溝通羣,一塊兒提高本身!ui

相關文章
相關標籤/搜索