您现在的位置是:首页 > 正文

python自动化测试框架学习 之 HTMLtestrunner

2024-04-01 04:39:58阅读 2

前几天大致搭了个基于python的自动化测试框架:

 

其中reports是用来放生成报告的======

 

HTMLtestrunner 是基于unittest单元测试的html的一个库。

首先安装,安装的时候有点特殊,一般的python库直接pip install ... 即可,安装这个的时候我用这种方式试着安装了下“testrunner”和“html-testrunner” 后面发现没有正确的方法和参数,

遂上网搜了下,原来要自己先创建个HTMLTestRunner.py文件,可以在这里下载https://download.csdn.net/download/qq_41838901/11106286

下载后,将文件复制到你的python安装的lib目录下面,然后import HTMLTestRunner 即可。

 

接下来,开始接着看怎么生成html报告=======

放测试用例的文件内容大致如下:

run_main.py 文件里面就是执行测试用例,并且生成HTMLTestRunner报告的方法:

import os
import  unittest
import  time
import HTMLTestRunner
#当前脚本所在文件真实路径
cur_path = os.path.dirname(os.path.realpath(__file__))

#匹配所有的用例-以test开头的文件
def add_case(caseName="case",rule="test*.py"):
    case_path = os.path.join(cur_path,caseName)
    if not os.path.exists(case_path):os.mkdir(cur_path,caseName)
    print("test case path:%s "%case_path)
    discover = unittest.TestLoader().discover(case_path,pattern=rule,top_level_dir=None)
    print(discover)
    return discover

#执行用例生成报告
def run_case(reportName="reports"):
    now = time.strftime("%Y_%m_%d %H_%M_%S",time.localtime(time.time()))
    report_path = os.path.join(cur_path,reportName)
    if not os.path.exists(report_path):os.mkdir(cur_path,reportName)
    report_abspath = os.path.join(report_path,now+"result.html")
    print("report path :%s"%report_abspath)
    file = open(report_abspath, 'wb')
    runner = HTMLTestRunner.HTMLTestRunner(stream=file, title='reports')
    runner.run(add_case())
    
if __name__ =='__main__':
    run_case()

然后在执行的时候,结果报错了!!wtf!!

AttributeError: type object '_io.StringIO' has no attribute 'StringIO'

然后在网上搜索,发现是官网上的HTMLTestRunner.py文件 是用python2语法写的,然鹅,我这里用的是python3!!

所以,需要修改lib/目录下的HTMLTestRunner.py 文件,修改内容大致如下:

第94行,将import StringIO修改成import io

第539行,将self.outputBuffer = StringIO.StringIO()修改成self.outputBuffer = io.StringIO()

第642行,将if not rmap.has_key(cls):修改成if not cls in rmap:

第766行,将uo = o.decode('latin-1')修改成uo = e

第775行,将ue = e.decode('latin-1')修改成ue = e

第631行,将print >> sys.stderr, '\nTime Elapsed: %s' % (self.stopTime-self.startTime)修改成print(sys.stderr, '\nTime Elapsed: %s' % (self.stopTime-self.startTime))

具体可参考这篇文章:http://bbs.chinaunix.net/thread-4154743-1-1.html

 

修改后,再次运行测试用例,发现生成报告成功!!转圈!!

 

 

使用HTMLTestRunner 生成报告心得-----------------------------------

1、在执行用HTMLTestRunner 生成测试报告的时候,程序的错误信息是不会显示在控制台的,需要到他最后生成的报告里面去看错误信息,定位问题,如下:

 

 

 

 

网站文章

  • layui分页样式设置居中

    layui分页样式设置居中

    layui数据表格

    2024-04-01 04:39:50
  • POST请求

    / 如果"POST"就会把这个请求的数据放在"请求数据包"-HTTPRequestMessage的请求体中。axios.post ("协议://ip:port/pathname",{参数对象})// ...

    2024-04-01 04:39:11
  • 计算机组成原理-数据的表示和计算

    1.进制的转换(1)进制的转换十进制转换为二进制(1)除2取余法(整数部分)对十进制的数不断除2求余,直到商为0。先求得的余数是二进制的低位(327)10转换:转换为 (101000111)2 第n次除2后的商 余数 163 1 81 1 40...

    2024-04-01 04:39:04
  • Hexo:博客框架10分钟搭建个人博客

    Hexo:博客框架10分钟搭建个人博客

    首先是先给大家打个招呼最近看网上看到了很多的的关于搭建博客的视频,我自己也学着自己搭建了一个博客"我自己的博客链接"(欢迎大家来我的博客跟我深入交♂流),今天我把搭建的过程记录下来写成博客,留下一个纪念,也可以顺便帮助那些想要搭建个人博客的小伙伴们,帮助他们搭建属于自己的博客主页啦,那么废话不多说,现在就开始吧。准备工作和环境搭建第一步安装node.js nodejs下载地址...

    2024-04-01 04:38:57
  • 二叉树相关公式

    二叉树的相关公式 1.一棵满二叉树,知道二叉树的层数c,求节点数m? 公式为:m=2^(c-1) ; 2.一棵满二叉树,知道二叉树的深度s,求节点数m? 公式为:m=2^s-1; 3.一棵满二叉树,知...

    2024-04-01 04:38:17
  • Linux常见的压缩包

    Linux常见的压缩包

    要创建一个归档文件,使用命令是:# lzma -c --stdoutexamplefile>examplefile.lzma虽然lzma是一款强大的工具,但其在Linux用户中的人气并不高。tar.g...

    2024-04-01 04:38:11
  • 产品日记--智慧矿山

    今天看到徐飞一篇关于创业的文章,又这么一句话:“一个没有创业并且成功过的人,做创业者的导师,到底能给创业者多大的帮助,是值得审慎考虑的。”

    2024-04-01 04:38:03
  • 【三十八】在Linux安装redis & 在Linux中的redis服务启动与停止 & 设置密码远程连接

    【三十八】在Linux安装redis & 在Linux中的redis服务启动与停止 & 设置密码远程连接

    11

    2024-04-01 04:37:56
  • 985毕业的“打工人”,大厂java开发2年被裁,重新出发终于拿下腾讯offer

    985毕业的“打工人”,大厂java开发2年被裁,重新出发终于拿下腾讯offer

    看到标题,可能很多读者朋友恐怕又要骂我了,985这个特殊的字眼也确实异常晃眼,实际上现在985,211也越来越多,它能代表你能够进入到更高的平台,拿到“高级工厂”的入场券,但并不意味着你会成为赢家,或...

    2024-04-01 04:37:14
  • 王者荣耀显示服务器爆满进不去,王者荣耀榜一二秀恩爱,服务器爆满进不去,榜四:他俩不是人...

    王者荣耀显示服务器爆满进不去,王者荣耀榜一二秀恩爱,服务器爆满进不去,榜四:他俩不是人...

    原标题:王者荣耀榜一二秀恩爱,服务器爆满进不去,榜四:他俩不是人圣杯张飞一声吼,王者峡谷抖三抖,游戏日报虾米酱又与大家见面啦。最近王者荣耀出了件稀奇事,安卓微信某无人问津的小区竟被挤爆,火爆程度相当于...

    2024-04-01 04:37:06