Selenium——HTMLTestRunner输出测试报告

  1. 将多个测试用例打包

(1)方法一:将多个需要测试的用例添加至测试套件TestSuite:

suite = unitttest.TestSuite
#打包添加单个测试用例
suite.addTest(测试类名(测试用例名))
#打包当前测试类所有测试用例
suite.addTest(unitttest.makeSuite(测试类名))

(2)方法二:将需要测试的测试文件添加至测试套件,需要用到测试加载TestLoader:

suite = unittest.TestLoader().discover(start_dir,pattern='test*.py',top_level_dir=None)
suite = unittest.defaultTestLoader.discover(start_dir,pattern='test*.py',top_level_dir=None)

start_dir:待测试的模块名或测试用例目录

pattern:测试用例的匹配原则,"test*.py"表示匹配文件名以"test"开头的".py"文件,"*"表示任意多个字符

top_level_dir:测试模块的顶层目录,默认为None

  1. 设置报告存放路径

(1)方法一:获取当前文件目录,与报告文件夹,组成的存放路径

report_path = os.path.join(os.getcwd(),"report")

(2)方法二:获取当前文件夹的绝对路径后,再根据绝对路径获取当前项目的所在路径(这样能获得准确的路径),与报告文件夹,组成存放路径

report_path = os.path.dirname(os.path.abspath('.')) + '/report/'
  1. 设置测试报告命名格式

(1)设置时间戳

调用time模块,使用time.strftime(format,tuple),将时间元祖输出为时间字符串,time.localtime()将当前时间转换为时间元组格式

now = time.strftime("Y%m%D%H%M%S%", time.localtime())

(2)设置报告为html文件

name = "TestReport" + now + '.html'
  1. 打开测试报告文件

fp = open('测试报告路径', 'wb')
  1. 设置HTMLTestRunner的初始化参数,并赋予对象runner

#runner = HTMLTestRunner(stream, title, description)
runner = HTMLTestRunner(fp, title="网易邮箱测试报告", description="这是邮箱登录模块自动化测试")

stream:打开的测试报告文件

title:设置测试报告中的标题

description:测试报告中的描述内容

  1. 调用HTMLTestRunner中的run()方法,运行测试套件

runner.run(suite)
  1. 测试结束

fp.close()

将以上组合起来:

import HTMLTestRunner
import os
import time
import unittest
from testcase.test_login import TestLogin

# suite = unittest.TestSuite()
# suite.addTest(unittest.makeSuite(TestLogin))

start_dir = os.path.dirname('testcase')
# suite = unittest.TestLoader().discover(start_dir,pattern='test*.py',top_level_dir=None)
suite = unittest.defaultTestLoader.discover(start_dir,pattern='test*.py',top_level_dir=None)

report_path = os.path.dirname(os.path.abspath('.')) + '/report/'
now = time.strftime("%Y%m%d%H%M%S",time.localtime())
report_name = report_path + "TestReport" + now + ".html"
fp = open(report_name, "wb")

runner = HTMLTestRunner.HTMLTestRunner(fp, title="网易邮箱测试报告", description="测试情况如下:")
runner.run(suite)

fp.close()

以下是其他代码示例,可供参考:

import unittest
import os
import HTMLTestRunner,time

def all_case():
#覆盖case目录下的所有脚本
    case_path=os.path.join(os.getcwd(),"case")
#print(case_path)
    #通过discover来关联case目录下中以test开头的py文件;
    discover=unittest.defaultTestLoader.discover(case_path,pattern='test*.py')
#print(discover)
    return discover

if __name__=="__main__":
#runner = unittest.TextTestRunner()
    #runner.run(all_case())
    #先创建一个html文件
    report_path=os.path.join(os.getcwd(),"report")
#文件命名:TestReport201906211627.html
    str1=time.strftime("%Y%m%d%H%M%S",time.localtime())
    filename=report_path+"\\TestReport"+str1+".html"
    fd=open(filename,"wb")

    runner=HTMLTestRunner.HTMLTestRunner(fd,title="这是测试报告哦",description="详细描述")
    runner.run(all_case())
    fd.close()

import HTMLTestRunner


if __name__ == "__main__":

    # unittest.main()
    #定义一个单元测试的容器
    testunit= unittest.TestSuite()
    #将测试用例加到测试管理器中
    testunit.addTest(类名("测试用例名"))
    #定义测试报告存放路径
    Htmlfile="/User/lvxueqing/Destop/a.html"
    f=open(Htmlfile,'wb')
    runner=HTMLTestRunner.HTMLTestRunner(stream=f,
            title=u'自动化测试报告',
            description=u'详细测试用例结果',
           )
    runner.run(testunit)
    f.close()
import HTMLTestRunner
import os
import unittest
import time


# 设置报告文件保存路径
report_path = os.path.dirname(os.path.abspath('.')) + '/report/'
# 获取系统当前时间
now = time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime(time.time()))

# 设置报告名称格式
HtmlFile = report_path + now + "HTMLtemplate.html"
fp = open(HtmlFile, "wb")

# 构建suite
suite = unittest.TestLoader().discover("testcase")

if __name__ == '__main__':
    # 初始化一个HTMLTestRunner实例对象,用来生成报告
    runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title=u"飞数商城项目测试报告", description=u"用例测试情况")
    # 开始执行测试套件
    runner.run(suite)
def all_case():
    case_dir ='D:\\selenuim自动化\\qq'   #存放测试用例文件的目录
    testcase = unittest.TestSuite()      #构造测试集
    discover = unittest.defaultTestLoader.discover(case_dir,pattern='test*.py',top_level_dir=None)  #使用discover方法筛选出测试用例
    for test_suit in discover:    #循环添加到测试套件中
        for test_case in test_suit:
            testcase.addTest(test_case)
    print(testcase)
    return testcase
    
    
if __name__ == '__main__':
    from HTMLTestRunner import HTMLTestRunner   #导包,关于如何生成HTML报告方法前面已经讲过这里不在赘述,有兴趣的小伙伴可以看博主前面写的博客
    now = time.strftime("%Y-%m-%d %H_%M_%S")
    uli = 'D:\\selenuim自动化\\qq\\' + now + 'QQ.html'
    fp = open(uli, 'wb')
    runner = HTMLTestRunner(stream=fp, title=u'这是我的自动化测试报告', description=u'测试用例执行情况:')
    runner.run(all_case())   #run所有测试用例
    fp.close()
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值