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牛刀小试密码爆破
Feb 03 Python
python解析xml文件实例分享
Dec 04 Python
使用Python的urllib2模块处理url和图片的技巧两则
Feb 18 Python
pandas or sql计算前后两行数据间的增值方法
Apr 20 Python
在Django中输出matplotlib生成的图片方法
May 24 Python
numpy判断数值类型、过滤出数值型数据的方法
Jun 09 Python
Python 中导入csv数据的三种方法
Nov 01 Python
Python编程实现tail-n查看日志文件的方法
Jul 08 Python
pycharm修改文件的默认打开方式的步骤
Jul 29 Python
python基于property()函数定义属性
Jan 22 Python
Python decorator拦截器代码实例解析
Apr 04 Python
Python离线安装各种库及pip的方法
Nov 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
《一拳超人》埼玉一拳下去,他们存在了800年毫无意义!
2020/03/02 日漫
笑谈配置,使用Smarty技术
2007/01/04 PHP
CI框架中zip类应用示例
2014/06/17 PHP
php实现的统计字数函数定义与使用示例
2017/07/26 PHP
Laravel如何使用数据库事务及捕获事务失败后的异常详解
2017/10/23 PHP
php处理多图上传压缩代码功能
2018/06/13 PHP
Js+XML 操作
2006/09/20 Javascript
简易js代码实现计算器操作
2013/04/15 Javascript
js随机颜色代码的多种实现方式
2013/04/23 Javascript
jquery1.10给新增元素绑定事件的方法
2014/03/06 Javascript
使用jQuery中的when实现多个AJAX请求对应单个回调的例子分享
2014/04/23 Javascript
基于Jquery+Ajax+Json实现分页显示附效果图
2014/07/30 Javascript
简单分析javascript面向对象与原型
2015/05/21 Javascript
JavaScript基本数据类型及值类型和引用类型
2015/08/25 Javascript
Angularjs中UI Router全攻略
2016/01/29 Javascript
jquery实现的判断倒计时是否结束代码
2016/02/05 Javascript
微信小程序 教程之注册页面
2016/10/17 Javascript
Javascript highcharts 饼图显示数量和百分比实例代码
2016/12/06 Javascript
vue中使用ueditor富文本编辑器
2018/02/08 Javascript
angular json对象push到数组中的方法
2018/02/27 Javascript
React Native使用fetch实现图片上传的示例代码
2018/03/07 Javascript
如何理解Vue的v-model指令的使用方法
2018/07/19 Javascript
vue-cli V3.0版本的使用详解
2018/10/24 Javascript
Python 学习笔记
2008/12/27 Python
python optparse模块使用实例
2015/04/09 Python
Python用imghdr模块识别图片格式实例解析
2018/01/11 Python
python 判断linux进程,并杀死进程的实现方法
2019/07/01 Python
Python Request爬取seo.chinaz.com百度权重网站的查询结果过程解析
2019/08/13 Python
Django nginx配置实现过程详解
2020/09/10 Python
Pytorch自定义Dataset和DataLoader去除不存在和空数据的操作
2021/03/03 Python
校园之声广播稿
2014/01/31 职场文书
优秀学生获奖感言
2014/02/15 职场文书
三傻大闹宝莱坞观后感
2015/06/03 职场文书
2015年车间管理工作总结
2015/07/23 职场文书
制作能在nginx和IIS中使用的ssl证书
2021/06/21 Servers
vue实现input输入模糊查询的三种方式
2022/08/14 Vue.js