前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >selenium+python自动化90-多线程生成报告(BeautifulReport)

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

作者头像
上海-悠悠
发布2018-04-08 17:54:29
1.8K0
发布2018-04-08 17:54:29
举报
文章被收录于专栏:从零开始学自动化测试

前言

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-02-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 从零开始学自动化测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档