美文网首页
python 接口请求碎碎念

python 接口请求碎碎念

作者: 小盼盼_1 | 来源:发表于2020-12-26 22:14 被阅读0次

    背景

    用python代码编写接口测试用例的时候,需借用requests库来发送get/post请求完成对接口的http调用,本文汇总编写接口测试用例常用的一些方法。

    接口测试

    发起请求

    1.带参数的get请求:

    import requests

    data = {'key1':'value1','key2':'value2'}

    rs = requests.get('http://httpbin.org/get',params=data)

    2.带参数的post请求

    import requests

    data = {'key1':'value1','key2':'value2'}

    rs = requests.post('http://httpbin.org/post',data=data)

    3.定制header信息:本地借助switchhost调试通过的接口调用,需要通过将host写入到header里面可达到外网访问的场景

    import requests

    headers={

    'Host':'httpbin.org',

    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.122 Safari/537.36',}

    data = {'key1':'value1','key2':'value2'}

    rs = requests.get(url='http://172.24.31.5/get',headers=headers,params=data,verify=False)

    4.带登陆态访问链接:常用于接口测试用例,使用session成功的登录了某个网站,后续使用该session对象请求该网站的其他网页都会默认使用该session之前使用的cookie等参数

    post_url = "http://httpbin.org/post/login"                                    #登陆前的页面

    headers = {"User-Agent": "Mozilla/5.0"}

    session = requests.session()                                                       #实例化session

    post_data = {"email": "username", "password": "password"}    #登陆的用户名&密码

    session.post(post_url, headers=headers, data=post_data)      # 使用session发送post请求获取cookie保存到本地session中

    url = "http://httpbin.org/post/profile"                                           # 登录后的页面               

    response1 = session.get(url, headers=headers)                       # 使用session请求登录后的页面,此时不用走登陆注册页面

    response2 = session.post(url, headers=headers)                     # 使用session请求登录后的页面,此时不用走登陆注册页面

    5.allow_redirects=False:由于requests库会自动处理重定向请求,会导致获取不到重定向的URL,但有时部分接口需要获取重定向的URL,此时需设置allow_redirects=False,就可以获取重定向的地址t.headers['location']。

    import requests

    headers={

    'Host':'httpbin.org',

    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.122 Safari/537.36',}

    s = requests.session()                                  

    r = s.get('http://httpbin.org/post/profile',

              headers=headers,

              allow_redirects=True,               #禁止重定向 

              verify=False)     

    new_url = r.headers["Location"]           #获取location地址

    print(new_url)

    接口返回数据

    1.rs.text                   # 以文本的方式显示响应数据

    2.json.loads(rs.text)       #通过json转码后,变成常见的接口返回数据{"code":0,"message":"success","data":[]}

    3.rs.status_code       # 响应的状态码,对应于200/3XX/5XX

    注:文章涉及到的URL不是真实存在,实际使用需替换成真实的接口地址

    相关文章

      网友评论

          本文标题:python 接口请求碎碎念

          本文链接:https://www.haomeiwen.com/subject/rxxnnktx.html