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)