开始代码如下,生成报告内容为空:

#coding=utf-8

import unittest,time,re
import requests
import json
import HTMLTestRunner

class test_api(unittest.TestCase):
   
    def setUp(self):
        self.url = "http://10.10.10.92:5050/api/demo/add.do"
        self.params1 = {'id':'10011'}
        self.headers = {'content-type':'application/json'}
        self.verificationErrors = []
        self.accept_next_alert = True
   
    def test_aad_api(self):             
        req = requests.post(self.url,data=json.dumps(self.params1),headers=self.headers)
        status = req.status_code
        print(req.json())
        if status == 200:
            print("添加api接口成功")
        else:
            print("添加API接口失败!")
   
    def tearDown(self):
        self.assertEqual([], self.verificationErrors)

if __name__ == "__main__":
    unittest.main()
    #取前面时间
    now = time.strftime("%Y-%m-%d-%H_%M_%S",time.localtime(time.time()))
    filename = 'D:\\python-function\\api\\report\\'+now+'result.html'
    fp = open(filename, 'wb')
    #定义测试报告
    runner =HTMLTestRunner.HTMLTestRunner(
        stream=fp,
        title=u'API测试报告',
        description=u'用例执行情况:')
    #执行测试用例
    testsuite = unittest.TestSuite()
    #添加测试用例到测试集中
    testsuite.addTest(test_api("test_aad_api"))
    runner.run(testsuite)

百思不得其解,想了好久,最后是发现每次生成的报告文件都删除不了,然后在后面加了一个,fp.close(),在执行,报告有内容了,希望能够帮助到跟我一样的人,完整代码如下:

#coding=utf-8

import unittest,time,re
import requests
import json
import HTMLTestRunner

class test_api(unittest.TestCase):
   
    def setUp(self):
        self.url = "http://10.10.10.92:5050/api/demo/add.do"
        self.params1 = {'id':'10011'}
        self.headers = {'content-type':'application/json'}
        self.verificationErrors = []
        self.accept_next_alert = True
   
    def test_aad_api(self):             
        req = requests.post(self.url,data=json.dumps(self.params1),headers=self.headers)
        status = req.status_code
        print(req.json())
        if status == 200:
            print("添加api接口成功")
        else:
            print("添加API接口失败!")
   
    def tearDown(self):
        self.assertEqual([], self.verificationErrors)

if __name__ == "__main__":
    unittest.main()
    #取前面时间
    now = time.strftime("%Y-%m-%d-%H_%M_%S",time.localtime(time.time()))
    filename = 'D:\\python-function\\api\\report\\'+now+'result.html'
    fp = open(filename, 'wb')
    #定义测试报告
    runner =HTMLTestRunner.HTMLTestRunner(
        stream=fp,
        title=u'API测试报告',
        description=u'用例执行情况:')
    #执行测试用例
    testsuite = unittest.TestSuite()
    #添加测试用例到测试集中
    testsuite.addTest(test_api("test_aad_api"))
    runner.run(testsuite)
    fp.close()

这样报告就有内容了

