zoukankan      html  css  js  c++  java
  • unittest多线程生成报告-----BeautifulReport

    原文地址https://www.cnblogs.com/yoyoketang/p/8404204.html

    前言

    selenium多线程跑用例,这个前面一篇已经解决了,如何生成一个测试报告这个是难点,刚好在github上有个大神分享了BeautifulReport,完美的结合起来,就能生成报告了。

    环境必备:

    • python3.6 : BeautifulReport不支持2.7
    • tomorrow : pip install tomorrow安装
    • BeautifulReport : github下载后放到/Lib/site-packages/目录下

    BeautifulReport

    1.BeautifulReport下载地址:BeautifulReport

    2.下载方法:

    • 方法一 会使用git的直接用git下载到本地
    • git clone https://github.com/TesterlifeRaymond/BeautifulReport

    • 方法二 点Clone or Download按钮,Download ZIP就能下载到本地了

    2.单个测试脚本test_a.py参考

    # coding:utf-8
    
    import unittest
    from selenium import webdriver
    import time
    
    class Testaa(unittest.TestCase):
        u'''测试用例a的集合'''
        @classmethod
        def setUpClass(cls):
            cls.driver = webdriver.Firefox()
    
        def setUp(self):
            self.driver.get("https://www.cnblogs.com/yoyoketang/")
    
    
        def test_01(self):
            u'''用例1:用例1的操作步骤'''
            t = self.driver.title
            print(t)
            self.assertIn("悠悠", t)
    
    
        def test_02(self):
            u'''用例2:用例2的操作步骤'''
            t = self.driver.title
            print(t)
            self.assertIn("悠悠", t)
    
        def test_03(self):
            u'''用例3:用例3的操作步骤'''
            t = self.driver.title
            print(t)
            self.assertIn("悠悠", t)
    
        @classmethod
        def tearDownClass(cls):
            cls.driver.quit()
    
    if __name__ == "__main__":
        unittest.main()

    3.run_all代码

    # coding=utf-8
    import unittest
    from BeautifulReport import BeautifulReport
    import os
    from tomorrow import threads
    
    
    # 获取路径
    curpath = os.path.dirname(os.path.realpath(__file__))
    casepath = os.path.join(curpath, "case")
    if not os.path.exists(casepath):
        print("测试用例需放到‘case’文件目录下")
        os.mkdir(casepath)
    reportpath = os.path.join(curpath, "report")
    if not os.path.exists(reportpath): os.mkdir(reportpath)
    
    
    def add_case(case_path=casepath, rule="test*.py"):
        '''加载所有的测试用例'''
        discover = unittest.defaultTestLoader.discover(case_path,
                                                      pattern=rule,
                                                      top_level_dir=None)
        return discover
    
    @threads(3)
    def run(test_suit):
        result = BeautifulReport(test_suit)
        result.report(filename='report.html', description='测试deafult报告', log_path='report')
    
    if __name__ == "__main__":
        # 用例集合
        cases = add_case()
    
        print(cases)
        for i in cases:
            print(i)
            run(i)


    4.报告效果图

    备注:BeautifulReport是某大神在github分享的框架,这里借花献佛了,更多使用方法参考地址:https://github.com/TesterlifeRaymond/BeautifulReport

    BeautifulReport下载地址:
    https://pan.baidu.com/disk/home#/all?vmode=list&path=%2Fpython%E6%8E%A5%E5%8F%A3%E8%87%AA%E5%8A%A8%E5%8C%96--unittest--beautifulReport
  • 相关阅读:
    C++ 函数返回局部变量的std::move()的适用场景(转)
    Android 内存泄漏总结(转)
    android JNI调用(Android Studio 3.0.1)(转)
    Linux c —— opendir函数和readdir函数内涵及用法(转)
    理解Android编译命令(转)
    Linux内存管理(转)
    Android内存分析命令(转)
    关于跳板机穿透的文章 (未验证)
    windows下 git配置ssh
    转: Git远程操作详解 (阮一峰)
  • 原文地址:https://www.cnblogs.com/111testing/p/10060900.html
Copyright © 2011-2022 走看看