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删除文件示例分享
Jan 28 Python
数据挖掘之Apriori算法详解和Python实现代码分享
Nov 07 Python
Windows和Linux下使用Python访问SqlServer的方法介绍
Mar 10 Python
python开发之基于thread线程搜索本地文件的方法
Nov 11 Python
Python基础教程之浅拷贝和深拷贝实例详解
Jul 15 Python
Python实现的寻找前5个默尼森数算法示例
Mar 25 Python
基于python实现简单日历
Jul 28 Python
Linux 修改Python命令的方法示例
Dec 03 Python
浅谈python3发送post请求参数为空的情况
Dec 28 Python
python实现视频分帧效果
May 31 Python
python图形开发GUI库wxpython使用方法详解
Feb 14 Python
python 利用panda 实现列联表(交叉表)
Feb 06 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
上海永华YH-R296(华普R-96)12波段立体声收音机的分析和打理
2021/03/02 无线电
Php+SqlServer实现分页显示
2006/10/09 PHP
yii实现创建验证码实例解析
2014/07/31 PHP
php在数组中查找指定值的方法
2015/03/17 PHP
PHP使用in_array函数检查数组中是否存在某个值
2015/03/25 PHP
详解PHP中的状态模式编程
2015/08/11 PHP
PHP二维数组矩形转置实例
2016/07/20 PHP
浅谈PHP安全防护之Web攻击
2017/01/03 PHP
javascript下查找父节点的简单方法
2007/08/13 Javascript
Jquery多选下拉列表插件jquery multiselect功能介绍及使用
2013/05/24 Javascript
js中split函数的使用方法说明
2013/12/26 Javascript
JS 打印界面的CSS居中代码适用所有浏览器
2014/03/19 Javascript
JS 在指定数组中随机取出N个不重复的数据
2014/06/10 Javascript
基于Jquery代码实现支持PC端手机端幻灯片代码
2015/11/17 Javascript
JS不完全国际化&本地化手册 之 理论篇
2016/09/27 Javascript
使用store来优化React组件的方法
2017/10/23 Javascript
详解ES6中的 Set Map 数据结构学习总结
2018/11/06 Javascript
你不知道的SpringBoot与Vue部署解决方案
2020/11/09 Javascript
[01:45]2014DOTA2 TI预选赛预选赛 战前探营!
2014/05/21 DOTA
详解python中xlrd包的安装与处理Excel表格
2016/12/16 Python
机器学习python实战之决策树
2017/11/01 Python
Python简单计算数组元素平均值的方法示例
2017/12/26 Python
django框架cookie和session用法实例详解
2019/12/10 Python
Python动态声明变量赋值代码实例
2019/12/30 Python
Python 从attribute到property详解
2020/03/05 Python
使用darknet框架的imagenet数据分类预训练操作
2020/07/07 Python
Dyson加拿大官方网站:购买戴森吸尘器,风扇,冷热器及配件
2016/10/26 全球购物
时装界的“朋克之母”:Vivienne Westwood
2017/07/06 全球购物
英国领先的票务代理商之一:The Ticket Factory
2019/02/09 全球购物
大学生毕业自我鉴定范文
2013/09/19 职场文书
节约粮食标语
2014/06/18 职场文书
企业党建工作汇报材料
2014/08/19 职场文书
中小学校园安全广播稿
2014/09/29 职场文书
总经理致辞
2015/07/29 职场文书
结婚幸福感言
2015/08/01 职场文书
Python绘画好看的星空图
2022/03/17 Python