调用HTMLTestRunner生产的报告内容为空解决办法的更多相关文章

  1. Java调用.Net WebService参数为空解决办法 (远程)调试webservice方法 转

    Java调用.Net WebService参数为空解决办法 (远程)调试webservice方法   同事遇到一个很囧的问题,java调,netwebservice的时候,调用无参数方法成功,调用有参 ...

  2. mysql-5.7.9-winx64 MySQL服务无法启动,服务没有报告任何错误的解决办法

    问题背景 最新解压版本的mysql 解压安装的时候报错 D:\mysql-5.7.9-winx64\bin>net start mysql MySQL 服务正在启动 . MySQL 服务无法启动 ...

  3. Python3.0 调用HTMLTestRunner生成的报告中不能显示用例中print函数的输出

    官方原生的HTMLTestRunner.py支持python2.0版本,python3.0版本的使用需要做一些修改: Python3调用HTMLTestRunner执行用例生成测试报告中,不能正常显示 ...

  4. 转-调用HTMLTestRunner生成的报告中不能显示用例中print函数的输出

    官方原生的HTMLTestRunner.py支持python2.0版本,python3.0版本的使用需要做一些修改: Python3调用HTMLTestRunner执行用例生成测试报告中,不能正常显示 ...

  5. mysqldump定时任务生成备份文件内容为空解决方法

    1问题:写好了一个mysqldump备份脚本(如图)直接执行可以正常生成备份文件,但在用crontab运行时却生成内容为空 2原因分析:由于mysqldump存在于全局环境变量mysql的bin下面, ...

  6. Activex调试以及m_hWnd为空 解决办法

    1. 点击[开始]->[运行] 命令:regedit.2. 定位到HKEY_LOCALMACHINE -> SOFTWARE -> Microsoft -> Internet ...

  7. iOS - UITableView中Cell重用机制导致Cell内容出错的解决办法

    "UITableView" iOS开发中重量级的控件之一;在日常开发中我们大多数会选择自定Cell来满足自己开发中的需求, 但是有些时候Cell也是可以不自定义的(比如某一个简单的 ...

  8. AFNetworking 3.0中调用[AFHTTPSessionManager manager]方法导致内存泄漏的解决办法

    在使用AFNetworking3.0框架,使用Instruments检查Leaks时,检测到1000多个内存泄漏的地方,定位到 [AFHTTPSessionManager manager] 语句中,几 ...

  9. android 当ListView滚动时自动调用 onCheckedChanged 导致CheckBox 状态不停变化 的解决办法

    今天在做一个含有CheckBox 的ListView时,发现当初始化CheckBox的状态后, 滚动ListView,其中CheckBox 的选中状态不停的发生变化.最后发现原因是 ListView滚 ...

随机推荐

  1. MySQL慢查询日志ES索引模板

    { "template": "mysql-slow-log-*", "settings": { "index": { & ...

  2. QML从文件加载组件简单示例

    QML从文件加载组件简单示例 文件目录列表: Project1.pro QT += quick CONFIG += c++ CONFIG += declarative_debug CONFIG += ...

  3. Oracle 多表关联并且批量修改

      描述:A表有 id,or_id 字段,B表有 id,code 字段   A表有  or_id 与B表的  id 关联,现要将A.or_id 替换成  B.code 数据    UPDATE  AS ...

  4. BZOJ2208:[JSOI2010]连通数——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=2208 floyd压位是神马东西…… 我们tarjan缩点之后反向拓扑就可以记录联通块可达状态,然后 ...

  5. linux 操作swap分区

    Swap是Linux下的交换分区,类似Windows的虚拟内存,当物理内存不足时,系统可把一些内存中不常用到的程序放入Swap,解决物理内存不足的情况. 若系统安装时开辟的Swap空间太小,可通过手动 ...

  6. LOJ #6037.「雅礼集训 2017 Day4」猜数列 状压dp

    这个题的搜索可以打到48分…… #include <cstdio> #include <cstring> #include <algorithm> ; bool m ...

  7. SAS8.1安装步骤(附图)

    安装前应当把系统时间更改到一九九几年. 1.在解压后的文件夹里找到 setup .exe 双击 开始安装 2.单击SAS System Setup 3.点击Next 4.选择 complete 并单击 ...

  8. Stanford机器学习---第十四讲.机器学习应用举例之Photo OCR

    http://blog.csdn.net/l281865263/article/details/50278745 本栏目(Machine learning)包括单参数的线性回归.多参数的线性回归.Oc ...

  9. kotlin Hello World 以及关键字

    hello world:(支持函数式编程,不需要放到 class 中) fun main(args: Array<String>) { println("Hello World& ...

  10. 010. C++ 传值与传引用

    1.参数传递 参数传递:pass by value vs. pass by reference(to const) 推荐:能传引用,尽量传引用(高效,尤其在需要拷贝的对象很大时) class comp ...