前言

最近几天因为回老家的缘故,暂时没空学习和记录,好不容易抽空那就赶紧开始后面的实战。

前面我们已经基本完成了测试的框架,并且也有了PO设计模式,后面我们还缺少什么呢?做为自动化测试最主要的测试报告我们是不是还没有,所以今天主要是要集成测试报告。

安装

Unittest测试报告虽然没有自带的测试报告,但是已经有了第三方的测试报告HTMLTestRunner。不过它只支持python2,对于python3可能需要下载后修改文件部分地方进行适配。不过好在已经有人

也解决了这个问题,更新了HTMLTestRunner-python3版本

下载地址:https://pypi.org/project/HTMLTestRunner-Python3/#files

下载后解压出一个HTMLTestRunner.py的包然后放在项目的lib目录下



编码

#run_test_report.py
import unittest
from lib.HTMLTestRunner import HTMLTestRunner
import os
import time if __name__ == '__main__':
path = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), 'test_blog_case')
suite = unittest.defaultTestLoader.discover(path, pattern='test*.py') project_root = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
report_dir = os.path.join(project_root, 'report')
current_time = time.strftime("%Y-%m-%d_%H-%M-%S")
report_abspath = os.path.join(report_dir, "HTMLReport_{}.html".format(current_time))
with open(report_abspath, 'wb') as f:
runner = HTMLTestRunner(stream=f,
title='自动化测试报告',
description='用例执行情况',
verbosity=2
)
runner.run(suite)

运行

运行后自动生成一个测试报告的目录,并且测试报告一并生成。这样我们的测试框架就集成生成测试报告的能力了。



扩展

测试报告已经生成了,如果有追求完美的朋友那么我们可以替换一个更漂亮的测试报告模板,或者进行汉化。

如果能力强的请自行进行二次开发,那么后面的教程可以忽略。

下载地址: https://github.com/TesterlifeRaymond/BeautifulReport

下载后解压到lib目录下,然后调整上面的代码

#run_test_report.py
import unittest
# from lib.HTMLTestRunner import HTMLTestRunner
from lib.BeautifulReport.BeautifulReport import BeautifulReport
import os
import time if __name__ == '__main__':
path = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), 'test_blog_case')
suite = unittest.defaultTestLoader.discover(path, pattern='test*.py', top_level_dir=None) project_root = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
report_dir = os.path.join(project_root, 'report')
current_time = time.strftime("%Y-%m-%d_%H-%M-%S")
# report_abspath = os.path.join(report_dir, "HTMLReport_{}.html".format(current_time))
# with open(report_abspath, 'wb') as f:
# runner = HTMLTestRunner(stream=f,
# title='自动化测试报告',
# description='用例执行情况',
# verbosity=2
# ) result = BeautifulReport(suite)
result.report(filename=current_time +'自动化测试报告',
description='用例执行情况',
log_path=report_dir
)
# runner.run(suite)

一份漂亮的中文测试报告就生成了。



WEBUI自动化测试框架主要的功能已经全部实现,后续的失败重跑、失败截图、多线程运行等一系列的如虎添翼的功能暂时就不再学习了,需要的请自行查阅资料并实现。

