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 相关文章推荐
浅谈Django自定义模板标签template_tags的用处
Dec 20 Python
python 实现在Excel末尾增加新行
May 02 Python
django ajax json的实例代码
May 29 Python
Python numpy实现二维数组和一维数组拼接的方法
Jun 05 Python
Python for循环中的陷阱详解
Jul 13 Python
python matplotlib库绘制条形图练习题
Aug 10 Python
python多线程案例之多任务copy文件完整实例
Oct 29 Python
pytorch绘制并显示loss曲线和acc曲线,LeNet5识别图像准确率
Jan 02 Python
在echarts中图例legend和坐标系grid实现左右布局实例
May 16 Python
PyCharm2020最新激活码+激活码补丁(亲测最新版PyCharm2020.2激活成功)
Nov 25 Python
Python xmltodict模块安装及代码实例
Oct 05 Python
Flask-SocketIO服务端安装及使用代码示例
Nov 26 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代码
2008/09/10 PHP
Erlang的运算符(比较运算符,数值运算符,移位运算符,逻辑运算符)
2012/07/23 PHP
php实现转换ubb代码的方法
2015/06/18 PHP
PHP微信开发之微信消息自动回复下所遇到的坑
2016/05/09 PHP
简单实现PHP留言板功能
2016/12/21 PHP
javascript string字符串优化问题
2011/07/31 Javascript
javascript中input中readonly和disabled区别介绍
2012/10/23 Javascript
Jquery 类网页微信二维码图块滚动效果具体实现
2013/10/14 Javascript
在页面上用action传递参数到后台出现乱码的解决方法
2013/12/31 Javascript
类似天猫商品详情随浏览器移动的示例代码
2014/02/27 Javascript
javascript去除空格方法小结
2015/05/21 Javascript
基于Jquery插件Uploadify实现实时显示进度条上传图片
2020/03/26 Javascript
jQuery得到多个值只能用取Class ,不能用取ID的方法
2016/12/04 Javascript
jQuery 实现批量提交表格多行数据的方法
2018/08/09 jQuery
async/await优雅的错误处理方法总结
2019/01/30 Javascript
vue-cli的build的文件夹下没有dev-server.js文件配置mock数据的方法
2019/04/17 Javascript
原生JS实现动态添加新元素、删除元素方法
2019/05/05 Javascript
JS实现页面跳转与刷新的方法汇总
2019/08/30 Javascript
javascript实现移动端上传图片功能
2020/08/18 Javascript
JS实现页面侧边栏效果探究
2021/01/08 Javascript
原生JavaScript实现换肤
2021/02/19 Javascript
[05:07]DOTA2英雄梦之声_第14期_暗影恶魔
2014/06/20 DOTA
Python常用列表数据结构小结
2014/08/06 Python
python 读取excel文件生成sql文件实例详解
2017/05/12 Python
为什么选择python编程语言入门黑客攻防 给你几个理由!
2018/02/02 Python
解读python如何实现决策树算法
2018/10/11 Python
Python多进程编程multiprocessing代码实例
2020/03/12 Python
什么是Python变量作用域
2020/06/03 Python
python有几个版本
2020/06/17 Python
使用CSS Grid布局实现网格的流动
2014/12/30 HTML / CSS
2014镇党委班子对照检查材料思想汇报
2014/09/23 职场文书
2016年圣诞节义工活动总结
2016/04/01 职场文书
python中sys模块的介绍与实例
2021/04/17 Python
详解JavaScript中Arguments对象用途
2021/08/30 Javascript
把77A收信机改造成收音机
2022/04/05 无线电
教你如何用cmd快速登录服务器
2022/06/10 Servers