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对象
  • url参数必须要有, 其余参数 data, form, headers, params, multipart, fail_on_status_code, ignore_https_errors, max_redirects, timeout可选

例子

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

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": "******"}})

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)

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()

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

你可能感兴趣的:(playwright,学习笔记,playwright,自动化测试)