python接口自动化--unittest框架+HTMLTestRunner

python接口自动化--unittest框架+HTMLTestRunner,第1张

概述Unitest是python里面的单元测试框架,方便组建测试用例,执行用例,并生成测试报告 注意: 测试类,继承单元测试unitest.TestCase这个类 测试方法(用例)必须以test开头 测试类就是多个用例的一个集合,相当于是测试用例的一个模块 1 import unittest 2 3 class TestCase(unittest.TestCase): 4 5

Unitest是python里面的单元测试框架,方便组建测试用例,执行用例,并生成测试报告

注意: 测试类,继承单元测试unitest.TestCase这个类 测试方法(用例)必须以test开头 测试类就是多个用例的一个集合,相当于是测试用例的一个模块
 1 import unittest 2  3 class TestCase(unittest.TestCase): 4  5     def testPlus(self): 6         a = 2 7         b = 3 8         c = a + b 9         self.assertEqual(c,5)10 11     def testReduce(self):12         a = 513         b = 314         c = a - b15         self.assertEqual(c,2)16 17 if __name__ == __main__:18     unittest.main()

 

前置条件setUp(self):每个用例执行前,执行一次

后置条件teardown(self):每个用例执行后,执行一次

 1 import unittest 2  3 class TestCase(unittest.TestCase): 4  5     def setUp(self): 6         print("每个用例执行前执行一次") 7  8     def tearDown(self): 9         print("每个用例执行后执行一次")10     def test001(self):11         print("测试用例001")12     def test002(self):13         print("测试用例002")14 15 if __name__ == __main__:16     unittest.main()

结果:

1 Testing started at 13:08 ...2 每个用例执行前执行一次3 测试用例0014 每个用例执行后执行一次5 每个用例执行前执行一次6 测试用例0027 每个用例执行后执行一次8 9 Process finished with exit code 0

前置setUpClass:只执行一次前置,必须加@classmethod

后置tearDownClass:只执行一次结束,必须加@classmethod

例:

 1 import unittest 2  3 class TestCase(unittest.TestCase): 4  5     @classmethod 6     def setUpClass(cls): 7         print("只开始执行一次") 8     @classmethod 9     def tearDownClass(cls):10         print("只结束执行一次")11 12     def setUp(self):13         print("每个用例执行前执行一次")14 15     def tearDown(self):16         print("每个用例执行后执行一次")17     def test001(self):18         print("测试用例001")19     def test002(self):20         print("测试用例002")21 22 if __name__ == __main__:23     unittest.main()

结果:

 1 Testing started at 13:12 ... 2 只开始执行一次 3 每个用例执行前执行一次 4 测试用例001 5 每个用例执行后执行一次 6 每个用例执行前执行一次 7 测试用例002 8 每个用例执行后执行一次 9 只结束执行一次10 11 Process finished with exit code 0

 

 

项目框架

一级目录:项目名称

  二级文件夹:report

  二级文件夹:test_cases

    可以建三级子文件夹

    (待执行的脚本用test开头)

  二级文件夹:common

     存放一些公共模块,如HTMLTestRunner.py

  主函数:run_all.py

测试用例

 1 #test_case\test_qqtest.py 2  3 import unittest 4 import requests 5  6 class QQtest(unittest.TestCase): 7  8     def setUp(self): 9         ‘‘‘测试前置‘‘‘10         self.url = "http://jAPI.juhe.cn/qqevaluate/qq"11         self.headers={12             "User-Agent": "Mozilla/5.0 (windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 firefox/44.0"13         }14         self.s = requests.session()15 16     def tearDown(self):17         ‘‘‘清除数据‘‘‘18         self.s.close()19     def test001(self):20         ‘‘‘测试用例001‘‘‘21         self.params ={22             "qq":"741841851",23             "key":"49c47ae3d1e8e3e49578f03cee1e7a7a"24         }25         r = self.s.get(self.url,params=self.params,headers=self.headers,verify=False)26         result = r.Json()27         # print(result)28         reason = result[reason]#获取接口状态29         data = result[result][data][conclusion]#获取吉凶数据30         self.assertEqual(reason,success)31 32     def test002(self):33         ‘‘‘测试用例002‘‘‘34         self.params ={35             "qq":"",36             "key":"49c47ae3d1e8e3e49578f03cee1e7a7a"37         }38         r = self.s.get(self.url,verify=False)39         result = r.Json()40         print(result)41         reason = result[reason]#获取接口状态42         # data = result[‘result‘][‘data‘][‘conclusion‘]#获取吉凶数据43         self.assertEqual(reason,错误的请求参数)44 45 if __name__ == __main__:46     unittest.main()

 

 

主函数:

 1 run_all.py 2  3 import unittest 4 from common.HTMLTestRunner import HTMLTestRunner 5 import os 6  7 #获取当前运行的目录 8 dirpath = os.path.dirname(os.path.realpath(__file__)) 9 print("当前运行的目录是:%s " %dirpath)10 11 #获取用例目录用join拼接12 casepath = os.path.join(dirpath,"test_case")13 14 print("用例目录是:%s" %casepath)15 16 #获取报告的目录17 reportpath=os.path.join(dirpath,report,report.HTML)18 print("报告的目录是:%s" %reportpath)19 20 #查找用例21 all_cases=unittest.defaultTestLoader.discover(casepath,pattern=test*.py)22 print(all_cases)23 24 fp = open(reportpath,wb)25 26 runner = HTMLTestRunner(stream=fp,27                         Title=qq号测试吉凶自动化测试报告,28                         description=qq号测试吉凶,29                         )30 31 32 runner.run(all_cases)

 

 报告

总结

以上是内存溢出为你收集整理的python接口自动化--unittest框架+HTMLTestRunner全部内容,希望文章能够帮你解决python接口自动化--unittest框架+HTMLTestRunner所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1195408.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-03
下一篇2022-06-03

发表评论

登录后才能评论

评论列表(0条)

    保存