Python做接口测试生成测试报告失败
来源:互联网 发布:mac的相册导出 编辑:程序博客网 时间:2024/05/22 17:05
一、先看看我的代码,一个简单的Demo
'''Created on 2017年8月11日#登录接口参数化@author: zx'''import unittestimport requestsimport ddtimport HTMLTestRunnerimport time@ddt.ddtclass Test(unittest.TestCase): def setUp(self): print('start') def tearDown(self): print('end') @ddt.data(('张想','123'), ('黄浩','123'), ('肖菊','123'), ('刘威','123')) @ddt.unpack def 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: JenniferProject:使用unittest框架编写测试用例思路'''#3.导入unittest模块import unittestimport HTMLTestRunnerimport 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()方法用于测试用例执行之后的善后工作。#注意,方法的入参为self def 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 unittestimport requestsimport HTMLTestRunnerimport 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)
这样就生成测试报告了:
阅读全文
0 0
- Python做接口测试生成测试报告失败
- python自动化测试,生成测试报告
- python 接口测试框架测试报告 (二)
- python+selenium 生成测试报告
- python+selenium 生成测试报告
- python-生成HTMLTestRunner测试报告
- python unittest自动化测试,生成测试报告,自动发邮件
- 使用python做接口测试
- 使用Python做接口测试
- ANT:自动测试、生成测试报告
- python生成xml格式测试报告
- ant学习笔记(三)ant整合junit做测试并生成测试报告
- Jenkins + python(requests)做接口自动化测试
- pycharm执行python文件无法生成测试报告(appium自动化测试)
- ant + junit 测试。并生成测试报告
- android自动化测试之生成单元测试报告
- Python单元测试框架—生成HTML测试报告
- python单元测试同时生成自动化测试报告
- Linux命令行安装配置Android SDK
- bzoj1087 [SCOI2005]互不侵犯King(状压dp)
- 理解MySQL——索引与优化
- js弹窗
- Power Strings kmp
- Python做接口测试生成测试报告失败
- 指针数组和数组指针的区别
- Shell中参数信息及if条件句含义
- spring @Scheduled注解执行定时任务
- 使用python开发桌面应用程序的框架选择及一些可能出现的问题记录
- MySQL——索引与优化
- 大数据准备-虚拟机系统安装和网络配置(2)
- PHP之数组索引,关联
- MySQL学习过程中遇到的一些语句