python如何使用unittest测试接口


Posted in Python onApril 04, 2018

本文实例为大家分享了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调用接口,且对接口测试的结果进行统计

# 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 + ":接口测试通过\n") 
  return num_success 
 
 
# 测试不通过 
def decide_fail(txt, joggle): 
  global num_fail 
  num_fail += 1 
  print_out(joggle + ":接口测试未通过 \n错误信息: " + txt + "\n") 
  return num_fail 
 
 
# 邮件内容写入 & 客户端输出 
def print_out(message): 
  global text 
  text += "\n" + 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) + '\n' + 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"\t通过数:" + str(result['num_success']) + \ 
             u"\t不通过数:" + str(result['num_fail']) 
    total_time = u"\t总共耗时:" + 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()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
进一步了解Python中的XML 工具
Apr 13 Python
Python实现计算最小编辑距离
Mar 17 Python
python+pygame简单画板实现代码实例
Dec 13 Python
Python使用Windows API创建窗口示例【基于win32gui模块】
May 09 Python
Python中最大递归深度值的探讨
Mar 05 Python
Python3.5多进程原理与用法实例分析
Apr 05 Python
详解Python中的内建函数,可迭代对象,迭代器
Apr 29 Python
python实现用户名密码校验
Mar 18 Python
PyQt5连接MySQL及QMYSQL driver not loaded错误解决
Apr 29 Python
python 日志模块 日志等级设置失效的解决方案
May 26 Python
基于Keras的格式化输出Loss实现方式
Jun 17 Python
Python爬虫如何破解JS加密的Cookie
Nov 19 Python
Python统计单词出现的次数
Apr 04 #Python
高效使用Python字典的清单
Apr 04 #Python
Python的numpy库中将矩阵转换为列表等函数的方法
Apr 04 #Python
python 列表,数组,矩阵两两转换tolist()的实例
Apr 04 #Python
使用Python设计一个代码统计工具
Apr 04 #Python
用 Python 连接 MySQL 的几种方式详解
Apr 04 #Python
Python基于辗转相除法求解最大公约数的方法示例
Apr 04 #Python
You might like
基于PHP创建Cookie数组的详解
2013/07/03 PHP
PHP封装的XML简单操作类完整实例
2017/11/13 PHP
PHP fprintf()函数用法讲解
2019/02/16 PHP
jquery tab插件精简版分享
2011/09/10 Javascript
jquery中html、val与text三者属性取值的联系与区别介绍
2013/12/29 Javascript
angular简介和其特点介绍
2015/01/29 Javascript
JS函数this的用法实例分析
2015/02/05 Javascript
jQuery仿天猫实现超炫的加入购物车
2015/05/04 Javascript
JavaScript SHA512&SHA256加密算法详解
2015/08/11 Javascript
JavaScript入门系列之知识点总结
2016/03/24 Javascript
jQuery复制节点用法示例(clone方法)
2016/09/08 Javascript
ionic由于使用了header和subheader导致被遮挡的问题的两种解决方法
2016/09/22 Javascript
微信小程序 列表的上拉加载和下拉刷新的实现
2017/04/01 Javascript
解决vuejs 使用value in list 循环遍历数组出现警告的问题
2018/09/26 Javascript
angularJs使用ng-repeat遍历后选中某一个的方法
2018/09/30 Javascript
Vue利用Blob下载原生二进制数组文件
2019/09/25 Javascript
微信小程序实现组件顶端固定或底端固定效果(不随滚动而滚动)
2020/04/09 Javascript
vue 基于abstract 路由模式 实现页面内嵌的示例代码
2020/12/14 Vue.js
Python计算一个文件里字数的方法
2015/06/15 Python
Python图片裁剪实例代码(如头像裁剪)
2017/06/21 Python
TensorFlow变量管理详解
2018/03/10 Python
python 多进程并行编程 ProcessPoolExecutor的实现
2019/10/11 Python
Python 词典(Dict) 加载与保存示例
2019/12/06 Python
python 解决flask 图片在线浏览或者直接下载的问题
2020/01/09 Python
Python标准库shutil模块使用方法解析
2020/03/10 Python
使用python无账号无限制获取企查查信息的实例代码
2020/04/17 Python
html5页面结构_动力节点Java学院整理
2017/07/10 HTML / CSS
Evisu官方网站:日本牛仔品牌,时尚街头设计风格
2016/12/30 全球购物
医药大学生求职简历的自我评价
2013/10/17 职场文书
面料业务员岗位职责
2013/12/26 职场文书
《记承天寺夜游》教学反思
2014/02/16 职场文书
法人委托书范本格式
2014/09/15 职场文书
地下停车场租赁协议范本
2014/10/07 职场文书
行政答辩状范文
2015/05/21 职场文书
《小乌鸦爱妈妈》教学反思
2016/02/19 职场文书
Python干货实战之八音符酱小游戏全过程详解
2021/10/24 Python