zoukankan      html  css  js  c++  java
  • selenium2学习:单元测试框架(5):html测试报告

    1.1     html测试报告

    1.1.1      下载HTMLTestRunner

    下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html

    将下载下的HTMLTestRunner.py存放在python安装目录下的lib中,如下图

     

    1.1.2      配置HTMLTestRunner

    由于 HTMLTestRunner.py 是基于python2开发的,需对 HTMLTestRunner.py 文件进行修改。

    1. 94行

    mport StringIO 改为import io。

    1. 539行

    self.outputBuffer = StringIO.StringIO() 改为self.outputBuffer = io.BytesIO()

    1. 631行

    print >>sys.stderr, ' Time Elapsed: %s' % (self.stopTime-self.startTime)改为

    print (sys.stderr, ' Time Elapsed: %s' % (self.stopTime-self.startTime))

    1. 642行

    if not rmap.has_key(cls): 改为 if not cls in rmap:

    1. 766行

    uo = o.decode('latin-1') 改为 uo=o

    1. 772行

    ue = e.decode('latin-1') 改为 ue = e

    1.1.3      编辑执行文件

    执行的文件依然是计算文件,同7.3.4的py文件一样,均对runtest文件进行修改,修改结果如下:

     runtest:htmlRPT.py

    import unittest
    from HTMLTestRunner import HTMLTestRunner
    import time
    
    #定义测试用例的目录为当前目录
    test_dir = './'
    discover = unittest.defaultTestLoader.discover(test_dir, pattern='test*.py')
    
    if __name__ == '__main__':
        now = time.strftime("%y%m%d-%H%M%S")
        filename = test_dir + '/' + 'Report_' + now + '.html'
        fp = open(filename,'wb')
        runner = HTMLTestRunner(stream=fp,  #stream指定测试报告文件
                                title='计算器测试报告',   #测试报告标题
                                description='用例执行情况如下:')  #副标题
    
        runner.run(discover)

    1、  添加导入文件

    from HTMLTestRunner import HTMLTestRunner

    2、  避免每次执行每次报告被覆盖,因此将报告名字中含有当前时间

    now = time.strftime("%y%m%d-%H%M%S")

    将当前时间按年月日-时分秒的形式显示并赋值给now这个变量

    filename = test_dir + '/' + 'Report_' + now + '.html'

    报告名字为当前目录下:report时间.html

    3、  为了保证报告清晰易懂,建议将被执行的文件中的类和方法均使用’’’……’’’注释说明,因为’’’……’’’为doc string类型的注释,在平时调用的时候不显示,但HTMLTestRunner 却可以成功读取。如下图:

     test_add.py

    #0517008:suite:add
    
    from calculator import count
    import unittest
    
    class testadd(unittest.TestCase):
        '''加法计算'''
        def setUp(self):
            print('Test add Start')
            
        def tearDown(self):
            print('Test add Over')
    
        def test_add1(self):
            '''加法计算1:成功'''
            j = count(2,3)
            self.assertEqual(j.add(),5,msg= '加法2+3=5:错了1')
    
        def test_add2(self):
            '''加法计算2:失败'''
            j = count(3,3)
            self.assertEqual(j.add(),5,msg= '加法3+3=5:错了2')
    
    if __name__ == '__main__':
        unittest.main()
            

    1.1.4      执行结果

     

    点击detail可查看类下所有方法执行情况,点击fail,可查看失败的原因。

     
  • 相关阅读:
    正则表达式 \n和\r
    【转】单循环赛赛程安排算法研究
    Iterator效率
    Map获取键值
    PL/SQL语法详解(pdf)
    Iterator模式
    测试js函数的静态页面
    【转】java的一些基本概念
    Oracle 11g用户解锁
    oracle官方文档
  • 原文地址:https://www.cnblogs.com/jxba/p/9060038.html
Copyright © 2011-2022 走看看