技术分享 | 接口自动化如何处理 Form 请求?

简介: 技术分享 | 接口自动化如何处理 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 的形式显示,具体结果如下图所示:

image.png

相关文章
|
3月前
|
测试技术
接口自动化不是救命稻草
接口自动化不是救命稻草
24 1
|
3月前
|
资源调度 测试技术 Linux
一款接口自动化神器—开源接口测试平台Lim(Less is More)
一款接口自动化神器—开源接口测试平台Lim(Less is More)
249 2
|
3月前
|
安全 测试技术 持续交付
接口自动化测试的基本流程
接口自动化测试的基本流程
126 1
|
1月前
|
监控 网络协议 安全
由于楼层自动化系统的复杂性和多样性,很难给出一个通用的Python代码示例,因为每个系统可能使用不同的硬件、通信协议和软件接口。
由于楼层自动化系统的复杂性和多样性,很难给出一个通用的Python代码示例,因为每个系统可能使用不同的硬件、通信协议和软件接口。
|
2月前
|
测试技术 Python
python接口自动化测试 - unittest框架suite、runner详细使用
python接口自动化测试 - unittest框架suite、runner详细使用
|
3月前
|
监控 数据挖掘 API
京东商品API接口:电商数据自动化的钥匙
京东商品API接口为电商领域带来了巨大的便利和潜力。通过本篇文章,读者应该能够了解如何使用京东商品API接口,并通过示例代码学习如何实际调用API获取商品数据。 随着技术的不断发展,京东商品API接口将继续为电商自动化、数据分析和市场研究提供支持,帮助商家和开发者在竞争激烈的市场中保持领先。我们鼓励读者继续探索和学习,充分利用京东商品API接口带来的机遇。
|
3月前
|
JSON 测试技术 API
Python的Api自动化测试使用HTTP客户端库发送请求
【4月更文挑战第18天】在Python中进行HTTP请求和API自动化测试有多个库可选:1) `requests`是最流行的选择,支持多种请求方法和内置JSON解析;2) `http.client`是标准库的一部分,适合需要低级别控制的用户;3) `urllib`提供URL操作,适用于复杂请求;4) `httpx`拥有类似`requests`的API,提供现代特性和异步支持。根据具体需求选择,如多数情况`requests`已足够。
52 3
|
3月前
|
Ubuntu Linux
自动化解决Linux网络预测网络接口命名问题
自动化解决Linux网络预测网络接口命名问题
34 0
|
1天前
|
机器学习/深度学习 人工智能 运维
智能运维:未来趋势下的自动化与人工智能融合
【8月更文挑战第18天】 在数字化浪潮中,智能运维(AIOps)作为一股不可逆转的力量,正逐步改写传统运维的脚本。本文将探讨AIOps的核心要素、实施路径和面临的挑战,同时分享个人从新手到专家的心路历程,旨在启发读者思考如何在这一领域内持续成长并作出贡献。
12 6
|
4天前
|
运维 持续交付 网络安全
自动化运维:Ansible与Terraform的比较
【8月更文挑战第16天】Ansible和Terraform都是自动化运维领域的重要工具,它们各自以其独特的功能和优势在市场中占据了一席之地。在选择使用哪个工具时,用户应根据自己的实际需求和应用场景进行综合考虑。如果主要关注系统配置管理和应用程序部署,那么Ansible可能是一个更好的选择;如果主要关注基础设施的自动化部署和管理,那么Terraform可能更适合您的需求。

热门文章

最新文章