# Python进行接口测试
python 做接口测试
用到模块 requests
安装模块`python -m pip install requests`
1. 由于pip命令可能安装失败所以有时我们要通过下载第三方库文件来进行安装。
2. 在github上的地址为:**`https://github.com/requests/requests`**
3. 下载文件到本地之后,解压到python安装目录。
4. 然后在dos界面cd到该目录,在此处运行命令行并输入:**`python setup.py install`**即可。
> ### requests发送请求
| 方法 | 解释 |
| --- | --- |
| requests.get() | 获取html的主要方法 |
| requests.post() | 向html网页提交post请求的方法 |
| requests.delete() | 向html提交删除请求 |
| requests.put() | 向html网页提交put请求的方法 |
| requests.head() | 获取html头部信息的主要方法 |
| requests.patch() | 向html提交局部修改的请求 |
* 发送请求示例
~~~
import requests
r = requests.get(url)#发送get请求
r = requests.post(url)#发送post请求
# 其余请求的发送方式一样,故不再演示
~~~
在发送请求时,除了url之外,还有许多参数,一一来看
* **`url`**
url,请求的路径,表示这个请求发送到哪里去
~~~
import requests
myurl = 'http://brtc.imsam.cn'
r = requests.get(url=myurl)
~~~
* **`params`**
跟url一起发送的参数(以字典方式传递),通常使用在**get**请求中
~~~
import requests
myurl = 'http://brtc.imsam.cn'
kv = {'username':'张三','age':'18'}
r = requests.get(url=myurl,params=kv)
~~~
* **`data`**
字典,与params不同的是,data提交的数据并不放在url链接里,通常在**post**请求中使用
~~~
import requests
myurl = 'http://brtc.imsam.cn'
kv = {'username':'张三','age':'18'}
r = requests.post(url=myurl,data=kv)
~~~
* **`json`**
以json的方式发送请求数据,通常也用在**post**请求中
~~~
import requests
myurl = 'http://brtc.imsam.cn'
kv = {'username':'张三','age':'18'}
r = requests.post(url=myurl,json=kv)
~~~
* **`headers`**
定制请求的头部信息
~~~
import requests
myurl = 'http://brtc.imsam.cn'
kv = {'username':'张三','age':'18'}
hd ={"User-Agent":" Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36"}
r = requests.get(url=myurl,params=kv,headers=hd)
~~~
* **`files`**
发送带文件的请求
~~~
import requests
myurl = 'http://brtc.imsam.cn'
upfile = {'file': open('文件路径', 'rb')}
r = requests.post(url=myurl,files=upfile)
~~~
* **`timeout`**
设置超时时间
~~~
import requests
myurl = 'http://brtc.imsam.cn'
kv = {'username':'张三','age':'18'}
r = requests.post(url=myurl,data=kv,timeout=0.01)
~~~
* **`proxies`**
设置访问代理
~~~
import requests
myurl = 'http://brtc.imsam.cn'
kv = {'username':'张三','age':'18'}
proxy = {"http": "http://10.10.1.10:3128","https": "https://10.10.1.100:4444"}
r = requests.post(url=myurl,data=kv,proxies=proxy)
~~~
如果代理需要用户名和密码,则需要这样:
~~~
import requests
myurl = 'http://brtc.imsam.cn'
kv = {'username':'张三','age':'18'}
proxy = {"http": "http://用户名:密码@10.10.1.10:3128","https": "https://用户名:密码10.10.1.100:4444"}
r = requests.post(url=myurl,data=kv,proxies=proxy)
~~~
* **`自动带上cookie`**
~~~
s = requests.Session()
r = s.get('url')
~~~
> ### 响应内容
~~~
import requests
myurl = 'http://brtc.imsam.cn'
kv = {'username':'张三','age':'18'}
r = requests.post(url=myurl,data=kv)
r.text# 以字符串方式返回响应内容
# 更多响应内容如下
~~~
| 响应 | 含义 |
| --- | --- |
| r.encoding | #获取当前的编码 |
| r.encoding = 'utf-8' | #设置编码 |
| r.text | #以encoding解析返回内容。字符串方式的响应体,会自动根据响应头部的字符编码进行解码。 |
| r.content | #以字节形式(二进制)返回。字节方式的响应体,会自动为你解码 gzip 和 deflate 压缩。 |
| r.headers | #以字典对象存储服务器响应头,但是这个字典比较特殊,字典键不区分大小写,若键不存在则返回None |
| r.status\_code | #响应状态码 |
| r.json() | #Requests中内置的JSON解码器,以json形式返回,前提返回的内容确保是json格式的,不然解析出错会抛异常 |
| r.raise\_for\_status() | #失败请求(非200响应)抛出异常 |
- 总章
- Oracle数据库
- 常见的Linux命令
- 理论内容整理
- 给你如下功能怎么测试
- 支付怎么测试
- 购物车怎么测试?
- 搜索功能怎么测试?
- 文件上传功能怎么测试?
- 登录功能怎么测试?
- 还款功能怎么测试?
- 订单功能怎么测试?
- 自动化测试篇
- 必记代码
- 接口测试篇
- 性能测试篇
- app测试篇
- 面试篇
- 项目篇
- 职业素养篇
- 真实案列分析
- 如何预防冷场
- redis
- 琪琪
- 禅道搭建手册
- 禅道搭建手册1
- 禅道的基本使用
- 基于Python3_Selenium的自动化
- Python3安装
- Python3基础
- 列表_元组_集合
- 函数_模块_类
- Python代码
- selenium环境
- selenium定位方式
- Selenium常见操作
- toast读取代码
- 添加用户代码
- 隐式等待与显式等待
- 循环添加用户
- 测试用例练习
- 测试用例优化
- Fiddler抓包工具
- 安装
- Fiddler使用
- 接口测试
- Jmeter的安装
- Jmeter使用
- jmeter+ant+jenkins接口自动化测试框架
- 接口安全测试
- 性能测试
- Nmon监控LInux系统
- Jmeter分布式
- 性能测试-具体案例
- Monkey
- 安装1
- Monkey使用
- appium自动化
- appium的安装
- appium基本使用
- 真机USB连接
- 问题排查
- Jenkins持续集成
- Jenkins安装
- Jenkins配置任务
- Python扩展内容
- Python连接数据库
- Python进行接口测试
- 开启服务