• Python requests接口测试实现代码


    1、get方法请求接口

    url:显而易见,就是接口的地址url啦

    headers:请求头,例如:content-type = application/x-www-form-urlencoded

    params:用于传递测试接口所要用的参数,这里我们用python中的字典形式(key:value)进行参数的传递。

    举个例子:

    import requests
    url="http://api.s***/login"
    header={"content-type":"application/x-www-form-urlencoded"}
    param={"user_id":123456,"email":"123456@163.com"}
    timeout=0.5
    response = requests.get(url, headers=header, params=param, timeout=timeout)
    # response = requests.request("get",url,headers=header,params=body,timeout=timeout)
    print (response.text)
    

      2、post方法请求接口

    import requests
     
    url="http://api.***/login"
     
    header={"content-type":"application/x-www-form-urlencoded"}
     
    param={"user_id":123456,"email":"123456@163.com"}
     
    timeout=0.5
     
    response = requests.post(url, headers=header, data=param, timeout=timeout)
     
    # response = requests.request("post",url,headers=header,data=param,timeout=timeout)
     
    print (response.text)
    

      

    import requests
     
    url = "https://apipc.xinqgj.com/user/login"
    payload = {"phone":"17779828887","pwd":"Ty+coun/mUj1saGV2OCK6p5kN9MNt8Uznj"}
    headers = {'Content-Type': 'application/json'}
     
    response = requests.request("POST", url, headers=headers, json = payload)
    print(response.text)
    

      3、requests.Session()请求接口

    import requests
     
    session = requests.Session()  #定义全局session,通过 session 保持会话
    class Cms():
     
      def login(self):
        url = "http://192.168.1.110:8080/cms/manage/loginJump.do"
        header = {"Content-Type": "application/x-www-form-urlencoded"}
        parmas = {"userAccount": "admin", "loginPwd": "123456"}
        #通过全局 session 请求接口
        res = session.post(url=url, headers=header, data=parmas)
        print(res.json())
     
      def queryUserList(self):
        url = "http://192.168.1.110:8080/cms/manage/queryUserList.do"
        header = {"Content-Type": "application/x-www-form-urlencoded"}
        parmas = {"startCreateDate":"",
             "endCreateDate":"",
             "searchValue":"",
             "page":"1"}
        # 通过全局 session 请求接口
        res = session.post(url=url, headers=header, data=parmas)
        print(res.json())
     
    if __name__ == '__main__':
      Cms().login()
      Cms().queryUserList()
    

      

    注意:Python requests模块params、data、json的区别

    • requests 模块发送请求有 data、json、params 三种携带参数的方法。
    • params 在 get 请求中使用,data、json 在 post 请求中使用
      • 常见的 form 表单可以直接使用 data 参数进行报文提交,data 的对象则是 python 中的字典类型
      • 如果数据是 json 格式的参数,可直接使用 json 参数进行报文提交

    4、接口的返回值操作

    text:获取接口返回值的文本格式

    json():获取接口返回值的json()格式

    status_code:返回状态码(成功为:200)

    headers:返回完整的响应头信息(headers['name']:返回指定的headers内容)

    encoding:返回字符编码格式

    url:返回接口的完整url地址

    import requests
     
    url = "https://xxxx.com/user/login"
    payload = {"phone":"1777982xxxx",
    "pwd":"Ty+coun/mUj1saGV2OCK6p5kN9MNt8UznjaGsQ5A/nKPSH1NZW"}
    headers = {'Content-Type': 'application/json'}
     
    response = requests.request("POST", url, headers=headers, json = payload)
     
    print(response.text)
    print(response.json())
    print(response.status_code)
    print(response.url)
    print(response.headers)
    print(response.encoding)
    

      

  • 相关阅读:
    全局上下文(GO)
    重写数组拓展方法
    spring + spring mvc 使用 maven 编译出现异常
    shiro 配置注解后无权访问不进行页面跳转异常:org.apache.shiro.authz.UnauthorizedException: Subject does not have permission
    shiro 配置注解异常 java.lang.ClassNotFoundException: org.aspectj.util.PartialOrder$PartialComparable
    kaptcha 配置
    maven 安装 jar 包
    jsp 页面 javax.servlet.jsp.JspException cannot be resolved to a type 异常
    操作系统下载地址
    java file 常用操作
  • 原文地址:https://www.cnblogs.com/chenlimei/p/13721662.html
Copyright © 2020-2023  润新知