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 SQLAlchemy基本操作和常用技巧(包含大量实例,非常好)
May 06 Python
python使用Image处理图片常用技巧分析
Jun 01 Python
WINDOWS 同时安装 python2 python3 后 pip 错误的解决方法
Mar 16 Python
利用python实现微信头像加红色数字功能
Mar 26 Python
python日期相关操作实例小结
Jun 24 Python
Python3批量移动指定文件到指定文件夹方法示例
Sep 02 Python
Django项目使用ckeditor详解(不使用admin)
Dec 17 Python
Django 路由层URLconf的实现
Dec 30 Python
使用PyTorch训练一个图像分类器实例
Jan 08 Python
详解Python利用configparser对配置文件进行读写操作
Nov 03 Python
Python解析微信dat文件的方法
Nov 30 Python
python本地文件服务器实例教程
May 02 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+java实现自动新闻滚动窗口
2006/10/09 PHP
详解:――如何将图片储存在数据库里
2006/12/05 PHP
PHP中SSO Cookie登录分析和实现
2015/11/06 PHP
php json转换相关知识(小结)
2018/12/21 PHP
颜色选择器 Color Picker,IE,Firefox,Opera,Safar
2010/11/25 Javascript
js获取网页高度(详细整理)
2012/12/28 Javascript
json数据处理技巧(字段带空格、增加字段、排序等等)
2013/06/14 Javascript
JavaScript学习笔记之数组求和方法
2016/03/23 Javascript
微信小程序 登录实例详解
2017/01/16 Javascript
node.js+jQuery实现用户登录注册AJAX交互
2017/04/28 jQuery
详解微信小程序中的页面代码中的模板的封装
2017/10/12 Javascript
React diff算法的实现示例
2018/04/20 Javascript
vue单页面应用打开新窗口显示跳转页面的实例
2018/09/21 Javascript
详解新手使用vue-router传参时注意事项
2019/06/06 Javascript
如何在wxml中直接写js代码(wxs)
2019/11/14 Javascript
基于脚手架创建Vue项目实现步骤详解
2020/08/03 Javascript
详解vue v-model
2020/08/31 Javascript
javascript中导出与导入实现模块化管理教程
2020/12/03 Javascript
使用Python3中的gettext模块翻译Python源码以支持多语言
2015/03/31 Python
Python基于递归算法实现的汉诺塔与Fibonacci数列示例
2018/04/18 Python
pandas获取groupby分组里最大值所在的行方法
2018/04/20 Python
python中验证码连通域分割的方法详解
2018/06/04 Python
使用Python实现租车计费系统的两种方法
2018/09/29 Python
python 读取数据库并绘图的实例
2019/12/03 Python
python错误调试及单元文档测试过程解析
2019/12/19 Python
python 对象真假值的实例(哪些视为False)
2020/12/11 Python
西雅图的买手店:Totokaelo
2019/10/19 全球购物
几个Shell Script面试题
2012/08/31 面试题
医学类个人求职信范文
2014/02/05 职场文书
八一慰问活动方案
2014/02/07 职场文书
汽车转让协议书
2015/01/29 职场文书
贷款收入证明范本
2015/06/12 职场文书
安全温馨提示语大全
2015/07/14 职场文书
在 SQL 语句中处理 NULL 值的方法
2021/06/07 SQL Server
Linux中Nginx的防盗链和优化的实现代码
2021/06/20 Servers
CSS3实现360度循环旋转功能
2022/02/12 HTML / CSS