Appium使用HTMLTestRunner生成測試報告


1、python學習環境:python3.5,python3的環境需要修改HTMLTestRunner.py 文件中的部分代碼。若是在python2.7環境下就直接到HTMLTestRunner 官網上下載即可,不需做任何修改。
IDE:pycharm
2 HTMLTestRunner原理:代替unittest的TextTestRunner功能,使測試結果以測試報告的方式展示,方便查看。
3、HTMLTestRunner.py文件的結構:
class OutputRedirector(object)
# 將輸出進行重定向

class Template_mixin(object)
# 定義生成HTML結果文件所需要的模板。
# 如果我們想改變HTML的格式等待,可以在這里進行改動

class _TestResult(TestResult)
# 定義繼承自 unittest.TestResult 的 類。
# 這里重寫了 unittest.TestResult 的多個方法,比如 startTest(self, test) 等等

class HTMLTestRunner(Template_mixin)
# 這里可以說是使用 HTMLTestRunner.py 的入口。定義了多個我們可以看到的方法,比如 run(self, test)

class TestProgram(unittest.TestProgram)
# 這里繼承自 unittest.TestProgram 類,重寫了 runTests 方法。
# 用於命令行執行測試

4、步驟:A、將HTMLTestRunner放入F:\python\Lib目錄中,在pycharm中import一下看是否成功;B、main函數中的寫法

if __name__ == '__main__':
    cases_MyTestCase = unittest.TestLoader().loadTestsFromTestCase(MyTestCase)
    cases_my_testRunner = unittest.TestLoader().loadTestsFromTestCase(my_testRunner.TestOne)
    suite = unittest.TestSuite([cases_MyTestCase, cases_my_testRunner])
    suite.addTest(my_testRunner.TestOne('test_2'))
    now = time.strftime('%Y-%m-%d_%H-%M-%S', time.localtime(time.time()))
    fp = open(now + 'Result.html', 'wb')
    runner = HTMLTestRunner.HTMLTestRunner(stream=fp, verbosity=2, title='Test Report', description=u'Result:')
    runner.run(suite)
    print(now)
    fp.close()
5、學習過程中遇到的坑:
A、直接點右鍵運行結束后沒有報異常,但就是沒有生成測試報告,為什么?
原因:點右鍵運行或點右上角的運行按鈕或ctrl+shift+F10都運行的是編譯器自帶的unittest in xxx.py,所以需要按Alt+shift+F10,選擇xxx來運行,這樣就是從自己的main入口開始執行
B、時間的模板需要用下划線或橫杠,加空格或冒號時編譯器就會報錯
C、測試報告生成了,但是打開是空的,這是為什么?
若打開文件沒有使用with方法,則需要在最后調用fp.close()函數將文件關閉,這樣才會寫入最后的測試結果。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM