zoukankan      html  css  js  c++  java
  • unittest生成html测试报告

    1.需要测试的函数

    import requests
    
    
    def visit(url, headers, data):
        res = requests.post(url, json=data, headers=headers)
        return res.json()
    
    
    if __name__ == '__main__':
        url = 'http://120.78.128.25:8766/futureloan/member/login'
        headers = {"X-Lemonban-Media-Type": "lemonban.v2"}
        data = {"mobile_phone": "18111111111", "pwd": "12345678"}
        print(visit(url,headers,data))
    断言方式:
    assertTrue, 判断条件
    assertEqual,
    assertGreater, a > b
    assertIn, a in b
    self.assertRegex(), 正则表达式匹配
    import unittest
    from zijilianxi.unittest.test1111.fun_visit import visit
    
    url = 'http://120.78.128.25:8766/futureloan/member/login'
    headers = {"X-Lemonban-Media-Type": "lemonban.v2"}
    data = {"mobile_phone": "18111111111", "pwd": "12345678"}
    
    
    class TestLogin(unittest.TestCase):
    
        def test_login(self):
            res = visit(url,headers,data)
            print(res)
            try:
                self.assertEqual(res["msg"], "OK1")
            except AssertionError as e:
                print("断言失败", e)
    
    
    if __name__ == '__main__':
        unittest.main()
    收集测试用例: TestLoader, 加载器,加载测试用例
    放到测试集合(测试套件) TestSuite

    1, 初始化 testloader
    2, suite = testloader.discover(文件夹路径, 'demo_*.py') 发现测试用例
    3, 如果你想运行的用例,放到指定的文件夹当中,

    # TestRunner,
    1, 运行用例
    2, 生成测试报告
    import os
    import unittest
    import time
    from zijilianxi.unittest.test1111.HTMLTestRunnerNew import HTMLTestRunner
    
    
    # 初始化加载器 testloader
    testloader = unittest.TestLoader()
    
    # 查找测试用例
    dir_path = os.path.dirname(os.path.abspath(__file__))
    suit = testloader.discover(dir_path)
    
    # report
    report_path = os.path.join(dir_path,"reprot")
    if not os.path.exists(report_path):
        os.mkdir(report_path)
    
    """
    # 普通文本生成测试报告 TextTestRunner
    file_path = os.path.join(report_path,"test_result.txt")
    print(file_path)
    with open(file_path,"w",encoding="utf-8") as f:
        runner = unittest.TextTestRunner(f,verbosity=2)
        # 运行测试用例
        runner.run(suit)
    """
    
    # 生成 html 测试报告 HTMLTestRunner
    ts = time.strftime("%Y_%m_%d %H_%M_%S")  # 时分秒之间不能用冒号:
    file_name = r"test_result_{}.html".format(ts)
    file_path2 = os.path.join(report_path,file_name)
    with open(file_path2,"wb") as f:
        runner = HTMLTestRunner(f,
                                title="测试报告",
                                description="测试结果",
                                tester="老李")
        runner.run(suit)

    收集测试用例: TestLoader, 加载器,加载测试用例
    放到测试集合(测试套件) TestSuite

    1, 初始化 testloader
    2, suite = testloader.discover(文件夹路径, 'demo_*.py') 发现测试用例
    3, 如果你想运行的用例,放到指定的文件夹当中,

    # TestRunner,
    1, 运行用例
    2, 生成测试报告


    几种加载测试用例的方式:
    1, 用的最多,整个项目一起加载,使用:discover
    2, 你想只测试某一个具体的某块,功能,使用 loadTestsFromTestCase 或者 loadTestsFromModule
    3, pytest,


    HTMLTestRunner, 不是unittest 自带的。需要自己去安装。
    1,安装方式不是通过 pip
    2, 他是别人写好的一个模块,你可以直接下载下来的 .py
    3, 复制到项目目录下,然后倒入。
    4, 第二种方式:我们可以放到 python 的公共库当中

    import os
    import unittest
    
    #1, 初始化 testloader
    import time
    
    from class_18_report.HTMLTestRunnerNew import HTMLTestRunner
    from class_18_report.test_cases import test_login, test_register
    from class_18_report.test_cases.test_login import TestLogin
    from class_18_report.test_cases.test_rechage import TestRecharge
    from class_18_report.test_cases.test_register import TestRegister
    
    testloader = unittest.TestLoader()
    
    # 2, 查找测试用例,加载
    dir_path = os.path.dirname(os.path.abspath(__file__))
    case_path = os.path.join(dir_path, 'test_cases')
    
    
    
    # suite = testloader.discover(case_path)
    # 加载两个模块当中的测试用例,保存到测试套件当中
    # suite = testloader.loadTestsFromModule(test_login)
    # suite2 = testloader.loadTestsFromModule(test_register)
    
    
    # 添加指定的测试类
    suite = testloader.loadTestsFromTestCase(TestLogin)
    suite2 = testloader.loadTestsFromTestCase(TestRecharge)
    
    # 讲这两个测试套件合并添加到一个总的测试套件套件
    suite_total = unittest.TestSuite()
    suite_total.addTests(suite)
    suite_total.addTests(suite2)
    
    
    # suite = testloader.loadTestsFromName()
    
    print(suite)
  • 相关阅读:
    在ubuntu下复制文件出现权限不够的解决方法
    Ubuntu安装ROS Melodic
    gedit文件操作
    Linux下强制删除文件和权限操作
    VMware Tools 继续运行脚本未能在虚拟机中成功运行 解决方式
    Linux解压命令
    Ubuntu 18.04.4 LTS(Bionic Beaver)安装
    Socket层实现系列 — send()类发送函数的实现
    iOS7 CookBook精彩瞬间(三)UIActivityViewController的基本使用及自定义Activity
    iOS7 CookBook精彩瞬间(二)NSSet、通过Subscript访问类成员等
  • 原文地址:https://www.cnblogs.com/kkkhycz/p/12194385.html
Copyright © 2011-2022 走看看