接口请求体-form表单
接口请求体 - form 表单
简介
在自动化测试过程中,Form 请求代表请求体为表单类型,其特点为:数据量不大、数据层级不深的情况、使用键值对传递,Form 请求头中的 content-type
通常对应为 application/x-www-form-urlencoded
。碰到这种类型的接口,使用 Python 的 Requests
方法。
使用场景
在进行搜索、登录的时候,可以使用 form 表单进行填写数据。
Python 演示代码
在 Python 中,可以使用 data
参数传输表单数据,data
参数以字典的形式,字典是以键值对的形式出现。
import requests
import pprint
def req():
data = {
"school": "hogwarts"
}
r = requests.post("https://httpbin.ceshiren.com/post",data=data)
pprint.pprint(r.json())
req()
运行结果:
{
"args": {},
"data": "",
"files": {},
"form": {
"school": "hogwarts"
},
...省略...
"json": None,
"origin": "36.112.118.254, 182.92.156.22",
"url": "https://httpbin.ceshiren.com/post"
}
Java 演示代码
- 调用
formParam()
方法
package ch03_form;
import io.restassured.RestAssured;
import org.junit.jupiter.api.Test;
import static io.restassured.RestAssured.given;
import static io.restassured.specification.ProxySpecification.host;
/**
* 测试使用表单参数发送POST请求。
*/
public class TestFormParam {
/**
* 使用表单参数发送POST请求并通过HTTPS代理服务器转发请求。
* <p>
* 此测试用例将向https://httpbin.ceshiren.com/post发送一个包含表单参数的POST请求,
* 并验证响应状态码是否为200。
*/
@Test
void testFormParam() {
// 配置本地代理服务器,方便监听请求信息
RestAssured.proxy = host("127.0.0.1").withPort(8888);
// 允许使用不安全的HTTPS连接,避免SSL握手错误
RestAssured.useRelaxedHTTPSValidation();
// 构建并发送POST请求
given()
.formParam("username", "hogwarts") // 添加表单数据
.log().headers() // 打印请求头信息
.log().body() // 打印请求体信息
.when()
.post("https://httpbin.ceshiren.com/post") // 发送POST请求
.then()
.statusCode(200); // 断言响应状态码为200,表示请求成功
}
}
- 调用
formParams()
方法
package ch03_form;
import io.restassured.RestAssured;
import org.junit.jupiter.api.Test;
import static io.restassured.RestAssured.given;
import static io.restassured.specification.ProxySpecification.host;
/**
* 测试使用多个表单参数发送POST请求。
*/
public class TestFormParams {
/**
* 使用多个表单参数发送POST请求并通过HTTPS代理服务器转发请求。
* <p>
* 此测试用例将向https://httpbin.ceshiren.com/post发送一个包含多个表单参数的POST请求,
* 并验证响应状态码是否为200。
*/
@Test
void testFormParams() {
// 配置本地代理服务器,方便监听请求信息
RestAssured.proxy = host("127.0.0.1").withPort(8888);
// 允许使用不安全的HTTPS连接,避免SSL握手错误
RestAssured.useRelaxedHTTPSValidation();
// 构建并发送POST请求
given()
.formParams("username", "hogwarts", "password", "666") // 添加多个表单数据
.log().headers() // 打印请求头信息
.log().body() // 打印请求体信息
.when()
.post("https://httpbin.ceshiren.com/post") // 发送POST请求
.then()
.statusCode(200); // 断言响应状态码为200,表示请求成功
}
}
总结
- 携带
form
表单格式请求体请求发送