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使用plotly绘制数据图表的方法
Jul 18 Python
python中hashlib模块用法示例
Oct 30 Python
对TensorFlow的assign赋值用法详解
Jul 30 Python
由面试题加深对Django的认识理解
Jul 19 Python
python Django 创建应用过程图示详解
Jul 29 Python
python解析yaml文件过程详解
Aug 30 Python
简单了解pytest测试框架setup和tearDown
Apr 14 Python
python 实现任务管理清单案例
Apr 25 Python
Python+PyQt5+MySQL实现天气管理系统
Jun 16 Python
Python selenium模块实现定位过程解析
Jul 09 Python
Python基于pillow库实现生成图片水印
Sep 14 Python
Python实现简单得递归下降Parser
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 删除无限级目录与文件代码共享
2008/11/22 PHP
wamp服务器访问php非常缓慢的解决过程
2015/07/01 PHP
Yii2框架数据库简单的增删改查语法小结
2016/08/31 PHP
laravel框架select2多选插件初始化默认选中项操作示例
2020/02/18 PHP
常见的5个PHP编码小陋习以及优化实例讲解
2021/02/27 PHP
jQuery调用AJAX时Get和post公用的乱码解决方法实例说明
2013/06/04 Javascript
使用jQuery实现input数值增量和减量的方法
2015/01/24 Javascript
JS动态创建DOM元素的方法
2015/06/09 Javascript
Bootstrap入门书籍之(三)栅格系统
2016/02/17 Javascript
Angular中使用ui router实现系统权限控制及开发遇到问题
2016/09/23 Javascript
Bootstrap CSS组件之输入框组
2016/12/17 Javascript
JS如何生成一个不重复的ID的函数
2016/12/25 Javascript
jquery+ajax实现省市区三级联动 (封装和不封装两种方式)
2017/05/15 jQuery
利用npm 安装删除模块的方法
2018/05/15 Javascript
vue自定义指令的创建和使用方法实例分析
2018/12/04 Javascript
Vue中的this.$options.data()和this.$data用法说明
2020/07/26 Javascript
在Python编程过程中用单元测试法调试代码的介绍
2015/04/02 Python
django实现同一个ip十分钟内只能注册一次的实例
2017/11/03 Python
对python中的乘法dot和对应分量相乘multiply详解
2018/11/14 Python
详解python 3.6 安装json 模块(simplejson)
2019/04/02 Python
Python 给屏幕打印信息加上颜色的实现方法
2019/04/24 Python
python-pyinstaller、打包后获取路径的实例
2019/06/10 Python
使用pyecharts生成Echarts网页的实例
2019/08/12 Python
python 数据库查询返回list或tuple实例
2020/05/15 Python
Python Selenium模块安装使用教程详解
2020/07/09 Python
基于CSS3实现图片模糊过滤效果
2015/11/19 HTML / CSS
用HTML5制作视频拼图的教程
2015/05/13 HTML / CSS
微软俄罗斯官方网站:Microsoft俄罗斯
2016/09/18 全球购物
史蒂夫·马登加拿大官网:Steve Madden加拿大
2017/11/18 全球购物
班级团队活动方案
2014/08/14 职场文书
质量月活动总结
2014/08/26 职场文书
教师听课评语大全
2014/12/31 职场文书
离婚答辩状怎么写
2015/05/22 职场文书
七年级英语教学反思
2016/02/15 职场文书
Python实现随机生成迷宫并自动寻路
2021/06/13 Python
python工具dtreeviz决策树可视化和模型可解释性
2022/03/03 Python