一、先看看我的代码,一个简单的Demo

'''
Created on 2017年8月11日
#登录接口参数化
@author: zx
'''
import unittest
import requests
import ddt
import HTMLTestRunner
import time
@ddt.ddt
class Test(unittest.TestCase):def setUp(self):print('start')def tearDown(self):print('end')@ddt.data(('张想','123'),('黄浩','123'),('肖菊','123'),('刘威','123'))@ddt.unpackdef test_example(self,LoginName,Password):res=requests.get('http://192.168.50.51:8099/Logins/Login',params={'LoginName':LoginName,'Password':Password})print(res.status_code)print(res.cookies)print(res.text)self.assertEqual(200,res.status_code)self.assertTrue('true' in res.text)if __name__ == "__main__": #定义一个测试容器suite = unittest.TestSuite()#将测试用例添加到容器suite.addTest(Test("test_example"))now = time.strftime("%Y-%m-%d %H_%M_%S",time.localtime())filename='D:/Users/zx/workspace/AppiumDemo1/report/'+now+'_result.html'with open(filename, 'wb') as fp:runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title=u'测试报告', description=u'用例执行详情:')runner.run(suite) 

二、用python unittest执行,可以运行测试用例,但是无法生成测试报告,因为 ‘if name == “main“: ’下面的代码都没有执行,看图:


三、于是用python来执行,但是执行不成功,报错信息如下图:

四、期间各种分析原因,换了pycharm运行,包括其他方法:http://blog.csdn.net/xie_0723/article/details/50825310(这里提到的方法都试过)还是不行。
最后永别的又弄了一个简单案例,居然生成报告了,唯一的区别是那个用例没有用到数据驱动。代码如下:

