• palywright: API测试(APIRequestContext, APIResponse)


    APIRequestContext

    • APIRequestContext通过APIRequest的new_context方法创建: playwright.request.new_context()
    • APIRequestContext也可以通过 browser_context.request 或者 page.request
    • APIRequestContext可以进行API测试,并且和BrowserContext共享cookie

    APIRequestContext方法

    get

    • 发送get请求, 返回APIResponse对象
    • 默认会自动follow redirects.
    • url参数必须要有, 其余参数 data, form, headers, params, multipart, fail_on_status_code, ignore_https_errors, max_redirects, timeout可选
    • multipart:将提供的参数对象使用multipart/form-data 序列化为 html 表, 通过request的body发送
    • form :将提供的参数对象使用 application/x-www-form-urlencoded 序列化为 html 表, 通过request的body发送
    • data: Allows to set post data of the request. 如果参数是object,会序列化为json串,并且在未指明content_type的情况下设置为application/json; 否则content_type默认设置为application/octet-stream
    • params : Query parameters to be sent with the URL.
    • headers: 设置HTTP headers.

    例子

    api_request_context.get("https://***/test_url", headers={"authorization": token})
    api_request_context.get("https://***/test_url", data={"user": {"name": user, "password": "******"}})
    
    • 1
    • 2

    post

    • 发送post请求, 返回APIResponse对象
    • 参数和使用方法都和get一样

    put

    • 发送put请求, 返回APIResponse对象
    • 参数和使用方法都和get一样

    delete

    • 发送delete请求, 返回APIResponse对象
    • 参数和使用方法都和get一样

    fetch

    • 发送请求, 返回APIResponse对象
    • 参数和使用方法和get基本一样, 就是多了一个method参数,此参数默认值是GET

    例子

    api_request_context.fetch("https://***/test_url", method="post", data={"user": {"name": user, "password": "******"}})
    
    • 1

    head

    • 发送head请求,获取报头, 返回APIResponse对象
    • 参数和使用方法都和get一样

    patch

    • 发送patch请求, 返回APIResponse对象
    • 参数和使用方法都和get一样

    dispose

    • api_request_context.dispose()处理掉api_request_context所有请求返回的response

    storage_state

    • api_request_context.storage_state()当前上下文状态,包括cookies和本地存储快照,返回Dict
    • path参数可以指定存储路径

    例子

    session_file = "**/test_path.json"
    api_request_context.storage_state(path=session_file)
    
    • 1
    • 2

    APIResponse

    APIResponse方法

    • body: 响应正文,返回bytes类型
    • text:以text形式返回响应正文, 返回str类型
    • json:以Json形式返回响应正文
    • dispose: 处理掉此响应

    例子

    response_json = api_request_context.get("https://***/test_url", data={"user": {"name": user, "password": "******"}}).json()
    response_body = api_request_context.get("https://***/test_url", data={"user": {"name": user, "password": "******"}}).body()
    response_text = api_request_context.get("https://***/test_url", data={"user": {"name": user, "password": "******"}}).text()
    
    • 1
    • 2
    • 3

    APIResponse属性

    • headers: 获取响应头, 返回dict类型, 比如:{'content-encoding': 'gzip', 'content-type': 'text/html; charset=utf-8', **}
    • headers_array:获取响应头, 返list[dict], 比如 [{'name': 'Content-Encoding', 'value': 'gzip'}, {'name': 'Content-Type', 'value': 'text/html; charset=utf-8'}, ***]
    • ok:如果响应status code 在200-299之间,返回True, 否则返回 False
    • status: 获取响应的status code
    • status_text:获取响应的status text
    • url: 响应url

    学习文档APIRequestContext

  • 相关阅读:
    Nginx知识汇总
    机器学习数学基础
    file.close总是标红的解决方法
    【ThreadLocal】Threadlocal的详细解释
    java Map集合基本功能
    强化学习:Actor-Critic、SPG、DDPG、MADDPG
    12-使用vue2实现todolist待办事项
    【Windows 常用工具系列 11 -- 笔记本F5亮度调节关闭】
    【蜂鸟E203的FPGA验证】Chap.7 Vivado综合与性能分析-建立Vivado工程
    使用JavaScript实现复杂功能:动态数据可视化的构建
  • 原文地址:https://blog.csdn.net/z917185537/article/details/132407348