接口自动化测试实战一
# @-*- coding: utf-8 -*-
# @Time: 2021/9/18 10:44
# @Author: 师玉幺叔
# @Software: Pycharm
# 前端登录的url 和 接口层发登录url 不一样
import requests
# 1.项目的服务器地址+端口
HOST = 'http://ip:端口号'
# 2.封装登录函数
def login():
# 1.url
# url = f'{HOST}/路径'
url = '{}/路径'.format(HOST)
# 2.请求体--字典格式编辑
payload = {
'username': '师玉幺叔',
'password': '270a009cf37d7723c38fff4a2ef7eb57'
}
res = requests.post(url, data=payload)
# res = requests.post(url, json=payload)
# 3.查看响应--响应体
print(res.json()) # 返回的是json格式--前提:响应的数据(响应体)一定要是json才可以使用,返回的是字典
# print(res.text) # 返回的是字符串格式
# 4.打印请求头
print('请求头:{}'.format(res.request.headers))
# 5.打印响应头
print('响应头:{}'.format(res.headers))
# 6.打印请求体
print('请求体:{}'.format(res.request.body))
# 7.获取token值
print('token值:{}'.format(res.json()['data']['token']))
请求参数的区别 | |
---|---|
data | 请求体是表单格式的使用data,这个参数默认的格式就是表单格式 ,例如:变量=值,默认请求头为:‘Content-Type’: ‘application/x-www-form-urlencoded’,可以不需要再单独传header参数了 |
json | 如果请求体的数据格式是 json 格式,可以直接使用这个变量,模式就是 json,默认请求头为:‘Content-Type’: ‘application/json’,可以不需要再单独传header参数了 |
files | 文件上传接口使用 |
params | 一般get请求使用 |
json与字典的区别:
1.json: 是一种数据格式,本身就是字符串类型,键值必须是双引号
2.dict: 是一种数据类型,可以存储数据,在pycharm控制台打印的时候,无论是单双 引号定义,打印出来的一定是单引号显示
import json
# 1.字典类型
a = {
"name": "jack"
}
print(a)
# 将字典转换成json
print(json.dumps(a))
# 2.json
b = '{"psw": "123"}'
print(b)
# 将json转换成字典
print(json.loads(b))