zoukankan      html  css  js  c++  java
  • 基于requests框架实现接口自动化测试项目实战

     

    本文章出自【码同学软件测试】

     

    码同学公众号:自动化软件测试,领取资料可加:Matongxue_8

     

    码同学抖音号:小码哥聊软件测试

     

     

     

    requests库是一个常用的用于http请求的模块,它使用python语言编写,在当下python系列的接口自动化中应用广泛,本文将带领大家深入学习这个库,Python环境的安装就不在这里赘述了,我们直接开干。

    01

    requests的安装

    windows下执行如下命令:

    pipinstallrequests-ihttp://pypi.douban.com/simple/--trust-host pypi.douban.com

    mac终端下执行如下命令:

    python3-mpipinstallrequests-ihttp://pypi.douban.com/simple/--trust-host pypi.douban.com

    02

    常用方法

    1、get请求实战:

    # !/usr/bin python3                # encoding: utf-8 -*-              # @author: 沙陌 微信:Matongxue_2# @Time:2021/3/25 9:54 # @Copyright:北京码同学网络科技有限公司
    import  requests 
    host='http://10.0.0.18:8080'def get():  """get接口请求:return:"""  url =host+'/pinter/com/getSku' #接口地址  params={    'id':1}  resp = requests.get(url,params=params)  status_code=resp.status_code #获取响应状态码  print('响应状态码:{}'.format(status_code))  text=resp.text #获取响应内容,结果类型是字符串  print('响应内容:{}'.format(text))  json=resp.json() #获取响应内容,结果是字典类型  print('响应内容:{}'.format(json))  resp_headers=resp.headers #获取响应headers  print('响应header:{}'.format(resp_headers))
    if__name__=='__main__': get()

    结果如下:

    D:\Python\Python36\python.exe D:/pycharmprojects/first/requetsstudy/pinter.py响应状态码:200 响应内容:{"code":"0","message":"success","data":{"skuId":1,"skuName":"ptest-1","price":"645","stock":709,"brand":"testfan"}}<class'dict'>响应内容:{'code':'0','message':'success','data':{'skuId':1,'skuName':'ptest-1','price':'645','stock':709,'brand':'testfan'}}响应header:{'Content-Type':'application/json;charset=UTF-8','Transfer-Encoding':'chunked','Date':'Fri,12Mar202122:13:49GMT','Keep-Alive':'timeout=20','Connection':'keep-alive'}
    Process finished with exit code 0

    上述代码中请求发起后得到一个响应对象变量resp,那么resp对象的常用方法如下:

     

     

    免费领取码同学软件测试课程笔记+超多学习资料+完整视频+面试题,可加微信:Matongxue_8

     

     

    免费领取码同学软件测试课程笔记+超多学习资料+完整视频+面试题,可加微信:Matongxue_8

     

     

     

    2、post请求实战

    post请求的参数格式通常有多种,我们依次学习

    第一种:表单形式的参数

    import requests 
    host = 'http://10.0.0.18:8080'def post():"""post表单:return:"""    url=host+'/pinter/com/login'    #表单参数    data={       'userName':'沙陌',       'password':'123456'     }
    resp=requests.post(url=url,data=data)status_code=resp.status_code#获取响应状态码print('响应状态码:{}'.format(status_code))text=resp.text#获取响应内容,结果类型是字符串print('响应内容:{}'.format(text))json=resp.json()#获取响应内容,结果是字典类型print('响应内容:{}'.format(json))resp_headers=resp.headers#获取响应headers print('响应header:{}'.format(resp_headers))

    第二种:json格式参数

    import requests
    host='http://10.0.0.18:8080'def post_json(): """postjson:return:"""  url =host +'/pinter/com/register'  #header里定义参数类型  headers={    'Content-Type':'application/json'}  #json参数  json={    "userName":"沙陌",    "password":"1234",    "gender":1,    "phoneNum":"110",    "email":"beihe@163.com",    "address":"Beijing"}  resp=requests.post(url=url,json=json)  status_code=resp.status_code #获取响应状态码  print('响应状态码:{}'.format(status_code))  text=resp.text #获取响应内容,结果类型是字符串  print('响应内容:{}'.format(text))  json=resp.json() #获取响应内容,结果是字典类型  print('响应内容:{}'.format(json))  resp_headers=resp.headers #获取响应headers  print('响应header:{}'.format(resp_headers))

    3、put接口实战

    import requests
    host='http://10.0.0.18:8080'def put(): """put 清酒:return:"""  url = host+'/pinter/com/phone' #接口地址  #参数  json={    "brand":"Huawei",    "color":"yellow",    "memorySize":"64G",    "cpuCore":"8核",    "price":"8848",    "desc":"全新上市"}  resp=requests.put(url=url,json=json)  status_code=resp.status_code #获取响应状态码  print('响应状态码:{}'.format(status_code))  text=resp.text #获取响应内容,结果类型是字符串  print('响应内容:{}'.format(text))  json=resp.json() #获取响应内容,结果是字典类型  print('响应内容:{}'.format(json))  resp_headers=resp.headers #获取响应headers  print('响应header:{}'.format(resp_headers))

    4、delete请求

    5、request.session.request用法

    可以自动管理cookie,比如如下需要采用cookie认证的接口

    结果如下:

    D:\Python\Python36\python.exeD:/pycharmprojects/first/requetsstudy/pinter.py 响应状态码:200 响应内容:{"code":"0","message":"success","data":"$22,378,198"}
    Process finished with exit code 0

    6、token关联的接口如何做呢?

    对于需要token关联的接口来说,需要从登录接口的返回值中提取token信息,并传递给需要token的接口

    结果如下:

    D:\Python\Python36\python.exeD:/pycharmprojects/first/requetsstudy/pinter1.py响应状态码:200 响应内容:{"code":"0","message":"success","data":"$74,780,457"}Process finished with exit code 0

    总结一下:

    requests库的请求方法里参数众多,所以简单划分一下:

    • 查询参数就用 params=params
    • 表单参数就用 data=data
    • json参数就用 json=json
    • 请求头信息header就用 headers=headers

    END

    免费领取码同学软件测试课程笔记+超多学习资料+学习完整视频 可加:Matongxue_8/关注码同学公众号

    本文著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

  • 相关阅读:
    PAT 1010. 一元多项式求导 (25)
    PAT 1009. 说反话 (20) JAVA
    PAT 1009. 说反话 (20)
    PAT 1007. 素数对猜想 (20)
    POJ 2752 Seek the Name, Seek the Fame KMP
    POJ 2406 Power Strings KMP
    ZOJ3811 Untrusted Patrol
    Codeforces Round #265 (Div. 2) 题解
    Topcoder SRM632 DIV2 解题报告
    Topcoder SRM631 DIV2 解题报告
  • 原文地址:https://www.cnblogs.com/testfan2019/p/15665942.html
Copyright © 2011-2022 走看看