python+request接口测试案例
一、安装python、request模块
1、python安装参考pyhton菜鸟教程
2、request模块安装pip install request
二、不同请求方式的处理
1、get方式发送请求
import requests
if __name__ == '__main__':
base_url = 'http://xxx:4433' # 服务器主域名
pm = {
'username':'a1',
'password':'123456',
'phone':'12345678901',
'email':'a1@163.com'
}
result= requests.get(url=base_url+'/具体API接口地址',params=pm)
print('响应内容:', result.text)
2、post方式发送请求
import requests
'''
post() 函数表示post请求
* url 请求路径
* data 键值对文本数据,相当于x-www-form-urlencoded
* json raw类型中的json报文格式
响应状态码:
* 200 响应成功
* 302/307 重定向
* 304 使用缓存
* 404 资源不存在,路径问题
* 500 服务器内部错误
'''
base_url = 'http://xxx:4433'
data = {
'username':'a1',
'password':'123456'
}
if __name__ == '__main__':
result = requests.post(url=base_url+'具体API接口地址',data=data)
print('文本方式显示结果:',result.text)
print('json方式显示结果:', result.json(),'msg: '+result.json()['msg'])
print('响应http状态码:',result.status_code)
print('响应头:',result.headers)
print('响应头:',result.headers['Content-Type'])
print('查看完整路径:',result.url)
3、json方式发送请求
import requests
base_url = 'http://xxx:4433'
pm = {
'username': 'a3',
'password': '123456',
'phone': '12345678901',
'email': 'a3@163.com'
}
if __name__ == '__main__':
result = requests.post(url=base_url+'具体API接口地址',json=pm)
dict = result.json()
print('响应文本:',result.text)
print('result取值:',dict['data']['phone'])
4、 上传文件
import requests
'''
文件上传
* url 请求路径
* data 键值对文本数据,相当于x-www-form-urlencoded
* json raw类型中的json报文格式
file---文件
* mode rb=binary encoding 文本
'''
base_url = 'http://xxx:4433'
pm={'username':'a1'}
pic = {
'pic':open(file='C:\\Users\\Administrator\\Pictures\\woman0.png',mode='rb'),
}
if __name__ == '__main__':
result = requests.post(url=base_url+'具体API接口地址',data=pm,files=pic,timeout=1)
print(result.text)
'''
timeout 读取超时
requests.exceptions.ReadTimeout: HTTPConnectionPool(host='localhost', port=8080): Read timed out. (read timeout=1e-05)
'''
5、接口依赖
import requests
def interfaceTest(base_url):
'''1、获取验证码'''
result_01 = requests.get(url=base_url + 'API 地址1')
code_json = result_01.json()
'''2、获取验证码值'''
print('获取验证码:', result_01.text)
code = code_json['data']['code']
print(code)
'''3、获取验证码响应头内cookie'''
get_Cookie = result_01.headers['Set-Cookie']
'''4、、注册'''
pm = {
'username': 'a6',
'password': '123456',
'email': 'a6@163.com',
'verifyCode': code
}
set_Cookie = {'Cookie':get_Cookie}
result_02 = requests.post(url=base_url + 'API 地址2', data=pm,headers=set_Cookie)
print("注册:",result_02.text)
if __name__ == '__main__':
base_url = '主机IP和端口'
interfaceTest(base_url)