结合HTMLTestRunner作的改动,页面内容拿的HttpRunnerManager中的测试报告模板(感谢HttpRunnerManager),HttpRunnerManager是直接将结果数据传递给报告,结合原HTMLTestRunner是在执行测试的同时将结果写到测试报告中,功能还不够完善,可是基本功能都已ok;模板地址:https://github.com/wishchen/ExtentHTMLTestRunnercss
from ExtentHTMLTestRunner import HTMLTestRunner filename="/*/result.html" fp=open(filename,'wb') runner=HTMLTestRunner( stream=fp, title='自动化测试报告', description='用例执行状况:')
在报告中展现截图:html
项目结构:git
from ExtentHTMLTestRunner import HTMLTestRunner import unittest class InterfaceTest(unittest.TestCase): def test_1(self): print("测试") print("screenshot_baidu.png") def test_2(self): a = 1 b = 2 return a*b if __name__ == '__main__': suite = unittest.TestSuite() suite.addTest(unittest.makeSuite(InterfaceTest)) filename="result22.html" fp=open(filename,'wb') runner=HTMLTestRunner( stream=fp, title='自动化测试报告', description='用例执行状况:') runner.run(suite) fp.close()
运行结果:github
第二条用例没有输出什么,因此是空api
项目结构和上面是同样的,只是用例代码不同:post
__author__ = 'Leo' from ExtentHTMLTestRunner import HTMLTestRunner import unittest,os,requests # 获取根目录 BASE_DIR = os.path.dirname(os.path.dirname(__file__)) # 获取指定目录test_case TEST_CASE = os.path.join(BASE_DIR,"test_case") class InterfaceTest(unittest.TestCase): def test_1(self): url = 'https://api.apiopen.top/getWangYiNews' data = { 'page':1, 'count':1 } r = requests.post(url=url,data=data) print(r.text) def test_2(self): a = 1 b = 2 # Name and print in this format "screenshot_*.png" if you want to show screenshot in report. print("screenshot_baidu.png") return a*b if __name__ == '__main__': # suite = unittest.TestSuite() # suite.addTest(unittest.makeSuite(InterfaceTest)) discover = unittest.defaultTestLoader.discover(TEST_CASE, pattern='test_002.py') filename="result.html" fp=open(filename,'wb') runner=HTMLTestRunner( stream=fp, title='自动化测试报告', description='用例执行状况:') runner.run(discover) fp.close()
运行结果:学习
第二条用例使用了截图功能,如图所示:测试
喜欢的朋友能够学习一下,后面还能够平台化,另外对测试及测试开发感兴趣的伙伴,能够加入到咱们的学习沟通群,一块儿提高本身!ui