自动化测试二:
常用的requests操作:
request 请求方法:
url = '接口地址'
r = requests.get(url) # 发送get请求
print(r.status_code) # 打印状态码,若有重定向,返回的是重定向之后的代码
print(r.headers) # 打印返回的报头(头部)
print(r.text) # 查看返回结果的文本形式
r.status_code # 响应状态码
r.content # 字节方式的响应体,会自动为你解码 gzip 和 deflate 压缩
r.headers # 以字典对象存储服务器响应头,但是这个字典比较特殊,字典键不区分大小写,若键不存在则返回None
r.json() # Requests中内置的JSON解码器 ,json转成python的字典了
r.url # 如果没有重定向,就是请求的url,如果有重定向,就是重定向后的url
r.encoding # 查看返回的编码格式
r.cookies # 获取cookie
r.raw #返回原始响应体
r.history #追踪重定向过程(list类型)
r.text #字符串方式的响应体,会自动根据响应头部的字符编码进行解码
r.content.decode('utf-8') # 返回内容有乱码时,用此方法打印
r.raise_for_status() #失败请求(非200响应)抛出异常
loginCookies = r.cookies: # 获取登录的cookies
s = requests.session() # 可以用这个方法保持会话,不用每次都去获取cookies(只适用于网站是cookies这种,网站是token的没用)
print(r.encoding) # 查看返回的编码格式
r.json # 获取返回的json
verify=False # 访问https请求时加上后不验证证书
# open打开excel文件,保存为后缀为xls的文件
fp = open('yoyo.xls', 'wb') # w:写入, b:二进制的形式
发送请求:
1. 无参数:
import requests
r = requets.get(url)
print(r.text)
2. 携带参数:
url = 'http://japi.juhe.cn/qqevaluate/qq?key= 8dbee1fcd8627fb6699bce7b986adc45&qq=907728701'
url = 'http://japi.juhe.cn/qqevaluate/qq'
par = {
'key':' 8dbee1fcd8627fb6699bce7b986adc45',
'qq':'907728701'
}
r = requests.get(url,params=par)
post 请求:
url = 'http://japi.juhe.cn/qqevaluate/qq'
r = requests.post(url) #发送post请求
print(r.status_code) #打印状态码
案列:
import hashlib
import requests
import json
import time
time = time.time()
time = str(time).split('.')[0]
token = 'JyyyyyY'
data = {
'name': '先生',
'mobile': '18079575676',
'city': '南昌',
'brand': '未知',
'series': '未知',
'model': '未知',
'kilometer':'10',
'licensed_date_year':'2010 3',
'is_operation':'',
'is_accidented':''
}
data = json.dumps(data)
print(data)
sign = hashlib.md5((data + token + time).encode("utf-8")).hexdigest()
print(sign)
post_data = {
'token': token,
'sign': sign,
'time': time,
'data': data,
}
url = 'xxxxx'
r = requests.post(url, data=post_data)
print(r.text)