接口测试

it2023-08-16  67

接口测试理解

通过 http://域名或ip:端口/路径 测试,就是接口测试通过工具(Postman)或者通过代码(Requests)保存一些记录,方便以后使用

Requests的使用:

发送http请求,获取服务器返回的响应

# 1. 导入模块(包) # 2. 调用模块的请求方法 # 3. 打印响应对象的状态码、头、体 import requests # 返回值,是一个对象(变量,随便起一个变量),接受服务器返回的数据 # resp = requests.get('https://www.baidu.com') # 返回值就是:Response类的对象 resp = requests.get('http://www.meiduo.site:8080') # 响应的状态码 print(resp.status_code) # 响应的头 print(resp.headers) # 响应体,这里的例子,返回就是美多的首页的网页内容 # print(resp.content) # 没有解码 print(resp.text) # 解码后

字符编码

# 乱码都是编码不匹配 # 如果网页有中文,直接获取内容打印会乱码 # 默认是是ISO-8859-1,显示中文是utf-8 print(resp.encoding) # 默认是ISO-8859-1 # 设置为utf-8 resp.encoding = 'utf-8' print(resp.encoding)

Response.json()

# 如果后台服务器返回的是json数据 # 通过resp.json()把后台数据以字典格式取 # 如果后台返回的数据不是json格式,咱们使用 .json()获取,产生异常, JSONDecodeError # https://postman-echo.com/ip import requests # r = requests.get('https://postman-echo.com/ip') r = requests.get('https://www.baidu.com') # 响应对象.txet, 类型是str # print(r.text, type(r.text)) temp = r.json() print(temp, type(temp))

发送GET请求 传递URL参数

# https://postman-echo.com/get # 1. 直接在网址上写 # 2. 作为参数传参 import requests r = requests.get('https://postman-echo.com/get') print(r.text) print('='*50) # 1. 直接在网址上写 # r = requests.get('https://postman-echo.com/get?name=mike&p=123&p=223') # 2. 作为参数传参 args_dict = { 'name': 'mike', 'p': [123, 223] } r = requests.get('https://postman-echo.com/get', args_dict) print(r.text)

定制请求头

import requests r = requests.get('https://postman-echo.com/headers') print(r.text) print('='*50) h_dict = { 'name':'mike' } r = requests.get('https://postman-echo.com/headers', headers=h_dict) print(r.text)

定制cookies

# https://postman-echo.com/cookies import requests r = requests.get('https://postman-echo.com/cookies') print(r.text) print('='*50) c_dict = { 'name':'mike', 'pwd':'123123' } r = requests.get('https://postman-echo.com/cookies', cookies=c_dict) print(r.text)

发送POST请求

import requests user_info = { "username":"mike123", "password":"chuanzhi12345", "remembered":True } # json以json格式发送请求 r = requests.post('http://127.0.0.1:8000/login/', json=user_info) print(r.json())

Requests.Session特点

requests.get/post不会状态保持requests.session可以状态保持

通过requests.session实现获取用户信息

""" 1. 创建requests.Session()对象 2. 以后发送请求,以上面的对象发送即可(对象.请求方法)其他用法没有变化 """ import requests # 1. 创建requests.Session()对象 s = requests.Session() user_info = { "username":"mike123", "password":"chuanzhi12345", "remembered":True } # 登陆 # json以json格式发送请求 r = s.post('http://127.0.0.1:8000/login/', json=user_info) print(r.json()) # 获取登陆用户的信息 r = s.get('http://127.0.0.1:8000/info/') print(r.json())
最新回复(0)