美文网首页测试进阶课
HTMLTestRunner自动生成测试报告

HTMLTestRunner自动生成测试报告

作者: Xyxtank | 来源:发表于2019-07-12 09:26 被阅读15次

    一、下载安装HTMLTestRunner

    对于测试人员来而言,测试工作一般不容易评价,也就是说测试人员工作的价值不好衡量,测试需要一个展示成果的平台或者工具,而漂亮的测试报告就是这样一个衡量测试成果的工具。HTMLTestRunner易于生成HTML测试报告,它是Python标准库的unittest模块的扩展。

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

    这个扩展非常简单,只有一个HTMLTestRunner.py文件。安装也非常的简单,只需要将其复制到python安装目录下即可。若不知道python的安装目录,可以通过命令来快速查询,方法如下所示:

    二、怎么查看python的安装路径

    1、在windows系统下,用cmd命令就可以查看python路劲

    where python
    

    2、在linux系统下,首先打开终端,输入python命令,进入python的交互模式,通过sys.path可以查看到python的安装目录

    sys.path
    

    3、找到python的安装路径后,再把HTMLTestRunner.py文件复制到指定目录下即可。

    三、修改HTMLTestRunner.py

    为什么要修改HTMLTestRunner.py呢?这是由于HTMLTestRunner.py是基于python2开发,为了使其支持python3的环境,需要对其内容进行部分修改。首先通过编辑器打开HTMLTestRunner.py文件。

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

    四、生成HTML测试报告实战

    这里以打开百度,并输入查询数据为例,进行自动化测试,最终生成测试报告。首先要配置好chromedriver环境,然后再利用python第三方库selenium进行ui自动化测试。

    1、配置chromedriver路径

    chromedriver.exe下载地址:http://chromedriver.storage.googleapis.com/index.html

    将下载好的chromedriver.exe放在C:\Program Files (x86)\Google\Chrome\Application路径下,并配置好环境变量:

    右键点击我的电脑----->属性--->高级系统设置---->环境变量------>在path路径下添加上文中浏览器“C:\Program Files (x86)\Google\Chrome\Application”

    或者在脚本中注明浏览器驱动的位置

    driver_path = r'D:\python\chromedriver.exe'
    self.driver = webdriver.Chrome(executable_path=driver_path)
    

    2、自动化测试实例

    from selenium import webdriver
    import unittest
    from HTMLTestRunner import HTMLTestRunner
    import time
    
    class Baidu(unittest.TestCase):
        def setUp(self):
            '''测试准备工作'''
            self.driver = webdriver.Chrome()#初始化浏览器,注意要配置Chromedriver路径,比如:将chrome.exe放在C:\Program Files (x86)\Google\Chrome\Application路径下
            self.driver.maximize_window()
            self.driver.implicitly_wait(10)#隐形等待,隐形等待时我们不会感觉到真的过了10秒,它会等到当前页面元素加载完毕。
            self.base_url = 'https://www.baidu.com/'
    
        def test_baidu_search(self):
            '''测试百度搜索'''
            self.driver.get(self.base_url)
            self.driver.find_element_by_id('kw').clear()
            self.driver.find_element_by_id('kw').send_keys('测试工程师')
            self.driver.find_element_by_id('su').click()
            time.sleep(1)# 显性等待,会明显感觉到程序等待的时间长度,比如:time.sleep(2),会明显感觉程序等待了2秒钟。
    
        def tearDown(self):
            '''资源释放'''
            self.driver.quit()
    
    if __name__ == '__main__':
        testunit = unittest.TestSuite()#初始化测试用例集合对象,构建测试套件
        testunit.addTest(Baidu("test_baidu_search"))#把测试用例加入到测试用力集合中去,将用例加入到检测套件中
        fp = open('./result.html','wb')#定义测试报告存放路径
        runner = HTMLTestRunner(stream=fp,title='百度搜索测试报告',description='用例执行情况')#定义测试报告
        runner.run(testunit)#执行测试用例
        fp.close()
    

    结果:

    注意:

    使用pycharm时无法生成测试报告的问题在用Ctrl+Shift+F10执行脚本后,发现没有在本地生成测试报告,经分析,程序执行unittest后,没有再执行后面的程序,也就没有再生存测试报告,正确的方法是Alt+Shift+F10,然后在点击要执行的脚本名称即可。

    • 这是Ctrl+Shift+F10执行脚本时,选择执行的方式:
    • 这是Alt+Shift+F10执行脚本时,选择执行的方式:

    相关文章

      网友评论

        本文标题:HTMLTestRunner自动生成测试报告

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