PHP前端开发

python如何使用unittest测试接口_python

百变鹏仔 2个月前 (02-07) #Python
文章标签 如何使用

这篇文章主要为大家详细介绍了python如何使用unittest测试接口,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了python使用unittest 测试接口的具体代码,供大家参考,具体内容如下

1.首先使用 python 的requests 对接口进行测试

# TestInface.py import requests,json url = visit.get_test_url() news_url = url+'news.info' headers = baseToken.basetoken_datas()['headers'] def new_data(data):      r = requests.post(news_url,data=data,headers=headers)   cnn = json.loads(r.text)   return cnn

2.使用unittest调用接口,且对接口测试的结果进行统计

立即学习“Python免费学习笔记(深入)”;

# TestCase.py # -*- coding:utf-8 -*- import unittest import TestInface   # 对执行的case结果进行统计 # --------------------------------------------------------------------------------------------------------------------- text = "" num_success = 0 num_fail = 0   # 测试通过 def decide_success(joggle):   global num_success   num_success += 1   print_out(joggle + ":接口测试通过")   return num_success   # 测试不通过 def decide_fail(txt, joggle):   global num_fail   num_fail += 1   print_out(joggle + ":接口测试未通过 错误信息: " + txt + "")   return num_fail   # 邮件内容写入 & 客户端输出 def print_out(message):   global text   text += "" + message   return text   # 返回值判断 def decide_result(result, code, joggle):   if result['code'] == code:     decide_success(joggle)     return "pass"   else:     txt = u"期望返回值:" + str(code) + u" 实际返回值:" + str(result) + '' + result['message']     decide_fail(txt, joggle)     return "fail"   def decide_Count():   data = {     'num_success': num_success,     'num_fail': num_fail,     'text': text   }   return data # -------------------------------------------------------------------------------------------------------------------- # 定义 unittest class MyTestCase(unittest.TestCase):     # 初始化工作   def setUp(self):     pass     # 退出清理工作   def tearDown(self):     pass   def test_Case1(self):   id = 16     data = {'id':id}     a = TestInface.new_data(data)     decide_result(a,0,'test_Case1')

3.使用suite对case进行管理

# TestSuite.py # -*- coding:utf-8 -*- import unittest import TestCase   def test_InterFace():     # 构造测试集   suite = unittest.TestSuite()   suite.addTest(TestCase("test_Case1")) # unittest中的测试用例     runner = unittest.TextTestRunner()   runner.run(suite)   # 对测试集进行测试需要返回值   # return suite  if __name__ == '__main__':     # unittest.main(defaultTest='test_InterFace')   # 执行测试   runner = unittest.TextTestRunner()   runner.run(test_InterFace())

4.对接口的数据进行统计

# TestCensus.py # -*- coding:utf-8 -*- import time import TestSuite import send_email import TestCase  class Test_Calss():    def census(self):     text = ''     # 初始化测试起始时间     start_time = time.time()     # 调用suite测试集     TestSuite.test_InterFace()     # 结束执行时间计算     end_time = time.time()      result = TestCase.decide_Count()     # 接口测试统计说明     total_use_case = u"执行用例总数:" + str(result['num_success'] + result['num_fail']) +               u"	通过数:" + str(result['num_success']) +               u"	不通过数:" + str(result['num_fail'])     total_time = u"	总共耗时:" + str(round((end_time - start_time), 3)) + u'秒'     text = result['text'] + total_use_case + total_time     print (text)      # 发生测试报告邮件     send_email.email_file(text)  if __name__ == '__main__':   Test_Calss().census()