接口自动化:四.发送post请求
前言
平时工作过程中,最常见http和https使我们最常见的两种协议。https的请求相对于http来说安全级别高,但是需要验证ssl证书。
ssl证书验证
关闭fddler,调试的时候加参数verify=false,添加以下代码,https协议可以正常访问。
Import urllib3 #使用这个方法就可以了
Urllib3.disbale_warnings() #忽略警告
常见post请求
Post请求参数一部分在url里,另一部分可以再body里面,常见的有四种:
1.第一种:application/json:{“key1”:”value1”,”key2”:”value2”}
json={}
2.第二种:application/x-www-form-urlencoded:name1= value1&name2=value2
data=
3.第三种:multipart/form-data:这一种是表单格式的
(文件上传 file=,图片上传等混合式)
data=
4. Content-Type:octets/stream
(文件下载)
data=
5.text/xml
data=
Post的请求body是可以没有的,比如下面这个post接口,参数都在url上,这种post请求不需要传body。
接口文档地址:https://www.juhe.cn/docs/api/id/39
application/json
body为json
登录接口相关文档信息如下:
访问地址:api/v1/login/
请求方式:post
请求头部:Content-Type:application/json
请求参数示例:
{"username":"test", "password":"123456"}
返回示例
{
"code": 0,
"msg": "login success!",
"username": "test",
"token": "cdaadd690209106dbea71e1f4c1e728cadfdd6a4"
}
当拿到接口文档你需要知道的事情:
1.接口的服务器部署在哪个服务器上。
Host地址,端口号
2.对应数据库地址,最好能远程访问
数据校对,数据库具体库名
3.后台日志查询
需要知道项目部署怎么查日志
4.自动化之前先设计接口测试用例,先手工测试通过。
body为json格式
application/json 直接传json=data
Body为x-www-form-urlencoded
接口文档示例
访问路径: /api/v4/login
请求方式:POST
头部
Content-Type: application/x-www-form-urlencoded
请求参数示例:
username=test1&password=123456
返回示例
{
"code": 0,
"msg": "login success!",
"username": "test",
"token": "cdaadd690209106dbea71e1f4c1e728cadfdd6a4"
}
data和json区分
方法一:抓包看头部Content-Type参数:
-- application/json --------------------这种就是传json参数
---application/x-www-form-urlencode -------这种就是传data参数
方法二:直接看参数长相
----{“name1”:”value1”, “name2”,”value2”} ---这种传json
-- name1=value1&name2=value2
这种传data参数
xml格式
# 遇到编码报错时候,对body进行encode