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系列之数据处理编程实例(一)
May 22 Python
安装Python和pygame及相应的环境变量配置(图文教程)
Jun 04 Python
python机器学习理论与实战(四)逻辑回归
Jan 19 Python
Python continue继续循环用法总结
Jun 10 Python
解决pyinstaller打包exe文件出现命令窗口一闪而过的问题
Oct 31 Python
Python通用循环的构造方法实例分析
Dec 19 Python
Python后台管理员管理前台会员信息的讲解
Jan 28 Python
使用Python 统计高频字数的方法
Jan 31 Python
Windows下python3安装tkinter的问题及解决方法
Jan 06 Python
Python爬虫库BeautifulSoup的介绍与简单使用实例
Jan 25 Python
浅谈Python基础之列表那些事儿
May 11 Python
Python字典的基础操作
Nov 01 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
一个简易需要注册的留言版程序
2006/10/09 PHP
Codeigniter上传图片出现“You did not select a file to upload”错误解决办法
2014/06/12 PHP
js类后台管理菜单类-MenuSwitch
2007/09/12 Javascript
cookie的复制与使用记住用户名实现代码
2013/11/04 Javascript
NodeJS制作爬虫全过程(续)
2014/12/22 NodeJs
jQuery中nextUntil()方法用法实例
2015/01/07 Javascript
多个jQuery版本共存的处理方案
2015/03/17 Javascript
javascript等号运算符使用详解
2015/04/16 Javascript
基于jquery实现在线选座订座之影院篇
2015/08/24 Javascript
利用JS生成博文目录及CSS定制博客
2016/02/10 Javascript
JavaScript设计模式之工厂模式简单实例教程
2018/07/03 Javascript
微信小程序websocket实现聊天功能
2020/03/30 Javascript
微信小程序封装的HTTP请求示例【附升级版】
2019/05/11 Javascript
如何在微信小程序中存setStorage
2019/12/13 Javascript
JavaScript本地储存:localStorage、sessionStorage、cookie的使用
2020/10/13 Javascript
[01:13:59]LGD vs Mineski Supermajor 胜者组 BO3 第三场 6.5
2018/06/06 DOTA
[02:08]什么藏在DOTA2 TI9“小紫本”里?斧王历险记告诉你!
2019/05/17 DOTA
[47:03]完美世界DOTA2联赛PWL S3 access vs LBZS 第一场 12.20
2020/12/23 DOTA
python 简易计算器程序,代码就几行
2009/08/29 Python
详解Python装饰器由浅入深
2016/12/09 Python
Python生成8位随机字符串的方法分析
2017/12/05 Python
谈谈python中GUI的选择
2018/03/01 Python
Django 路由控制的实现
2019/07/17 Python
python scrapy爬虫代码及填坑
2019/08/12 Python
python3实现用turtle模块画一棵随机樱花树
2019/11/21 Python
python库skimage给灰度图像染色的方法示例
2020/04/27 Python
基于python实现地址和经纬度转换
2020/05/19 Python
python 实现"神经衰弱"翻牌游戏
2020/11/09 Python
SHEIN台湾:购买最新流行女装服饰
2019/05/18 全球购物
如何在发生故障的节点上重新安装 SQL Server
2013/03/14 面试题
节能宣传周活动总结
2014/05/08 职场文书
国土资源局开展党的群众路线教育实践活动整改措施
2014/09/26 职场文书
校园环境卫生倡议书
2015/04/29 职场文书
学习党章心得体会2016
2016/01/15 职场文书
五年级作文之想象作文
2019/10/30 职场文书
python 安全地删除列表元素的方法
2022/03/16 Python