写点什么

软件测试 | 接口请求构造

  • 2023-02-22
    北京
  • 本文字数:2396 字

    阅读完需:约 8 分钟

1.HTTP 请求构造简介

Requests 和 Rest-Assured 提供了很多 HTTP 请求构造方法。请求构建方法通过传入参数的方式,对发送请求进行定会化的配置,可以用不同的请求参数来应对不同的请求场景。常见的 HTTP 请求构建分别为 GET、POST、PUT、Delete、head、options 等。

2.实战演示

(1)发送 GET 请求


实现的演示代码如下(Python 版和 Java 版)。


Python 演示代码

import requestsr = requests.get('http://api.GitHub网站/events')
复制代码


Java 演示代码

import static io.restassured.RestAssured.*;
public class Requests{ public static void main(String[] args){ given().when(). Get("https://httpbin.ceshiren.com/get"). then().log().all(); }}
复制代码


(2)发送 POST 请求


实现的演示代码如下(Python 版和 Java 版)。


Python 演示代码


import requestr = requests.post('https://httpbin.ceshiren.com/post')
复制代码


Java 演示代码


import static io.restassured.RestAssured.*;public class Requests{   public static void main(String[] args) {      given().when().          post("https://httpbin.ceshiren.com/post").          then().log().all();   }}
复制代码


(3)发送 PUT 请求


实现的演示代码如下(Python 版和 Java 版)。


Python 演示代码


import requestr = request.put('http://httpbin.ceshiren.com/put')
复制代码


Java 演示代码


import static io.restassured.RestAssured.*;
public class Request{ public static void main (String [] args){ given().when(). put("https://httpbin.ceshiren.com/put"). then().log().all(); }}
复制代码


(4)发送 Delete 请求


实现的演示代码如下(Python 版和)


import request r = requests.delete('https://httpbin.ceshiren.com/delete')
复制代码


Java 演示代码


import static io.restassured.RestAssured.*;
public class Requests{ public static void main (String[] args){ given().when(). Delete("https://httpbin.ceshiren.com/delete"). then().log().all() }}
复制代码


(5)发送 head 请求


实现的演示代码如下(Python 版和 Java 版)。


Python 演示代码


import static io.restassured.RestAssured.*;  public class Requests{    public static viod main(String[] args){      given().when().             head("https://httpbin.ceshiren.com/get").             then().log().all();    } }
复制代码


(6)发送 options 请求


实现的演示代码如下(Python 版和 Java 版)。


Python 演示代码


import requestr = request.optiona('https://httpbin.ceshiren.com/get')
复制代码


Java 演示代码


import static io.restassured.RestAssured.*;
public class Requests{ public static void main(String[] args){ given().when(). Options("https://httpbin.ceshiren.com/get"). then().log().all(); }}
复制代码


Python 版本其他请求方式


例如,通过 request 这个函数发送 GET 请求,实现代码如下。


import request# 使用 request 函数request.requet("get","http://www.baidu.com")
复制代码


3.其他重要请求信息


如果需要对请求做额外的定制化的配置信息,如添加请求头,则需要在请求体添加请求头的配置信息。


(1)定制请求 URL 参数


实现的演示代码如下(Python 版和 Java 版)。


Python 演示代码


通过 params 参数传入 URL 参数信息。


import requestparam = {"school":"hogwarts"}r = request.get("https://httpbin.ceshiren.com/get",params=param)
复制代码


Java 演示代码


通过 param 方法传入 URL 参数信息。


import static io.restassured.RestAssured.*;
public class Requests{ public static void main (Sting[] args){ given().params("school","hogwarts"). When().get("https://httpbin.ceshiren.com/get"). Then().log().all(); }}
复制代码


(2)定制请求头信息


实现的演示代码如下(Python 版和 Java 版)。


Python 演示代码


通过 headers 参数传入请求头信息。


url = 'https://api.GitHub网站/some/endpoint'headers = {'user-agent':'hogwarts'}r = request.get(url,headers=headers)
复制代码


Java 演示代码


通过 headers 方法指定请求头信息。


import static io.restassured.RestAssured.*; public class Requests{    public static void main (String[] args){       given().headers("user-agent","hogwarts").               When().get("https://httbin.ceshiren.com/get").               then().log().all();    }}
复制代码


(3)重定向配置


在接口自动化测试过程中,被测接口会在某些场景中触发重定向,我们若不想让其触发重定向,需要获取此接口重定向前的内容,实现的演示代码如下(Python 版和 Java 版)。


Python 演示代码


通过 allow_redirescts 参数获取接口的重定向前的内容。被测接口是否触发重定向,由 allow_redirects 参数决定,参数默认值为 True,True 为触发,False 为不触发。


>>> import requests>>> r = requests.get('http://GitHub网站',allow_redirects-False)>>> r.status_code301
复制代码


Java 演示代码


Java 编码中使用的是 config 方法提供的 redirect 方法,实现就是,通过传入配置信息来控制接口是否触发重定向:redirectConfig().floolwRedirects(ture)是触发,redirectConfig().followRedirects(false)是不触发。


import io.restassured.RestAssured;import static io.restassured.RestAssured.*;import static io.restassured.config.RedirectConfig.redirectConfig;
public class Requests{ public static void main(String[] args){ given().config(RestAssured.config(). //不触发 redirect(redirectConfig().followRedirects(false))). when().get("http://GitHub网站").then().log().all(); }}
复制代码

更多软件测试行业资讯可关注主页

用户头像

社区:ceshiren.com 微信:ceshiren2023 2022-08-29 加入

微信公众号:霍格沃兹测试开发 提供性能测试、自动化测试、测试开发等资料、实事更新一线互联网大厂测试岗位内推需求,共享测试行业动态及资讯,更可零距离接触众多业内大佬

评论

发布
暂无评论
软件测试 | 接口请求构造_测试_测吧(北京)科技有限公司_InfoQ写作社区