UI自动化实战进阶后续的更多相关文章

  1. UI自动化实战进阶PO设计模式

    前言 经过前面的实战我们已经编写了几个测试用例,下面我们要用PO设计模式来调整我们的代码,让页面元素和测试业务进行分离,这样看起来直观而且后期的维护也方便. python有一个第三方的PO设计的库,既 ...

  2. python UI自动化实战记录十一: 总结

    首先说说为什么想起来用自动化脚本来实现该项目的自动化. 工作还是以手工测试为主,业务驱动型的项目大概就是这样,业务不停地变,不断的迭代. 自动化测试实施的先决条件: 一 得有时间. 如果有时间大部分的 ...

  3. python UI自动化实战记录二:请求接口数据并提取数据

    该部分记录如何获取预期结果-接口响应数据,分成两步: 1 获取数据源接口数据 2 提取后续页面对比中要用到的数据 并且为了便于后续调用,将接口相关的都封装到ProjectApi类中. 新建python ...

  4. python UI自动化实战记录五:测试页面2 pageobject

    该部分记录测试页面2-StrategyPage,所有页面2上的元素定位.操作.获取属性等方法都写在该类中. 1 页面2继承自BasePage: 2 页面2第一部分写的是所有的定位器 3 页面2第二部分 ...

  5. python UI自动化实战记录三:pageobject-基类

    脚本思路: 使用pageobject模式,写一个basepage基类,所有页面的通用方法封装到基类中.比如打开页面,关闭页面,等待时间,鼠标移到元素上,获取单个元素,获取一组元素,获取元素的子元素,截 ...

  6. python UI自动化实战记录一:测试需求与测试思路

    测试需求: 项目包含两个数据展示页面,数据均来自于四个数据源接口. 测试操作步骤: 选择5个大类型中的一个,每个大类型下有3个子类型,选择任一子类型,页面数据更新.需验证页面上的数据与数据源接口数据一 ...

  7. python UI自动化实战记录十:执行测试及测试报告

    使用简单的unittest.TextTestRunner. 思路: 1 在report目录下创建当日测试报告目录 20190113 2 创建测试报告文件 f = 时间戳.txt 3 加载测试集,运行测 ...

  8. python UI自动化实战记录九:添加日志

    想知道测试脚本运行到了哪一步,在脚本内关键节点处打日志是一个很好的方法.目前只写最简单的方式,logging相关还需要继续深入. 1  引包,并配置info级别以上的都显示 import loggin ...

  9. python UI自动化实战记录八:添加配置

    添加配置文件写入测试地址等,当环境切换时只需修改配置文件即可. 1 在项目目录下添加文件 config.ini 写入: [Domain] domain = http://test.domain.cn ...

随机推荐

  1. Lesson_strange_words1

    time-between system 分时操作:分时系统 secondary 辅助的,从属的 establish 已确立的 capability 功能 formerly 之前的 combine 结合 ...

  2. 使用python做一个IRC在线下载器

    使用python做一个IRC在线下载器 1.开发流程 2.软件流程 3.开始 3.0 准备工作 3.1寻找API接口 3.2 文件模块 3.2.1 选择文件弹窗 3.2.2 提取文件名 3.2.2.1 ...

  3. 巧用 Lazy 解决.NET Core中的循环依赖关系

    原文作者: Thomas Levesque 原文链接:https://thomaslevesque.com/2020/03/18/lazily-resolving-services-to-fix-ci ...

  4. HP PROLIANT DL388 GEN10 (故障3019)SPP损坏

    HP PROLIANT DL388 GEN10 (故障3019)SPP损坏 1. 开机硬件自检,提示错误ERROR 3019: 2. 根据服务器版本GEN10下载最新固件SPP,可找服务商或者HP售后 ...

  5. 【MySQL】使用MySQL(连接、选择数据库、显示数据库和表信息)

    第3章 使用MySQL 文章目录 第3章 使用MySQL 连接 选择数据库 了解数据库和表 小结 简单记录 - MySQL必知必会 - [英]Ben Forta 将学习如何连接和登录到MySQL,如何 ...

  6. 超过varchar定义长度

    mysql> select version();+------------+| version() |+------------+| 5.1.73-log |+------------+1 ro ...

  7. 【Software Test】Introduction to Software Testing

    Introduction to Software Testing 文章目录 Going to Learn --. Evolution of The Software Industry Errors, ...

  8. --safe-user-create

    此参数如果启用,用户将不能用grant语句创建新用户,除非用户有mysql数据库中user表的insert权限, ./mysqld_safe  --safe-user-create & 用-- ...

  9. 【Nginx】使用keepalive和nginx搭载高可用

    首先介绍一下Keepalived,它是一个高性能的服务器高可用或热备解决方案,Keepalived主要来防止服务器单点故障的发生问题,可以通过其与Nginx的配合实现web服务端的高可用. Keepa ...

  10. 【ORACLE】ASMM和AMM的相关问题

    转自:http://m.blog.itpub.net/31397003/viewspace-2137469/ 关于ASMM和AMM http://blog.itpub.net/29800581/vie ...