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设置socket代理的方法
Jan 14 Python
Python中取整的几种方法小结
Jan 06 Python
Python三种遍历文件目录的方法实例代码
Jan 19 Python
Python sklearn KFold 生成交叉验证数据集的方法
Dec 11 Python
Python使用folium excel绘制point
Jan 03 Python
python+ffmpeg批量去视频开头的方法
Jan 09 Python
Python实现打砖块小游戏代码实例
May 18 Python
Python 迭代,for...in遍历,迭代原理与应用示例
Oct 12 Python
windows下的pycharm安装及其设置中文菜单
Apr 23 Python
Django model.py表单设置默认值允许为空的操作
May 19 Python
pytorch 多分类问题,计算百分比操作
Jul 09 Python
在前女友婚礼上,用Python破解了现场的WIFI还把名称改成了
May 28 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中修改浏览器的User-Agent来伪装你的浏览器和操作系统
2011/07/29 PHP
使用php测试硬盘写入速度示例
2014/01/27 PHP
PHP 魔术变量和魔术函数详解
2015/02/25 PHP
PHP实现C#山寨ArrayList的方法
2015/07/16 PHP
谈谈从phpinfo中能获取哪些值得注意的信息
2017/03/28 PHP
PHP实现的简单在线计算器功能示例
2017/08/02 PHP
在IE下:float属性会影响offsetTop的取值
2006/12/22 Javascript
javascript ie6兼容position:fixed实现思路
2013/04/01 Javascript
JQuery教学之性能优化
2014/05/14 Javascript
JavaScript中遍历对象的property的3种方法介绍
2014/12/30 Javascript
html的DOM中Event对象onblur事件用法实例
2015/01/21 Javascript
在js里怎么实现Xcode里的callFuncN方法(详解)
2016/11/05 Javascript
Node.js和Express简单入门介绍
2017/03/24 Javascript
echart简介_动力节点Java学院整理
2017/08/11 Javascript
node下使用UglifyJS压缩合并JS文件的方法
2018/03/07 Javascript
vue+element导航栏高亮显示的解决方式
2019/11/12 Javascript
JavaScript canvas绘制折线图
2020/02/18 Javascript
原生JS实现烟花效果
2020/03/10 Javascript
[01:04:39]OG vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
python采集百度百科的方法
2015/06/05 Python
python 写的一个爬虫程序源码
2016/02/28 Python
Python 爬取携程所有机票的实例代码
2018/06/11 Python
Python3 导入上级目录中的模块实例
2019/02/16 Python
python3操作注册表的方法(Url protocol)
2020/02/05 Python
Python3+Selenium+Chrome实现自动填写WPS表单
2020/02/12 Python
python语言中有算法吗
2020/06/16 Python
联想韩国官网:Lenovo Korea
2018/05/10 全球购物
巴西备受欢迎的服装和生活方式品牌:FARM Rio
2020/02/04 全球购物
俄罗斯童装网上商店:BebaKids
2020/06/06 全球购物
移动通信行业实习自我鉴定
2013/09/28 职场文书
运动会入场词100字
2014/02/06 职场文书
大学四年个人的自我评价
2014/02/26 职场文书
大学生党员个人总结
2015/02/13 职场文书
创卫工作总结2015
2015/04/22 职场文书
2019年警察入党转正申请书最新范文
2019/09/03 职场文书
Python实现视频中添加音频工具详解
2021/12/06 Python