1:准备html模版

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>接口自动化</title>
</head>
<body style="margin-top: 20px; font-style: '微软雅黑';"> <table border="1" cellspacing="0" cellpadding="5" width="100%" align="center">
<tr bgcolor="bisque" style="font-style: 30px"> <td height="60" colspan="5">
自动化测试报告:&test_data </td>
</tr>
<tr style="font-style: 20px">
<td width="20%">被测版本:&version</td>
<td width="15%">成功:&pass</td>
<td width="15%">失败:&fail</td>
<td width="15%">错误:&error</td>
<td width="30%">最后时间:&lasttime</td>
</tr>
</table>
<p></p> <table border="1" cellspacing="0" cellpadding="5" width="100%" align="center">
<tr height="40" bgcolor="darkseagreen">
<td width="7%">记录编号:</td>
<td width="10%">记录编号:</td>
<td width="9%">记录编号:</td>
<td width="7%">记录编号:</td>
<td width="20%">记录编号:</td>
<td width="7%">记录编号:</td>
<td width="15%">记录编号:</td>
<td width="15%">记录编号:</td>
<td width="10%">记录编号:</td>
<td width="10%">记录编号:</td>
</tr>
&test_result </table>
</body>
</html>

打开模版,数据替换

'''
Created on Aug 8, 2019 @author: liliang
'''
import os
import time
from ctypes.test.test_pickling import name
class MyClass():
'''
classdocs
'''
def __init__(self):
pass
def open_file(self):
tempfile=os.path.abspath("..")+"/demo/2.html"
tem=open(tempfile, mode='r', encoding='utf-8').read()
return tem
def write_file(self,file,test_data,version,passnum,faillnum,errornum,lasttime,all_data):
file=file.replace("&test_data",test_data)
file=file.replace("&version",version)
file=file.replace('&pass',passnum)
file=file.replace('&fail',faillnum)
file=file.replace('&error',errornum)
file=file.replace('&lasttime',lasttime)
content=''
for i in range(0,len(all_data)):
if all_data[i]["name"] =="粉丝":
content+="<tr height=40 bgcolor='red'>"
content+="<td width='7%%' >%s</d>" %str(all_data[i]["name"])
content+="<td width='7%%'>%s</d>" %str(all_data[i]["age"])
content+="<td width='7%%'>%s</d>" %str(all_data[i]["sex"])
content+="<td width='7%%'>%s</d>" %str(all_data[i]["school"])
content+="<td width='7%%'>%s</d>" %str(all_data[i]["work"])
content+="<td width='7%%'>%s</d>" %str(all_data[i]["address"])
content+="<td width='7%%'>%s</d>" %str(all_data[i]["sex1"])
content+="<td width='7%%'>%s</d>" %str(all_data[i]["school2"])
content+="<td width='7%%'>%s</d>" %str(all_data[i]["work3"])
content+="<td width='7%%'>%s</d>" %str(all_data[i]["address4"])
content+="</tr>"
else: content+="<tr height=40 bgcolor='bisque'>"
content+="<td width='7%%' >%s</d>" %str(all_data[i]["name"])
content+="<td width='7%%'>%s</d>" %str(all_data[i]["age"])
content+="<td width='7%%'>%s</d>" %str(all_data[i]["sex"])
content+="<td width='7%%'>%s</d>" %str(all_data[i]["school"])
content+="<td width='7%%'>%s</d>" %str(all_data[i]["work"])
content+="<td width='7%%'>%s</d>" %str(all_data[i]["address"])
content+="<td width='7%%'>%s</d>" %str(all_data[i]["sex1"])
content+="<td width='7%%'>%s</d>" %str(all_data[i]["school2"])
content+="<td width='7%%'>%s</d>" %str(all_data[i]["work3"])
content+="<td width='7%%'>%s</d>" %str(all_data[i]["address4"])
content+="</tr>" # for result in all_data:
# content+="<tr height=40>"
# content+="<td width='7%%'>%s</d>" %str(result[0])
# content+="<td width='7%%'>%s</d>" %str(result[1])
# content+="<td width='7%%'>%s</d>" %str(result[2])
# content+="<td width='7%%'>%s</d>" %result[3]
# content+="<td width='7%%'>%s</d>" %result[4]
# content+="<td width='7%%'>%s</d>" %result[5]
# content+="<td width='7%%'>%s</d>" %result[6]
# content+="<td width='7%%'>%s</d>" %result[7]
# content+="<td width='7%%'>%s</d>" %result[8]
# content+="<td width='7%%'>%s</d>" %result[9]
# content+="</tr>"
file=file.replace('&test_result',content)
file_folder=os.path.abspath("..")+"/demo/"
file_name=file_folder+time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())+".html"
report_file=open(file_name, mode="w+", encoding='utf-8')
report_file.write(file)
report_file.close()
def get_datetime(self):
now_time=time.strftime("%Y_%M_%d_%H:%M:%S",time.localtime())
return now_time
if __name__ == '__main__':
my=MyClass()
file=my.open_file()
all_data=[
{"name":"Tom","age":23,"sex":"男","school":"希望小学","work":"学生","address":"上海","sex1":"男","school2":"希望小学2","work3":"学生","address4":"上海"},
{"name":"数据","age":"13","sex":"男","school":"希望小学","work":"学生","address":"上海","sex1":"男","school2":"希望小3学","work3":"学生","address4":"上海"},
{"name":"粉丝","age":"13","sex":"男","school":"希望小学","work":"学生","address":"上海","sex1":"男","school2":"希望小学4","work3":"学生","address4":"上海"},
{"name":"阿道夫","age":"13","sex":"男","school":"希望小学","work":"学生","address":"上海","sex1":"男","school2":"希望小fs学","work3":"学生","address4":"上海"},
{"name":"二娃","age":"13","sex":"男","school":"希望小学","work":"学生","address":"上海","sex1":"男","school2":"希望小学fa","work3":"学生","address4":"上海"},
{"name":"我确认","age":"13","sex":"男","school":"希望小学","work":"学生","address":"上海","sex1":"男","school2":"希望小学","work3":"学生","address4":"上海"},
{"name":"特务","age":"13","sex":"男","school":"希望小学","work":"学生","address":"上海","sex1":"男","school2":"希望小学fa","work3":"学生","address4":"上海"},
{"name":"突然","age":"13","sex":"男","school":"希望小学","work":"学生","address":"上海","sex1":"男","school2":"希望小学ddd","work3":"学生","address4":"上海"},
{"name":"圈儿","age":"13","sex":"男","school":"希望小学","work":"学生","address":"上海","sex1":"男","school2":"希望小asss学","work3":"学生","address4":"上海"},
{"name":"让他","age":"13","sex":"男","school":"希望小学","work":"学生","address":"上海","sex1":"男","school2":"希望小学fdsaa","work3":"学生","address4":"上海"},
]
my.write_file(file, "2019_07_08_03:07:59", "1.3.0", "90", "7", "key error", "2019_07_08_03:07:59", all_data)
 生成报告

