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-streamparams : 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" : "******" } } )
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和本地存储快照,返回Dictpath参数可以指定存储路径
例子
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