# coding=utf-8
#1.先设置编码,utf-8可支持中英文,如上,一般放在第一行#2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2016-7-27
@author: Jennifer
Project:使用unittest框架编写测试用例思路
'''
#3.导入unittest模块
import unittest
import HTMLTestRunner
import time
#4.定义测试类,父类为unittest.TestCase。
#可继承unittest.TestCase的方法,如setUp和tearDown方法,不过此方法可以在子类重写,覆盖父类方法。
#可继承unittest.TestCase的各种断言方法。
class Test(unittest.TestCase): #5.定义setUp()方法用于测试用例执行前的初始化工作。
#注意,所有类中方法的入参为self,定义方法的变量也要“self.变量”
#注意,输入的值为字符型的需要转为int型def setUp(self):#self.number=input('Enter a number:')#self.number=int(self.number)self.number=10#6.定义测试用例,以“test_”开头命名的方法
#注意,方法的入参为self
#可使用unittest.TestCase类下面的各种断言方法用于对测试结果的判断
#可定义多个测试用例
#最重要的就是该部分def test_case1(self):print (self.number)self.assertEqual(self.number,10,msg='Your input is not 10')def test_case2(self):print (self.number)self.assertEqual(self.number,20,msg='Your input is not 20')@unittest.skip('暂时跳过用例3的测试')def test_case3(self):print (self.number)self.assertEqual(self.number,30,msg='Your input is not 30')#7.定义tearDown()方法用于测试用例执行之后的善后工作。
#注意,方法的入参为selfdef tearDown(self):print ('Test over')#8如果直接运行该文件(__name__值为__main__),则执行以下语句,常用于测试脚本是否能够正常运行
if __name__=='__main__':
#8.1执行测试用例方案一如下:
#unittest.main()方法会搜索该模块下所有以test开头的测试用例方法,并自动执行它们。
#执行顺序是命名顺序:先执行test_case1,再执行test_case2#unittest.main()suite=unittest.TestSuite()suite.addTest(Test('test_case2'))suite.addTest(Test('test_case1'))now = time.strftime("%Y-%m-%d %H_%M_%S",time.localtime())filename='D:/'+now+'_result.html'with open(filename, 'wb') as fp:runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title=u'测试报告', description=u'用例执行详情:')runner.run(suite)

生成的报告如下:


这里的样式是经过改进后的HTMLTestRunner的样式,喜欢的可以拿走用:http://pan.baidu.com/s/1miFp3vE
五、于是果断的把数据驱动去掉了,代码如下:

'''
Created on 2017年8月16日@author: zx
'''
import unittest
import requestsimport HTMLTestRunner
import timeclass Test(unittest.TestCase):def setUp(self):print('start')def tearDown(self):print('end')def test_example(self):res=requests.get('http://192.168.50.51:8099/Logins/Login',params={'LoginName':"张想",'Password':'123'})print(res.status_code)print(res.cookies)print(res.text)self.assertEqual(200,res.status_code)self.assertTrue('true' in res.text)
if __name__=='__main__':
#8.1执行测试用例方案一如下:
#unittest.main()方法会搜索该模块下所有以test开头的测试用例方法,并自动执行它们。
#执行顺序是命名顺序:先执行test_case1,再执行test_case2#unittest.main()suite=unittest.TestSuite()suite.addTest(Test('test_example'))now = time.strftime("%Y-%m-%d %H_%M_%S",time.localtime())filename='D:/'+now+'_result.html'with open(filename, 'wb') as fp:runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title=u'测试报告', description=u'用例执行详情:')runner.run(suite)

这样就生成测试报告了:

Python做接口测试生成测试报告失败相关推荐

  1. python做接口自动化测试仪器经销商_Python接口自动化测试的实现

    接口测试的方式有很多,比如可以用工具(jmeter,postman)之类,也可以自己写代码进行接口测试,工具的使用相对来说都比较简单,重点是要搞清楚项目接口的协议是什么,然后有针对性的进行选择,甚至当 ...

  2. python做接口自动化如何输出测试报告-python生成接口自动化测试报告模版

    自动化测试报告:&test_data 被测版本:&version 成功:&pass 失败:&fail 错误:&error 最后时间:&lasttime ...

  3. python做自动化控制postman_使用postman+newman+python做接口自动化测试

    postman是一款API调试工具,可用于测试接口,相类似的工具还有jmeter.soupUI.通过postman+newman+python可以批量运行调试接口,达到自动化测试的效果. 1.Post ...

  4. Jmeter接口测试生成测试报告(可视化图形!测试数据非常直观!).jmx文件生成.jtl文件并生成.html文件可视化图形测试报告

    目录 一.Jmeter创建线程组然后进行接口测试 1.1Jmeter先切换中文模式 1.2点中Test Plan来放大界面(Ctrl+鼠标滚轮) 1.3右键TestPlan---点击添加---Thre ...

  5. python做接口外部调用_python使用suds调用外部接口

    查看webservice接口函数@classmethod def get_methods(cls, client): """ 查看服务接口 :param client:  ...

  6. 学习之浅谈python如何做接口自动化

    目录 前言 一.接口 二.API自动化测试(接口测试): 三.requests框架 四.自动化测试框架------->自动化测试核心技能 1. 1 接口测试类型 1.2 如何开展接口测试 1.3 ...

  7. Python中做接口自动化如何读取配置ini文件

    使用Python做接口自动化过程中,往往会使用配置文件,方便后期维护.带着大家熟悉一下configparser常用的方法使用 ConfigParser 是用来读取配置文件的包.配置文件的格式如下:中括 ...

  8. 软件测试人员能用python做哪些事情?

    先抛出结论:软件测试人员能用python做的事情很多,最常见的就是下面四项: 1)做自动化测试[web自动化,app自动化,接口自动化], 2)做性能测试, 3)开发小工具, 4)搭建测试平台. Py ...

  9. python+requests接口自动化测试框架实例详解教程(米兔888)【适合半年或一年以上天天做自动化经验的大神下载使用】

    来源:https://my.oschina.net/u/3041656/blog/820023 源码地址,需要的回复评论留下邮箱 前段时间由于公司测试方向的转型,由原来的web页面功能测试转变成接口测 ...

最新文章

  1. C# 常用正责表达式
  2. 5.spring boot使用FastJson解析JSON数据
  3. ajax实现文件上传
  4. 分数化小数c语言题目,习题 2-5 分数化小数 (decimal)(C语言版)
  5. python3 32位_Python 3.6.8软件安装教程
  6. JAVA学习笔记--初识容器类库
  7. OJ1042: 数列求和3(递推思想)
  8. 【C语言】用C语言输出一个吃豆人
  9. 4004-基于邻接矩阵的新顶点的增加(C++,附思路)
  10. html + css + js 实现简易计算器
  11. python在哪里画柱形图_Python笔记:用pyecharts绘制柱形图
  12. 解决element-ui中表格行点击事件和表格单元格点击事件冲突的问题
  13. 51nod 1050 循环数组最大子段和 单调队列优化DP
  14. 设置windows自动登录
  15. Linux AHCI驱动分析之设备初始化
  16. 开源一个安信可A9g小项目微信小程序定位器项目①如何在windows10上环境搭建,编译烧录代码固件,查看运行日志;
  17. 惠普服务器显示器接口类型,介绍:目前显示器主要接口
  18. 市场战略再升级 解析融云的生态平台+纵深发展
  19. meta中的http-equiv = X-UA-Compatible
  20. 创建 GitHub 个人访问令牌

热门文章

  1. 【科研】浅学Cross-attention?
  2. 小米手机安装linux视频教程,屏幕失灵的小米5手机安装linuxdeploy centos7记录
  3. 计算机装系统教程网,电脑重装系统教程知识
  4. android荣耀不弹出获取权限提醒,荣耀手机怎么设置锁屏消息提示?附不提示的解决方法...
  5. 一只鸟就这样耍弄了一个人
  6. 【测试方法】业务流测试法之场景法
  7. 留着以后慢慢做的计算几何(题表)
  8. 怎样把普洱熟茶泡得更好喝?
  9. 达梦数据库查看表字段VARCHAR类型的长度单位是BYTE还是CHAR
  10. 2023轻薄投影仪选哪款?极米Z6X Pro成年轻人租房首选投影