selenium+python-unittest多线程生成报告(转)

摘要:
前面的文章已经解决了selenium多线程运行情况。如何生成测试报告是一个难点。碰巧github上的一位神分享了美丽的报告,它可以完美地组合起来生成报告。
前言

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

selenium+python-unittest多线程生成报告(转)第1张

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

selenium+python-unittest多线程生成报告(转)第2张

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

selenium+python-unittest多线程生成报告(转)第3张

使用方法

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

selenium+python-unittest多线程生成报告(转)第4张

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.报告效果图

selenium+python-unittest多线程生成报告(转)第5张

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

免责声明:文章转载自《selenium+python-unittest多线程生成报告(转)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【Spring】利用AOP来做系统性能监控浅谈架构之路:单点登录 SSO下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

pytest之多进程和多线程

若分布式执行用例,用例设计必须遵循以下原则: 1.用例之间都是独立的(不存在依赖关系); 2.用例执行无先后顺序要求; 一、 pytest-xdist多进程pytest-xdist仅支持多进程,不支持多线程。 安装:pip install pytest-xdist 常用参数解析:  -n:进程数,也就是cpu个数。可以指定个数,最大值为当前机器cpu个数,...

python 多线程批量传文件

#!/usr/bin/env python #_*_ coding:utf-8 -*-#autho:leiyong#time:2017-06-05#version: 1.3 import paramiko from conf import * from threading import Thread import sys user = 'root'...

用最简单的方式在C#中使用多线程加速耗时的图像处理算法的执行(多核机器)。

图像处理中,有很多算法由于其内在的复杂性是天然的耗时大户,加之图像本身蕴涵的数据量比一般的对象就大,因此,针对这类算法,执行速度的提在很大程度上依赖于硬件的性能,现在流行的CPU都是至少2核的,稍微好点的4核,甚至8核,因此,如果能充分利用这些资源,必将能发挥机器的强大优势,为算法的执行效果提升一个档次。 在单核时代,多线程程序的主要目的是防止UI假死,而...

c#之多线程之为所欲为

一 什么是多线程 1、 什么是进程?一个 exe 运行一次就会产生一个进程,一个 exe 的多个进程之 间数据互相隔离。 2、 一个进程里至少有一个线程:主线程。我们平时写的控制台程序默认就是单线程的,代 码从上往下执行,一行执行完了再执行下一行; 3、 什么是多线程:一个人两件事情同时做效率高。同一时刻一 个人只能干一件事情,其实是在“快速频繁切换”,如...

用Python实现多核心并行计算

平常写的程序,无论是单线程还是多线程,大多只有一个进程,而且只能在一个核心里工作。所以很多应用程序即使正在满载运行,在任务管理器中CPU使用量还是只有50%(双核CPU)或25%(四核CPU) 如果能让一个程序自己建立出多个进程,并且让它们并行运行,那么就可以在不同cpu核心上同时运行,进而实现并行计算啦。 Python的并行计算就是这么做的。 之前的理解...

多线程之Nsthread的使用方法

一 NSThread的基本使用 1)NSThread创建的四种方式 第一种 创建方式 alloc initwith...... 特点:需要手动启动线程,可以拿到线程对象进行详细设置 //创建线程 NSThread *thread = [[NSThread alloc]initWithTarget:self selector:@selecto...