python+unittest+HTMLTestRunner生成测试报告

本文介绍如何使用Python结合unittest和HTMLTestRunner自动生成测试报告。通过批量执行不同参数的测试用例,实现测试过程自动化,并详细记录测试结果。适用于接口测试等场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

结合python+unittest+HTMLTestRunner自动生成测试报告:

开发构思:

  1、在测试方法相同时,测试多个不同参数的测试情况;(unittest自动根据参数条数生成多个的方法)

  2、可统计测试情况;

  3、测试情况数据过滤;

  4、日志记录失败的测试方法;

测试报告预览

 

resultHtml.py文件,自动测试指定目录下的文件

#coding=utf-8
from lib.HTMLTestRunner import HTMLTestRunner  
import time  
import unittest
import os
#from dataExcel import dataExcel
import time
#定义测试用例的目录为当前目录  
test_dir=os.path.dirname(os.path.realpath(__file__))
test_dir1 = test_dir +'\\resultHtmlFile'  
discover = unittest.defaultTestLoader.discover(test_dir,pattern = 'testExcelType*.py') 
  
if __name__=="__main__":  
  
    #按照一定的格式获取当前的时间  
    now = time.strftime("%Y-%m-%d %H-%M-%S")  
      
    #定义报告存放路径  
    filename =test_dir1 + '/' + now + 'test_result.html'  
      
    fp = open(filename,"wb")  
#以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
    #定义测试报告  
    runner = HTMLTestRunner(stream =  fp,  
                            title = u"接口测试报告",  
                            description = u"测试用例执行情况:")  
    #运行测试  
    runner.run(discover)  
    fp.close() #关闭报告文件

testExcelType.py文件,执行测试方法

 

import unittest
import time
import requests
from data.dataExcelType import dataExcelType
import os
# 导入自定义的logging配置
from logs.log import Logger 
import time
import json
from common.login import Login

class TestDemo(unittest.TestCase):
    cur_path=os.path.dirname(os.path.realpath(__file__))
    xlsxName = r'\inteData.xlsx'

    dataExcelType = dataExcelType(cur_path,cur_path_json,xlsxName,0)
    

    #为批量生成测试用例提供数据
    @parameterized.expand(dataExcelType)
    
    def testcase(self,a):
        u'''测试接口'''
      
        logs = Logger().get_logger()
        logs.info("开始执行用例:-------------- %s ,%s" % (a['params'],a['result']))
        
        time.sleep(0.5)
       
        #要测试的操作代码
        #....          

if __name__ == "__main__":
    
    unittest.main(verbosity=2)
UI测试框架是用于自动化测试用户界面(UI)的工具和库的集合。Python作为一种流行的编程语言,结合unittest、pywinauto和htmlTestRunner,可以构建一个强大的UI测试框架。 1. **unittest**:unittestPython标准库中的一个单元测试框架,类似于Java中的JUnit。它提供了创建测试用例、组织测试套件和运行测试的功能。unittest的测试用例是通过继承TestCase类来创建的,并且可以使用各种断言方法来验证测试结果。 2. **pywinauto**:pywinauto是一个用于自动化Windows GUI应用程序的Python库。它提供了一组工具,可以模拟用户与Windows应用程序的交互,如点击按钮、输入文本等。pywinauto通过控件名称、文本或其他属性来识别和操作UI元素。 3. **htmlTestRunner**:htmlTestRunner是一个用于生成HTML测试报告的扩展库。它可以将unittest的测试结果生成为HTML格式的报告,方便查看和分析测试结果。 ### 示例代码 以下是一个简单的示例,展示如何使用这些工具构建一个UI测试框架: ```python import unittest from pywinauto import Application import HTMLTestRunner class MyAppTests(unittest.TestCase): def setUp(self): # 启动应用程序 self.app = Application().start("path_to_your_application.exe") self.dlg = self.app.window(title="MainWindowTitle") def test_button_click(self): # 查找并点击按钮 self.dlg['ButtonName'].click() # 断言按钮点击后的结果 self.assertTrue(self.dlg['ResultControl'].exists()) def tearDown(self): # 关闭应用程序 self.app.kill() if __name__ == "__main__": # 创建测试套件 suite = unittest.TestLoader().loadTestsFromTestCase(MyAppTests) # 生成HTML测试报告 with open("test_report.html", "w") as output: runner = HTMLTestRunner.HTMLTestRunner(output, title='UI Test Report', description='Test report for MyApp') runner.run(suite) ``` ### 解释 1. **setUp方法**:在每个测试用例执行前启动应用程序并获取主窗口的引用。 2. **test_button_click测试用例**:查找并点击按钮,然后断言点击后的结果。 3. **tearDown方法**:在每个测试用例执行后关闭应用程序。 ### 优点 - **自动化**:减少手动测试的工作量,提高测试效率。 - **可重复性**:测试用例可以多次运行,确保应用程序的稳定性。 - **易扩展**:可以轻松添加新的测试用例和测试套件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值