实战演练接口自动化如何处理 Form 请求?

本文介绍了在服务端自动化测试中如何处理Form请求,包括其特点和content-type。通过实战示例展示了Python和Java两种语言下进行Form请求的方法,并提供了相关数据传输的示例代码。

原文链接

在服务端自动化测试过程中,Form 请求代表请求过程中,请求体为表单类型。其特点为:数据量不大、数据层级不深的情况、使用键值对传递。Form 请求头中的content-type通常对应为application/x-www-form-urlencoded。碰到这种类型的接口,使用 Java 的 REST Assured 和 Python 的 Requests 均可解决。

实战练习

Python 版本

在 Python 版本中,可以使用 data 参数传输表单数据,data 参数以字典的形式,字典是以键值对的形式出现。

class TestFormData:
    def test_data(self):
        data = {
            "school":"hogwarts"
        }
        r = requests.post("https://httpbin.ceshiren.com/post",
                          data=data)
        print(r.json())

运行结果:

{
  "args": {},
  "data": "",
  "files": {},
  "form": {
    "school": "hogwarts"
  },
  ...省略...
  "json": null,
  "origin": "113.89.10.187",
  "url": "https://httpbin.ceshiren.com/post"
}

Java 版本

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

使用抓包工具查看过程数据(参考代理配置章节),其中多了 Form 格式展示,以 name 和 value 的形式显示,具体结果如下图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ezhClA5f-1660095758349)
(upload://9JNJjJvWqnRkiaJR3Fqzyi0leVL.png)]

⬇️ 复制“下方链接”,提升测试核心竞争力!

你好呀,喜欢这篇文章的话记得点个“赞”哦!大家的支持很重要~() PS:有问题可以联系我们哦

更多技术文章分享和免费资料领取

### Postman 自动化测试实战教程 #### 使用Postman进行自动化接口测试的核心概念 Postman 是一种强大的工具,用于执行和验证 API 接口的功能性和性能。它支持多种类型的测试,包括但不限于状态码校验、响应时间分析、响应头检查以及响应体的内容匹配等[^1]。 为了实现更复杂的场景测试,可以利用 JavaScript 编写自定义脚本,在请求完成后自动运行这些脚本来判断测试是否通过。例如: ```javascript pm.test("Status code is 200", function () { pm.response.to.have.status(200); }); pm.test("Response time is less than 200ms", function () { pm.expect(pm.response.responseTime).to.be.below(200); }); ``` 上述代码片段展示了两个简单的断言:一个是确认 HTTP 响应的状态码为 `200`,另一个则是确保服务器的响应时间低于 `200ms`[^4]。 #### 批量运行测试用例 除了单个接口的测试外,还可以创建集合并设置环境变量以便管理多个相关联的 API 测试案例。一旦配置完成,只需点击 “Run” 按钮即可启动整个测试套件的一次性执行过程[^2]。 #### Token 鉴权机制处理 许多现代 Web 应用程序都采用基于令牌的身份验证方法 (Token-based Authentication),这意味着大多数受保护资源只允许已授权用户访问。因此,在构建任何进一步依赖于此身份证明的服务之前,通常需要先调用登录端点获取有效凭证——即所谓的 Tokens。 假设有一个 POST 请求到 `/login` 路径下获得此 token 后存储起来供后续其他请求重用: ```javascript const jsonData = pm.response.json(); pm.environment.set('auth_token', jsonData.token); // 将接收到的新生成token保存至当前环境中名为'auth_token' 的键值对里。 ``` 接着可以在下一个需要用到该认证信息的地方这样引用: ```bash Authorization: Bearer {{auth_token}} ``` #### 不同类型接口的支持情况 虽然 GET 和 POST 方法是最常见的两种操作方式之一,但实际上 RESTful APIs 还可能涉及 DELETE 或 PUT 动作来删除现有记录或是更新已有条目等内容修改行为。另外还存在像文件上传这样的特殊情形,则需特别注意其 Content-Type 设置成 multipart/form-data 形式才行。 最后值得注意的是并非所有的网络通信都会遵循标准HTTP协议栈模型,某些特定领域应用可能会选用SOAP/XML-RPC/Dubbo等形式作为消息交换媒介。针对后者则往往有必要借助额外插件扩展功能或者切换专用客户端库来进行交互模拟演练活动了。 --- ### 总结 综上所述,API 自动化测试主要关注数据层面的有效性检验工作,因为绝大多数潜在错误根源都可以追溯到这里面去查找原因所在之处。鉴于这一点考虑因素加上相对较低的成本投入回报率表现良好等方面综合评估下来的话确实值得推荐尝试一下这种方法论思路应用于日常开发流程当中去实践运用看效果如何吧[^3]!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值