当前位置: 首页 > news >正文

python接口自动化测试(八)-unittest-生成测试报告

用例的管理问题解决了后,接下来要考虑的就是报告我问题了,这里生成测试报告主要用到 HTMLTestRunner.py 这个模块,下面简单介绍一下如何使用:

一、下载HTMLTestRunner下载:

这个模块不能通过pip安装,只能下载安装,下载地址如下:

  • python2.x版本:http://tungwaiyip.info/software/HTMLTestRunner.html
  • python3.x版本:http://hzqldjb.blog.51cto.com/9587820/1590802

 

二、mac下配置:

1、终端进入python环境

2、输入:

import sys
print sys.path

3、找到site-packages文件夹的路径并将下载的  HTMLTestRunner.py 文件拷贝到此的文件夹下 
4、在python环境下,输入 import  HTMLTestRunner 不报错即安装成功
 
 
三、使用该模块生成报告:
1、目录结构
  • case包下面有baidu,httpbin两个包
  • 每个包下面分别有两个测试的py文件
  • 每个test_00x.py文件里各有2个test case
  • run_all_case.py文件:用来执行所有的test case且生成测试报告
  

2、运行后生成报告如下:

 

3、run_all_case.py代码如下:

复制代码
# -*- coding:utf-8 -*-
import unittest
import os
import time
import HTMLTestRunner

# 用例路径
case_path = os.path.join(os.getcwd())
# 报告存放路径
report_path = os.path.join(os.getcwd(), 'report')
print report_path

def all_case():
    discover = unittest.defaultTestLoader.discover(case_path, pattern="test*.py", top_level_dir=None)

    print discover
    return discover

if __name__ == '__main__':
    # 1、获取当前时间,这样便于下面的使用。
    now = time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime(time.time()))

    # 2、html报告文件路径
    report_abspath = os.path.join(report_path, "result_"+now+".html")

    # 3、打开一个文件,将result写入此file中
    fp = open(report_abspath, "wb")
    runner = HTMLTestRunner.HTMLTestRunner(stream=fp,
                                           title=u'接口自动化测试报告,测试结果如下:',
                                           description=u'用例执行情况:')
    # 4、调用add_case函数返回值
    runner.run(all_case())
    fp.close()
复制代码

 

 本文转自贺满博客园博客,原文链接:http://www.cnblogs.com/puresoul/p/7490881.html,如需转载请自行联系原作者。

相关文章:

  • CVE-2016-10191 FFmpeg RTMP Heap Buffer Overflow 漏洞分析及利用
  • 用好SQL事件探查器来跟踪SQL语句执行
  • 搭建LAMP架构
  • OSPF完全邻接关系形成(摘抄TCP/IP路由技术-卷一)
  • 设计模式的最根本原则
  • HBase
  • 10个C#编程和Visual Studio使用技巧
  • .net 受管制代码
  • vue的计算属性选项
  • 24、Windows派遣函数(2)-Windows驱动开发详解笔记,直接读写方式
  • Unity类继承关系 图
  • 通俗易懂的dagger2-入门篇
  • Scom 2007客户端监控
  • 【新手向】TensorFlow 安装教程:RK3399上运行谷歌人工智能
  • 域功能级别与目录林功能级别
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • 【附node操作实例】redis简明入门系列—字符串类型
  • iOS 颜色设置看我就够了
  • iOS帅气加载动画、通知视图、红包助手、引导页、导航栏、朋友圈、小游戏等效果源码...
  • Odoo domain写法及运用
  • Redis 懒删除(lazy free)简史
  • Sass 快速入门教程
  • 基于axios的vue插件,让http请求更简单
  • 批量截取pdf文件
  • 如何学习JavaEE,项目又该如何做?
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 我看到的前端
  • 再次简单明了总结flex布局,一看就懂...
  • Java数据解析之JSON
  • 从如何停掉 Promise 链说起
  • ​Spring Boot 分片上传文件
  • #中的引用型是什么意识_Java中四种引用有什么区别以及应用场景
  • (3)STL算法之搜索
  • (6)STL算法之转换
  • (ISPRS,2023)深度语义-视觉对齐用于zero-shot遥感图像场景分类
  • (MATLAB)第五章-矩阵运算
  • (ZT)薛涌:谈贫说富
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • (一)RocketMQ初步认识
  • (转)C#开发微信门户及应用(1)--开始使用微信接口
  • (转)从零实现3D图像引擎:(8)参数化直线与3D平面函数库
  • (转载)hibernate缓存
  • (转载)Linux网络编程入门
  • (最全解法)输入一个整数,输出该数二进制表示中1的个数。
  • ./configure,make,make install的作用(转)
  • .dwp和.webpart的区别
  • .gitignore文件设置了忽略但不生效
  • .Net Core缓存组件(MemoryCache)源码解析
  • .net访问oracle数据库性能问题
  • /bin/rm: 参数列表过长"的解决办法
  • @WebServiceClient注解,wsdlLocation 可配置
  • [ IO.File ] FileSystemWatcher