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清除字符串里非数字字符的方法
Jul 02 Python
Python内建数据结构详解
Feb 03 Python
关于Python面向对象编程的知识点总结
Feb 14 Python
Python中input与raw_input 之间的比较
Aug 20 Python
Python编程之基于概率论的分类方法:朴素贝叶斯
Nov 11 Python
在CentOS6上安装Python2.7的解决方法
Jan 09 Python
python迭代dict的key和value的方法
Jul 06 Python
Python3匿名函数用法示例
Jul 25 Python
Python爬虫框架Scrapy常用命令总结
Jul 26 Python
Python any()函数的使用方法
Oct 28 Python
Django+RestFramework API接口及接口文档并返回json数据操作
Jul 12 Python
宝塔更新Python及Flask项目的部署
Apr 11 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
BBS(php & mysql)完整版(三)
2006/10/09 PHP
PHP 加密与解密的斗争
2009/04/17 PHP
php使用Header函数,PHP_AUTH_PW和PHP_AUTH_USER做用户验证
2016/05/04 PHP
PHP获取路径和目录的方法总结【必看篇】
2017/03/04 PHP
PHP微商城开源代码实例
2019/03/27 PHP
TNC vs IO BO3 第一场2.13
2021/03/10 DOTA
不错的JS中变量相关的细节分析
2007/08/13 Javascript
ajax中get和post的说明及使用与区别
2012/12/23 Javascript
利用了jquery的ajax实现二级联互动菜单
2013/12/02 Javascript
使用GruntJS构建Web程序之Tasks(任务)篇
2014/06/06 Javascript
vue.js源代码core scedule.js学习笔记
2017/07/03 Javascript
微信小程序“摇一摇”的实例代码
2017/07/20 Javascript
详解Vue.js组件可复用性的混合(mixin)方式和自定义指令
2017/09/06 Javascript
nodejs 图解express+supervisor+ejs的用法(推荐)
2017/09/08 NodeJs
解决layer弹出层自适应页面大小的问题
2019/09/16 Javascript
js new Date()实例测试
2019/10/31 Javascript
浅谈vuex中store的命名空间
2019/11/08 Javascript
解决VUEX的mapState/...mapState等取值问题
2020/07/24 Javascript
vue element-ui中table合计指定列求和实例
2020/11/02 Javascript
Python写的Discuz7.2版faq.php注入漏洞工具
2014/08/06 Python
pygame游戏之旅 创建游戏窗口界面
2018/11/20 Python
浅谈python str.format与制表符\t关于中文对齐的细节问题
2019/01/14 Python
Python深拷贝与浅拷贝用法实例分析
2019/05/05 Python
PyTorch和Keras计算模型参数的例子
2020/01/02 Python
python中_del_还原数据的方法
2020/12/09 Python
python链表类中获取元素实例方法
2021/02/23 Python
出口公司经理求职简历中的自我评价
2013/10/13 职场文书
毕业生求职信的经典写法
2014/01/31 职场文书
产假请假条
2014/04/10 职场文书
教师党员学习十八届四中全会思想汇报
2014/11/03 职场文书
行政主管岗位职责范本
2015/04/09 职场文书
绿里奇迹观后感
2015/06/15 职场文书
2016年大学生社会实践心得体会
2015/10/09 职场文书
导游词之潮音寺
2019/09/26 职场文书
创作书写之导游词实用技巧分享(干货)
2019/12/20 职场文书
python3 实现mysql数据库连接池的示例代码
2021/04/17 Python