工程目录

python生成接口自动化测试报告模版的更多相关文章

  1. pytest+allure生成接口自动化测试报告

    准备环境 1.安装pytest pip install pytest -i http://pypi.douban.com/simple pytest-ordering pytest.main([ &q ...

  2. jmeter生成html格式接口自动化测试报告

    jmeter生成html格式接口自动化测试报告 jmeter自带执行结果查看的插件,但是需要在jmeter工具中才能查看,如果要向领导提交测试结果,不够方便直观. 笔者刚做了这方面的尝试,总结出来分享 ...

  3. python+request接口自动化框架

    python+request接口自动化框架搭建 1.数据准备2.用python获取Excel文件中测试用例数据3.通过requests测试接口4.根据接口返回的code值和Excel对比 但本章只讲整 ...

  4. unittest接口自动化测试报告

    unittest接口自动化测试报告 展示: 代码: __author__ = "Wai Yip Tung, Findyou" __version__ = "0.8.2.1 ...

  5. python+pytest接口自动化(11)-测试函数、测试类/测试方法的封装

    前言 在python+pytest 接口自动化系列中,我们之前的文章基本都没有将代码进行封装,但实际编写自动化测试脚本中,我们都需要将测试代码进行封装,才能被测试框架识别执行. 例如单个接口的请求代码 ...

  6. Python&Selenium&Unittest&BeautifuReport 自动化测试并生成HTML自动化测试报告

    一.摘要 本篇博文将介绍如何借助BeautifulReport和HTML模版,生成HTML测试报告的BeautifulReport 源码Clone地址为 https://github.com/Test ...

  7. Python+Selenium框架 ---自动化测试报告的生成

    本文来介绍如何生成自动化测试报告,前面文章尾部提到了利用HTMLTestRunner.py来生成自动化测试报告.关于HTMLTestRunner不过多介绍,只需要知道是一个能生成一个HTML格式的网页 ...

  8. python+requests接口自动化完整项目设计源码

    前言 有很多小伙伴吵着要完整的项目源码,完整的项目属于公司内部的代码,这个是没法分享的,违反职业道德了,就算别人分享了,也只适用于本公司内部的业务. 所以用例的代码还是得自己去一个个写,我只能分享项目 ...

  9. python+requests接口自动化完整项目设计源码(一)

    原文地址https://www.cnblogs.com/yoyoketang/tag/python接口自动化/ 原文地址https://www.cnblogs.com/yoyoketang/ 原文地址 ...

