python之unittest框架实现接口测试实例
python之unittest框架实现接口测试实例
接口测试的方法有很多种,具体到工具有postman,jmeter,fiddler等,但是工具的局限性是测试数据的组织较差,接口的返回工具的判断有限,工具也不能很好的生成可视化的报告和结果数据,使用代码来进行接口测试就便于进行更多的拓展和结果输出。
首先安装Requests库(需要安装好python环境)
在cmd窗口运行如下命令:
pip install requests
requests功能特性
Requests 完全满足今日 web 的需求。
Keep-Alive & 连接池
国际化域名和 URL
带持久 Cookie 的会话
浏览器式的 SSL 认证
自动内容解码
基本/摘要式的身份认证
优雅的 key/value Cookie
自动解压
Unicode 响应体
HTTP(S) 代理支持
文件分块上传
流下载
连接超时
分块请求
支持 .netrc
Requests 支持 Python 2.6—2.7以及3.3—3.7,而且能在 PyPy 下完美运行。
具体用法和介绍可参考这个地址http://cn.python-requests.org/zh_CN/latest/
构造请求
首先得熟悉完整的http请求的三部分构成:
请求行(url)
http://192.168.1.1:8080/test/cm.contact.getContactMembersFromServer/global
请求头(headers)
Content-Type’: ‘application/json; charset=UTF-8’,“authorization”:"78646a6178646a613153593338076183
请求体(params)
{“account”: “123456”, “Type”: “0”}
unittest框架介绍
unittest框架是python内置的单元测试框架,它能编写组织用例、执行用例,还可输出测试报告等。
使用unittest前需要了解该框架的五个概念:即test case,test suite,testLoader,test runner,test fixture,大家可以自行百度学习相关概念。
它具有如下优点:
使用断言判断返回布尔值来判断期望值和实际值的差异。
可以构建共同的初始化变量或实例。
框架结构可以组织用例批量运行。

