selenium+python自动化90-多线程生成报告(BeautifulReport)

前言

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

环境必备:

- python3.6  :       BeautifulReport不支持2.7

- tomorrow   :       pip install tomorrow安装

- BeautifulReport :  github下载后放到/Lib/site-packages/目录下

一、 BeautifulReport

1.BeautifulReport下载地址:[BeautifulReport](https://github.com/TesterlifeRaymond/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

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

(0)

相关推荐

  • 自动化搭建环境及基础理论

    在dos命令中输入python,在dos命令中输入pip Pip是Python官方推荐的包管理工具,提供了对Python包的查找.下载.安装.卸载的功能,属于python的一部分. Python3.0 ...

  • unittest框架中有多个测试方法,如何实现多个测试方法间参数的传递

    如下方代码中参数self.sucessnum和 self.faillnum,需要把test_case2中的self.faillnum值传递给test_case3,以实现一个累加功能.但是unittes ...

  • 接口自动化

    一.自动化分类 (1)接口自动化 > python/java+requests+unittest框架来实现 > python/java+RF(RobotFramework)框架来实现--对 ...

  • selenium+python自动化89-unittest多线程执行用例

    前言 假设执行一条脚本(.py)用例一分钟,那么100个脚本需要100分钟,当你的用例达到一千条时需要1000分钟,也就是16个多小时... 那么如何并行运行多个.py的脚本,节省时间呢?这就用到多线 ...

  • selenium+python自动化77-autoit文件上传

    前言 关于非input文件上传,点上传按钮后,这个弹出的windows的控件了,已经跳出三界之外了,不属于selenium的管辖范围(selenium不是万能的,只能操作web上元素).autoit工 ...

  • selenium+python自动化78-autoit参数化与批量上传

    前言 前一篇autoit实现文件上传打包成.exe可执行文件后,每次只能传固定的那个图片,我们实际测试时候希望传不同的图片. 这样每次调用的时候,在命令行里面加一个文件路径的参数就行. 一.命令行参数 ...

  • selenium+python自动化79-文件下载(SendKeys)

    前言 文件下载时候会弹出一个下载选项框,这个弹框是定位不到的,有些元素注定定位不到也没关系,就当没有鼠标,我们可以通过键盘的快捷键完成操作. SendKeys库是专业的处理键盘快捷事件的,所以这里需要 ...

  • selenium+python自动化80-文件下载(不弹询问框)

    前言 上一篇是点弹出框上的按钮去保存文件,本篇介绍一种更加优雅的方法,加载Firefox和Chrome的配置文件,不弹出询问框后台下载. 一.FirefoxProfile 1.点下载的时候,如下图,如 ...

  • selenium+python自动化81-报告优化

    一. 优化html报告 为了满足小伙伴的各种变态需求,为了装逼提示逼格,为了让报告更加高大上,测试报告做了以下优化: - 测试报告中文显示,优化一些断言失败正文乱码问题 - 新增错误和失败截图,展示到 ...

  • Selenium+python自动化82-只截某个元素的图

    前言 selenium截取全图小伙伴们都知道,曾经去面试的时候,面试官问:如何截图某个元素的图?不要全部的,只要某个元素...小编一下子傻眼了, 苦心人,天不负,终于找到解决办法了. 一.seleni ...

  • Selenium+python自动化83-chrome手机wap模式

    一.前言 这里是群里(QQ群:226296743)风神出60大洋悬赏的问题,学会这篇就是赚了60大洋了! 我的环境: - chrome 62 - chromedriver 2.33 二.遇到问题 1. ...

  • Selenium+python自动化84-python3.6用PyUserInput

    前言 python2上安装SendKeys库,对于不好定位的元素,用快捷键操作是极好的,那么在3.6上安装时,会报错 一.python3.6安装SendKeys报错 1.python3.6安装Send ...