随机推荐

  1. poj2376Cleaning Shifts (贪心求解)

    描述 大表哥分配 N (1 <= N <= 25,000) 只中的一些奶牛在牛棚附近做些清洁. 他总是要让至少一只牛做清洁.他把一天分成T段(1 <= T <= 1,000,0 ...

  2. Web控件中Eval()的使用

    1.使用Eval()绑定数据时使用三元运算符 <%#Eval("hg_A").ToString()=="1"?"通过":Eval(&q ...

  3. is_numeric漏洞总结

    将16进制数据判断为数据,这样在存入数据库后,数据库会把16进制解析成字符串,可能造成二次注入 转载: https://www.jianshu.com/p/e7cf997d6ccb

  4. jQuery基础--选择器

    2. 选择器 2.1. 什么是jQuery选择器 jQuery选择器是jQuery为我们提供的一组方法,让我们更加方便的获取到页面中的元素.注意:jQuery选择器返回的是jQuery对象. jQue ...

  5. idea 激活步骤

    如果你的idea是已经激活过,但是到期了,点击help-register 删除之前的license server(不是通过注册服务激活的,就不用管) 激活步骤如下: 1.修改hosts文件,把 0.0 ...

  6. 基于dvwa环境下级别为low的SQL手工注入教程

    基于dvwa环境下级别为low的SQL手工注入教程: 首先是进入已搭建好的dvwa环境中去(一定要搭建好dvwa环境才能进行下面的操作),这可能会是一些初学者所面临的的第一个问题,比如我,曾为了寻找这 ...

  7. 解决Ubuntu12.04下rpcbind: cannot open '/var/run/rpcbind/rpcbind.xdr' file for reading

    不知道怎么回事,实验室的电脑在同学搞过之后,每次启动都报错 rpcbind: cannot open '/run/rpcbind/rpcbind.xdr' file for reading, errn ...

  8. mysql中列转行

    通过group_concat()函数来实现 select group_concat(name) from table group by type select group_concat(name se ...

  9. BZOJ 4675(点分治)

    题面 传送门 分析 由于期望的线性性,我们可以分别计算每个点对对答案的贡献 有三个人取数字,分开对每个人考虑 设每个人分别取了k个数,则一共有\(C_n^k\)种组合,选到每种组合的概率为\(\fra ...

  10. combox系列问题集

    visual studio崩溃 你是不是经常会遇到一编辑combox,visual studio就会立马崩溃.一直都无法理解是什么原因,然后后来发现居然是因为有道的截屏翻译,关掉截屏翻译就好了. co ...