美文网首页
填坑HTMLTestRunner

填坑HTMLTestRunner

作者: Jude_h | 来源:发表于2021-02-16 21:09 被阅读0次

    总结下使用HTMLTestRunner过程中遇到的一些问题,方便之后回溯。库的二次修改,报告展示出不同的样式还未进行。仅库的版本使用方面简单记录下。发现2个版本在生成的html文件名方面也有点小区别,HtmlTestRunner如需自定义时间戳格式等加到文件名中需手动去修改源码库,而HTMLTestRunner可以直接在外部直接定义格式,版本如下

    1、版本1:HTMLTestRunner

    下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html,选择 HTMLTestRunner.py打开右键保存到site-packages目录下。文件名为HTMLTestRunner.py。python3.7以上需要修改下载的包文件内容,修改点如下:

    
    第94行,将import StringIO修改成import io
    第539行,将self.outputBuffer = StringIO.StringIO()修改成self.outputBuffer = io.StringIO()
    第642行,将if not rmap.has_key(cls):修改成if not cls in rmap:
    第766行,将uo = o.decode('latin-1')修改成uo = e
    第775行,将ue = e.decode('latin-1')修改成ue = e
    第631行,将print >> sys.stderr, '\nTime Elapsed: %s' % (self.stopTime-self.startTime)修改成print(sys.stderr, '\nTime Elapsed: %s' % (self.stopTime-self.startTime))
    
    

    行数可能不太一样,搜索下内容替换就行。
    调用方式:

        fp = open(report_abspath, "wb")
        runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title=title)
        runner.run(all_case())
        fp.close()
    
    2、版本2:HtmlTestRunner

    选择pip install安装:pip intall html-testRunner
    使用方式:

    • 结合unittest使用,用例使用测试套件的方式传入,更灵活
    import HtmlTestRunner
    import unittest
    
    tc1 = unittest.TestLoader().loadTestsFromTestCase(AddRole)
    tc2 = unittest.TestLoader().loadTestsFromTestCase(SelectEmp)
    tc3 = unittest.TestLoader().loadTestsFromTestCase(DelEmp)
    
    if __name__ == '__main__':
        unittest.main(testRunner=HtmlTestRunner.HTMLTestRunner(output='..\\reports\\'))
        myTestSuits = unittest.TestSuite([tc1, tc2, tc3])
        unittest.TextTestRunner(verbosity=3).run(myTestSuits)
    
    • 结合discover使用。用例使用正则匹配再批量传入
    title = u"xxxxxx"
    
    def all_case():
        """导入所有的用例"""
        case_path = os.getcwd()
        discover = unittest.defaultTestLoader.discover(case_path,
                                                       pattern="Test*.py")
    
    if __name__ == "__main__":
        runner = HtmlTestRunner.HTMLTestRunner(report_title=title,output='.\\reports\\')
        runner.run(all_case())
    

    问题1:title参数若赋值中文,报告显示中文乱码。
    解决:修改result.py文件,open()中添加encoding='utf-8'
    问题2:报告view按钮不可点击。
    原因:jquery未加载成功
    报告默认加载谷歌jquery,替换为其他源的(百度等),相关位置替换html代码:

    https://swisnl.github.io/jQuery-contextMenu/demo.html
    https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js
    ...
    
    3、报告样式

    HTMLTestRunner

    image.png

    HtmlTestRunner

    image.png
    4、库的二次修改,自定义报告样式

    待更新...
    二次修改类似报告样式:


    image.png

    综合来看感觉还是allure报告更加好看。集合的功能也越多。

    相关文章

      网友评论

          本文标题:填坑HTMLTestRunner

          本文链接:https://www.haomeiwen.com/subject/kikbxltx.html