学习笔记:使用requests库进行接口测试

正文

一:构建http请求

1、构建请求URL参数

https://www.baidu.com/s?wd=安卓

以上边的url为例,?后边的 wd=安卓 就是url参数

可以存在任意多的参数,每个参数之前用&分隔

url参数的格式,术语叫做urlencoded格式。

使用requests发送http请求,可以直接把参数写在url里,例:

import requests

response = requests.get('https://www.baidu.com/s?rsv_idx=1&wd=android')

方法2:把这些参数放到一个字典里面,然后把字典对象传递给 Requests请求方法的 params 参数

import requests

pra = {'rsv_idx':'1','wd':'android'}

response = requests.get('https://www.baidu.com',params=pra)

2、构建请求消息头

每个消息头也就是一种键值对的格式存放数据,所以

构建请求消息头的方法和构建url参数的方式差不多,也是使用字典的形式

把需要发送的参数放到一个字典里面,然后把字典传递给 Requests请求方法的 headers参数

import requests

headers = {
    'name':'zp',
    'age':'18'
}
response = requests.get('https://www.baidu.com',headers=headers)

3、配合fiddler查看发出的请求

fiddler使用方法可以查看上篇文章  抓包工具fiddler

要让requests 发送请求使用代理,只需要传入一个proxies参数即可

import requests

proxies = {
  'http': 'http://127.0.0.1:8888',
  'https': 'http://127.0.0.1:8888',
}

pra = {'rsv_idx':'1','wd':'android'}

headers = {
    'name':'zp',
    'age':'18'
}

response = requests.get('http://mirrors.sohu.com/',proxies=proxies,params=pra,headers=headers)

 然后就可以去fiddler去看下我们发送的内容是否和预期一致了

 可以看到,fiddler成功抓到了消息包且内容符合预期。

4、构建http请求消息体

API接口测试中,消息体基本上都是文本

常见的消息体格式有三种:urlencoded,xml,json

以json为例:

import requests


payload = {
    "Overall":"良好",
    "Progress":"30%",
    "Problems":[
        {
            "No" : 1,
            "desc": "问题1...."
        },
        {
            "No" : 2,
            "desc": "问题2...."
        }
    ]
}

response = requests.get('http://mirrors.sohu.com/',json=payload)

你可能感兴趣的:(接口测试,http,网络协议,网络)