import unittest
import requests
import json
#定义测试类InterfaceTest,父类为unittest.TestCase。
#继承unittest.TestCase的setUp和tearDown方法。
#继承承unittest.TestCase的各种断言方法。
class InterfaceTest(unittest.TestCase):
#使用setUp()方法执行初始化工作。
def setUp(self):
self.url = "http://192.168.1.1:8080/test/v2.cm.contact.getContactMembersFromServer/global"
self.headers = { 'Content-Type': 'application/json; charset=UTF-8',"authorization":"78646a6178646a613153593338076183"}
#tearDown()方法结束测试
def tearDown(self):
print("测试结束了")
#定义测试用例,必须以“test_”开头命名。
def test01(self):
json01 = {"userAccount": "123456", "queryType": "0"}
#将字典转换成字符串
jsonString01 = json.dumps(json01)
r = requests.post(self.url, data=jsonString01, headers=self.headers)
print("获取的响应结果json类型", r.text)
print("获取的响应状态码", r.status_code)
print("获取的响应头", r.headers['Content-Type'])
# 响应的json数据转换为可被python识别的数据类型
json_r = r.json()
print(json_r)
self.assertEqual(r.status_code,200)
self.assertIn("test01",r.text)
if __name__=='__main__':
#unittest.main()方法会搜索该模块下所有以test开头的测试用例方法,并自动执行它们。
unittest.main()
python之unittest框架实现接口测试实例的更多相关文章
- selenium + python自动化测试unittest框架学习(二)
1.unittest单元测试框架文件结构 unittest是python单元测试框架之一,unittest测试框架的主要文件结构: File >report >all_case.py &g ...
- selenium + python自动化测试unittest框架学习(一)selenium原理及应用
unittest框架的学习得益于虫师的<selenium+python自动化实践>这一书,该书讲得很详细,大家可以去看下,我也只学到一点点用于工作中,闲暇时记录下自己所学才能更加印象深刻. ...
- selenium自动化测试、Python单元测试unittest框架以及测试报告和日志输出
部分内容来自:https://www.cnblogs.com/klb561/p/8858122.html 一.基础介绍 核心概念:test case, testsuite, TestLoder,Tex ...
- python+requests+unittest执行自动化接口测试
1.安装requests.xlrd.json.unittest库 <1>pip 命令安装: pip install requestspip install xlrdpip install ...
- python之unittest框架使用
一.unittest框架 unittest属于python内置的单元测试框架. 二.unittest框架的核心概念 test case:指测试用例.unittest中提供了一个基本类TestCase, ...
- python selenium --unittest 框架
转自:http://www.cnblogs.com/fnng/p/3300788.html 学习unittest 很好的一个切入点就是从selenium IDE 录制导出脚本.相信不少新手学习sele ...
- python的unittest框架中的assert断言
unittest框架自带断言,如果想用assert断言,一定要引入unittest.TestCase框架才行,不然不会自动识别assert断言
- Selenium with Python 010 - unittest 框架(又称PyUnit 框架)
unittest进行python代码单元测试 calculator.py--被测试类 #!/usr/bin/env python # -*- coding: utf-8 -*- # 将要被测试的类 c ...
- Python+Selenium+Unittest框架使用——Selenium——定位元素(二)
1.定位元素(id.name.class.link.partial link) (1)find_element_by_id() 用百度定位测试,用firebug查看定位元素 ,输入框的id为“kw”, ...
随机推荐
- Cookie概述与应用
一.概述 Cookie是Web服务器保存在客户端的一系列文本信息 典型应用一:判断注册用户是否已经登录网站. 典型应用二:"购物车"的处理. Cookie的作用: 对特定对 ...
- QT+OpenCV+OpenGL安装
Ubuntu 10.04.3 LTS ("fresh" install) OpenCV 2.3.1 Qt SDK version 1.2.0 for Linux/X11 32-bi ...
- Qt5 中对 C++11 一些新特性的封装
在 Qt5 中,提供更多 C++11 的特性支持,接下来我们将进行详细的说明. slots (槽) 的 Lambda 表达式 Lambda表达式 是 C++11 中的一个新语法,允许定义匿名函数.匿名 ...
- rem.js移动布局实例教程
最近想买需要开发微站,微信公众号内嵌入的移动web,总结方法可以使用css3直接使用百分比布局,也可以使用bootstrap做响应式布局等多种方法,个人感觉看项目需要,笔者使用rem.js进行移动前端 ...
- PDF Expert for Mac v2.4.22 中文破解版下载 PDF阅读编辑软件
PDF Expert for Mac v2.4.22 中文破解版下载:http://h5ip.cn/CsRN PDF Expert for Mac, iOS 上最好用的 PDF 编辑器之一,现在终于打 ...
- 高并发 Nginx+Lua OpenResty系列(8)——Lua模版渲染
模版渲染 动态web网页开发是Web开发中一个常见的场景,比如像京东商品详情页,其页面逻辑是非常复杂的,需要使用模板技术来实现.而Lua中也有许多模板引擎,如目前京东在使用的lua-resty-tem ...
- .NET开发框架(一)-框架介绍与视频演示
本文主要介绍一套基于.NET CORE的SPA高并发.高可用的开发框架. 我们暂且称它为:(让你懂.NET)开发框架. 以此为主线,陆续编写教程,讲述如何构建高并发.高可用的框架. (欢迎转载与分享) ...
- Storm —— 集群环境搭建
一.集群规划 这里搭建一个3节点的Storm集群:三台主机上均部署Supervisor和LogViewer服务.同时为了保证高可用,除了在hadoop001上部署主Nimbus服务外,还在hadoop ...
- java中方法的重载和覆盖
java中方法的重载和覆盖 先来了解一下这两个名词的含义. 重载: 在一个类当中才可以重载,方法名相同,参数个数不同或参数个数相同而参数类型不同. 覆盖: 又称重写,在派生类(子类)中重写基类(父类) ...
- Python开发【第六篇】: 面向对象
内容概要 面向对象和面向过程 面向对象三大特征 面向对象的成员 类与类之间的关系 约束 type.issubclass.isinstance self.super.MRO 1. 面向对象和面向过程 0 ...