Pyhton-Requests之接口测试
非常感谢[百人计划]五娃的分享!下面是整理的笔记:
一、环境准备:
Pyhton 2.x或者Pyhton 3.x、Requests库。(我安装的版本是Pyhton 3.4)
安装
Pyhton 3.x安装参考文档http://www.cnblogs.com/lansan0701/p/6349442.html
Requests安装命令 pip install requests
使用上述命令的前提是已经安装了pip(pip安装也参考文档http://www.cnblogs.com/lansan0701/p/6349442.html)
二、Requests做接口测试,首先明白以下问题:
1、如何发送请求?
1)如何知道请求的URL?
2)如何辨别请求的方式?
解决如上两点方法:1技术提供接口文档(最佳方案);2自己抓包。
2、如何组装数据?
get方法和data方法参数组装区别(见下文示例2、3)。
3、如何处理响应内容?
1)设置断言assert;
2)自己写判断语句(唯一识别判断)。
三、下面是三种代码形式
1、发送请求(get请求)
#!/usr/bin/env python
#示例1
import requests
url_one="http://www.baidu.com/s?wd=python" #请求的url
response_message=requests.get(url_one)
print(response_message.status_code) #打印相应结果状态码
print(response_message.text) #打印响应内容
print(response_message.url) #打印请求URL if u'python' in response_message.text:
print('success')
assert(response_message.status_code,201)
2、参数组装
get请求
#!/usr/bin/env python
#示例2
import requests
url_two="http://www.baidu.com/s"
payload={'wd':'python'}
response_message=requests.get(url=url_two,params=payload)
print(response_message.status_code)
print(response_message.text)
print(response_message.url) if 'python' in response_message.text:
print('success')
if 200==response_message.status_code:
print('send success')
assert(response_message.status_code,201)
post请求
#!/usr/bin/env python
#示例3 import requests
url_three="http://www.baidu.com/s"
data={'wd':'python'}
response_message=requests.post(url=url_three,data=data)
print(response_message.text)
3、unittest框架
将上述代码采用unittest框架会更简洁,如下:
#!/usr/bin/env python
#示例4
import requests
import unittest class ThisTest(unittest.TestCase): def test_get_method_no_params(self):
url_one="http://www.baidu.com/s?wd=python"
response_message=requests.get(url=url_one)
self.assertIn('python',response_message.text)
self.assertEqual(200,response_message.status_code) def test_get_method_with_params(self):
url_two="http://www.baidu.com/s"
payload={'wd':'python'}
response_message=requests.get(url=url_two,params=payload)
self.assertIn('python',response_message.text)
self.assertEqual(200,response_message.status_code)
self.assertEqual(url_two+'?wd'+'='+payload['wd'],response_message.url) if __name__=='__main__':
unittest.main()
四、总结
接口测试入门需要熟悉一下几点:
- Requests库基础;
- 接口协议类型;
- 参数组装;
- 请求的Url;
- 相应结果的处理;
五、补充
接口测试用例是依据功能测试抽离出来的,不包含业务的测试。
Pyhton-Requests之接口测试的更多相关文章
- requests实现接口测试
python+requests实现接口测试 - get与post请求基本使用方法 http://www.cnblogs.com/nizhihong/p/6567928.html Requests ...
- python+requests+json 接口测试思路示例
实际项目中用python脚本实现接口测试的步骤: 1 发送请求,获取响应 >>2 提取响应里的数据,对数据进行必要的处理 >>3 断言响应数据是否与预期一致 以豆瓣接口为例 ...
- Python3 + requests + unittest接口测试
一.缘 起 笔者最近完成了基于Python3 + requests + unittest的接口测试脚本,故在此做一下记录,于己为复盘,于彼为学习和参考 二.思 路 接口测试无非三步: 首先,造数据 - ...
- python+requests之接口测试
最近学习接口测试,测试工具玩的差不多了,想用代码来尝试一下. 发现一个简单的库,requests 一:安装 pip install requests 二:使用 import requests url ...
- python+requests实现接口测试 - get与post请求使用(转载)
转自:http://www.cnblogs.com/nizhihong/p/6567928.html 简介:Requests 是用Python语言编写,基于 urllib,采用 Apache2 Lic ...
- python+requests实现接口测试 - cookies的使用
在很多时候,发送请求后,服务端会对发送请求方进行身份识别,如果请求中缺少识别信息或存在错误的识别信息, 会造成识别失败. 如一些需要用户登录以后才能访问的页面. import requests mya ...
- python3 requests 进行接口测试、爬虫使用总结
Requests 是第三方模块,如果要使用的话需要导入.Requests也可以说是urllib模块的升级版,使用上更方便. 这是使用urllib的例子. import urllib.request i ...
- python+requests实现接口测试 - get与post请求使用
简介:Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库.它比 urllib 更加方便,可以节约我们大量的工作,完全满足 ...
- python+requests+excel 接口测试
1.EXCEL文件接口保存方式,如图. 2.然后就是读取EXCEL文件中的数据方法,如下: import xlrd class readExcel(object): def __init__(self ...
- Python+requests+excel接口测试
2018-06-14 17:00:13 环境准备: - Python 3.7 - requests库 - xlrd 1.创建Excel文件 2.读取Excel文件 import xlrd clas ...
随机推荐
- Java并发基础--多线程基础
一.多线程基础知识 1.进程和线程 进程:是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间,一个应用程序可以同时运行多个进程:进程也是程序的一次执行过程,是系统运行程序的基本单位:系统运行 ...
- 05-Mysql数据库----补充内容
数据库命名规则: 数据库命名规则: 可以由字母.数字.下划线.@.#.$ 区分大小写 唯一性 不能使用关键字如 create select 不能单独使用数字 最长128位 # 基本上跟python或者 ...
- LINQ学习笔记——(2)Lambda表达式
最基本的 Lambda 表达式语法: (参数列表)=>{方法体} 说明: 参数列表中的参数类型可以是明确类型或者是推断类型 如果是推断类型,则参数的数据类型将由编译器根据上下文自动推断出 ...
- [译]10个有关SCP的命令
原文来源: https://www.tecmint.com/scp-commands-examples/ 基本语法 scp source_file_name username@destination_ ...
- 如何使用 window.open() 处理ajax请求返回的url: 在本页面打开并防止浏览器拦截
ajax请求中用window.open()打开请求返回url(例如实现下载功能时),可能会因为跨域问题导致浏览器拦截 解决办法是:在请求前,打开一个窗口,请求成功后将返回的url直接赋值给该窗口的hr ...
- SVN分支/主干Merge操作小记
一.前言 说来惭愧,鄙人从事开发多年,使用svn已经好几个年头了,但是却仅限于update.commit.compare之类的操作,最近想到github上学习别人写的NIO源码,顺便去熟悉git的使用 ...
- Linux设置快捷命令
vi ~/.bashrc 在.bashrc目录中,添加 alias 设置 例如 cdtools='cd ~/GIT/tools' 对于一条比较长的命令,如显示系统运行时长 cat /proc/upti ...
- bug 跟蚊子的相似之处
bug 跟蚊子的相似之处: 1.不知道藏在哪里. 2.不知道有多少. 3.总是在你即将睡觉休息的时候出现. 2 A:最近在看<一拳超人>,觉得咱们程序猿跟埼玉老师有点像啊! B:哪里像了? ...
- [Leetcode] Copy list with random pointer 对带有任意指针的链表深度拷贝
A linked list is given such that each node contains an additional random pointer which could point t ...
- JavaScript的相等(==)与全等(===)
有段代码如下: view source print? 1 if (![] == []) { 2 //Code 3 } ![] == [],true or false? 我们都知道,ECMA ...