【playwright】新一代自动化测试神器playwright+python系列课程54_playwright接口测试_发起接口请求_get_post_fetch应用详解

playwright_发起接口请求_get、post、fetch应用详解

接口的请求类型有get、post、head、delete、put等多种请求类型,每种请求类型的接口在发起接口请求时是有区别的,目前系统中主要是get和post两种接口类型,本文主要介绍这两种接口发起请求时的具体应用。
前面一篇文章已经介绍了playwright发起接口请求的过程,本文将主要介绍发起接口请求时的参数如何应用。

post:

使用方法:

context =playwright.request.new_context(base_url='http://xxxxx')
context.post()

在context.post()发起post接口的请求时,主要用到url、headers、data、form、multipart、params、timeout这些参数。
url:
接口地址,如果设置了base_url,只需要传入相对地址即可。
示例:

context.post(url='/xxxxx/xxx/xx')

headers:
用于设置请求头,为字典格式。
示例:

Api_headers={
            "Accept": "application/vnd.github.v3+json",
            # Add GitHub personal access token.
            "Authorization": f"token {API_TOKEN}",
        }
Context.post(headers= Api_headers)

data、form、multipart:
这三个参数都是设置接口的入参的,只是接口的数据格式不同需要选择不同的参数。在接口的请求头中有个Content-Type字段,它的值就表示了接口的数据格式。

不同的数据格式,需要选择不同的参数。
当Content-Type的值为application/json,说明接口的数据格式为json格式,这个时候需要使用data。
示例:

data = {
    "title": "Book Title",
    "body": "John Doe",
}
context.post("https://xxx.com/api/xxx", data=data)

当Content-Type的值为application/x-www-form-urlencoded,说明接口的数据格式为form格式,这个时候需要使用form。
示例:

formData = {
    "title": "Book Title",
    "body": "John Doe",
}
context.post("https://xxx.com/api/xxx", form=formData)

当Content-Type的值为multipart/form-data,说明接口传递的数据为表单数据且有多部分构成,这个时候需要使用multipart。
示例:

  Api_multipart={
    "fileField": {
      "name": "f.js",
      "mimeType": "text/javascript",
      "buffer": b"console.log(2022);",
    },
  }
context.post("https://xxx.com/api/xxx", multipart = Api_multipart)

params:当入参在url后面时使用,但是post接口应用较少。
timeout :设置超时时间,单位毫秒。

get:

使用方法:

context =playwright.request.new_context(base_url='http://xxxxx')
context.get()

在context.get()发起get接口的请求时,get方法和post方法的参数是一样的,但是主要用到的参数是url、headers、params这几个参数。
url:
接口地址,如果设置了base_url,只需要传入相对地址即可。
示例:

context.get(url='/xxxxx/xxx/xx')

headers:
用于设置请求头,为字典格式。
示例:
Api_headers={

            "Accept": "application/vnd.github.v3+json",
            # Add GitHub personal access token.
            "Authorization": f"token {API_TOKEN}",
        }
context.get(headers= Api_headers)

params:
用于设置接口的入参。
示例:

query_params = {
  "isbn": "1234",
  "page": "23"
}
context.get("https://xxx.com/api/xxx", params=query_params)

fetch:

fetch()方法相较于post和get的应用来说,fetch()方法不针对某一种接口类型,在fetch方法中有个method参数,这个参数可以指定接口类型,另外,fetch()方法中指定接口地址也不是传参给url,而是url_or_request,其他参数用法与get和post一致。
示例:

context = playwright.request.new_context(base_url= 'http://127.0.0.1:8080') #设置基本url
login_data = {
                'browser':'Other',
                'lang':'zh_CN',
                'loginId':'sup',
                'password':'s1234567'
                    }
response = context.fetch(url_or_request ='/oa/login.do',method='post',form=login_data)
  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值