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

  • 相关阅读:
    javascript定时器,取消定时器,及js定时器优化方法
    Systen,IO
    批量地理位置解析
    数据库分区分表(sql、mysql)
    数据库还原的多种方式
    js前端文件收集(一)
    NPOI解决由于excel删除数据导致空行读取问题
    echarts2.0tooltip边框限制导致tooltip显示不全解决办法
    数据库备份通用脚本
    echarts 用marlkline画线 同时配置中含有datazoom,怎么设置markline
  • 原文地址:https://www.cnblogs.com/ceshixuexi/p/8433507.html
Copyright © 2011-2022 走看看