zoukankan      html  css  js  c++  java
  • selenium+python-unittest多线程生成报告(转)

    前言

    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就能下载到本地了

    3.下载完之后,把BeautifulReport整个包放到python的/Lib/site-packages/目录下

    使用方法

    1.项目结构:
    case test开头的.py用例脚本
    report 放生成的html报告
    run_all.py 用于执行全部脚本

    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
    from tomorrow import threads


    # 获取路径
    casepath = './'

    def add_case(case_path=casepath, rule="test*.py"):
    '''加载所有的测试用例'''
    discover = unittest.defaultTestLoader.discover(case_path,pattern=rule, top_level_dir=None)
    return discover

    @threads(2)
    def run_case(all_case):
    '''执行所有的用例, 并把结果写入测试报告'''
    result = BeautifulReport(all_case)
    result.report(description='测试deafult报告', log_path='.')




    if __name__ == "__main__":
    # 用例集合
    cases = add_case()
    print(cases)
    for i in cases:
    print(i)
    run_case(i)

    4.报告效果图

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

  • 相关阅读:
    how to uninstall devkit
    asp.net中bin目录下的 dll.refresh文件
    查找2个分支的共同父节点
    Three ways to do WCF instance management
    WCF Concurrency (Single, Multiple, and Reentrant) and Throttling
    检查string是否为double
    How to hide TabPage from TabControl
    获取当前系统中的时区
    git svn cygwin_exception
    lodoop打印控制具体解释
  • 原文地址:https://www.cnblogs.com/ceshixuexi/p/8433507.html
Copyright © 2011-2022 走看看