将多个测试用例打包
(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)方法一:获取当前文件目录,与报告文件夹,组成的存放路径
report_path = os.path.join(os.getcwd(),"report")
(2)方法二:获取当前文件夹的绝对路径后,再根据绝对路径获取当前项目的所在路径(这样能获得准确的路径),与报告文件夹,组成存放路径
report_path = os.path.dirname(os.path.abspath('.')) + '/report/'
设置测试报告命名格式
(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'
打开测试报告文件
fp = open('测试报告路径', 'wb')
设置HTMLTestRunner的初始化参数,并赋予对象runner
#runner = HTMLTestRunner(stream, title, description)
runner = HTMLTestRunner(fp, title="网易邮箱测试报告", description="这是邮箱登录模块自动化测试")
stream:打开的测试报告文件
title:设置测试报告中的标题
description:测试报告中的描述内容
调用HTMLTestRunner中的run()方法,运行测试套件
runner.run(suite)
测试结束
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()
版权归原作者 温LK 所有, 如有侵权,请联系我们删除。