【postman学习笔记】

本文详细介绍了Postman进行接口测试的各种断言方法,包括响应体、状态码、响应时间等的断言,并展示了如何进行参数化测试、获取token及设置全局变量。此外,还提及了文件上传的操作,强调了在Postman和requests库中正确处理文件上传的注意事项。

postman
参考:
官方文档:https://learning.postman.com/docs/writing-scripts/script-references/test-examples/
断言:https://www.jianshu.com/p/26d3c2e0b688
例子:https://learning.postman.com/docs/writing-scripts/script-references/test-examples/#getting-started-with-tests
1.断言。在Tests选项里,用javascript编写的,对象是pm对象,即postman对象。断言脚本是在执行了请求后才执行的。
1)响应体作为json格式,取code为断言。可在右边的snippets里选择合适 的断言方式,下面是json值检查。
在这里插入图片描述

js代码片段
pm.test(“code”, function () {
var jsonData = pm.response.json();
pm.expect(jsonData.code).to.eql(200);
});
断言结果,在下方的Test Result选项可查看断言结果。
image

2)状态码:
pm.test(“Status code is 200”, function () {
pm.response.to.have.status(200);
});

3)Response Body :Contains string【响应体包含指定的字符串】
image

pm.test(“Body matches string”, function () {
pm.expect(pm.response.text()).to.include(“string_you_want_to_search”);
});
4)完整的响应体断言,is equal to a string:
pm.test(“Body is correct”, function () {
pm.response.to.have.body(“response_body_string”);
});
5)用响应头做断言,可以把Content-type换成其他的响应头参数名。
image

pm.test(“Content-Type is present”, function () {
pm.response.to.have.header(“Content-Type”);
});
6)用响应时间做断言,少于200ms则为通过
image

pm.test(“Response time is less than 200ms”, function () {
pm.expect(pm.response.responseTime).to.be.below(200);
});
7)post请求的状态码做断言,预期状态码是200或202则为通过。
image

pm.test(“Successful POST request”, function () {
pm.expect(pm.response.code).to.be.oneOf([200, 202]);
});
8)状态码,状态代码名称有字符串。code name has string.
image

2.其他片段使用
1)响应体:将xml格式的响应体转换为json对象
2)use tiny validate for json data【对 json 数据使用小验证】
3.参数化,引用外部文件如csv,text等.首先,先新建一个text文件或csv文件,逗号隔开,比如新建一个login.txt文件,格式如下:
image

1)先建一个集合,然后再新建一个文件夹。【右键会弹出新增选项】
image

2)右键文件夹名,选择“add request”,在文件夹里新增一个request请求.包括协议、ip地址、请求头、请求体的参数。用户名和密码参数化,需要用{{}}来引用login.txt中的用户名和密码,{{username}}、{{pwd}}
在这里插入图片描述

3)添加断言方式,在这里我用json提取出success字段来判断是否登录成功,true为登录成功。点击Tests栏,然后设置断言方式。
image

4)单击文件夹名,然后在右边点击Run按钮,配置参数文件和执行条件。
image

image

5)执行结果
image

4.获取token并赋值为全局变量。在登录接口的Tests栏目,用以下代码片段即可获取
image

image

var jsonData = pm.response.json();
var token = jsonData.data.token
pm.globals.set(“newToken”,token)
5.也可以直接设置全局变量,点击右侧的眼睛图标,然后在表格里填写变量名和对应的值,引用时直接用{{变量名}}的方式引用即可。在这里插入图片描述在这里插入图片描述在这里插入图片描述

6.postman和requests上传文件
先看看接口的参数,files必须是文本流,即二进制流。
image

再看看请求头
image

所以postman中也要选择相应的请求头和参数。用的是param,附件文件要选"file"
image

image

对应的requests.post()有点诡异,为此耽误了很多时间。文件要用files参数,且是"rb"读取为二进制流。值得注意的是,Content-Type不用加,加了就报错500.在这里插入图片描述

在学习 **Spring Cloud** 相关知识时,黑马程序员的课程资料是一个非常实用的资源,涵盖了微服务架构中的多个核心组件和技术栈。以下是关于 **Spring Cloud 学习笔记** 的内容概述和获取建议: ### 1. Spring Cloud 核心学习内容 Spring Cloud 是构建分布式系统的重要框架,其学习笔记通常包括以下内容: - **服务注册与发现**:使用 Eureka 搭建服务注册中心,实现服务的自动注册与发现[^1]。 - **负载均衡**:通过 Ribbon 实现客户端负载均衡,提升系统的高可用性。 - **远程调用**:Feign 是声明式的 REST 客户端,简化了服务间的通信。Feign 还支持自定义配置、性能调优以及最佳实践[^1]。 - **API 网关**:Spring Cloud Gateway 作为微服务架构中的统一入口,支持路由配置、过滤器链、全局过滤器、跨域配置(CORS)等功能。例如,可以通过 `default-filters` 配置全局过滤器,如添加请求头 `AddRequestHeader`[^2]。 - **异步通信**:RabbitMQ 是常用的 MQ(消息队列)技术,支持异步通信模式。Spring AMQP 是 Spring 提供的 AMQP 客户端,用于简化 RabbitMQ 的消息发送与接收[^1]。 - **分布式搜索**:Elasticsearch 是一个分布式搜索引擎,适用于大数据量的检索场景。学习内容通常包括倒排索引、与 MySQL 的概念对比、安装与配置(如 Kibana 和 IK 分词器)。 ### 2. Spring Cloud 学习笔记的获取方式 黑马程序员的 Spring Cloud 学习笔记通常包含以下形式: - **PDF 文档**:系统化的学习笔记,涵盖理论知识、代码示例和实战项目。 - **视频教程**:配合笔记的视频课程,讲解每个模块的实现细节。 - **GitHub 仓库**:部分课程会提供 GitHub 仓库,包含完整的项目代码和文档。 获取这些资料的常见方式包括: - **黑马程序员官网**:访问黑马程序员的官方网站,查找 Spring Cloud 相关课程,通常会提供配套的学习资料。 - **Bilibili 视频教程**:黑马程序员在 Bilibili 上有大量免费的 Spring Cloud 教学视频,视频描述中通常会附带学习资料的下载链接。 - **技术社区和论坛**:如 优快云、掘金、知乎等平台,经常有用户分享黑马程序员的学习笔记和课程总结。 - **网盘资源**:通过百度网盘、阿里云盘等平台搜索“黑马程序员 Spring Cloud 学习笔记”,可以找到一些用户分享的资源。 ### 3. 示例代码 以下是一个使用 Feign 进行远程调用的代码示例: ```java @FeignClient("item-service") public interface ItemClient { @GetMapping("/items") List<ItemDTO> queryItemByIds(@RequestParam("ids") Collection<Long> ids); } ``` 该接口通过 `@FeignClient` 注解声明了一个 Feign 客户端,并指定了服务名称 `item-service`。`@GetMapping` 注解用于定义 HTTP 请求路径,`@RequestParam` 用于传递请求参数[^3]。 ### 4. 学习建议 - **理论结合实践**:在学习 Spring Cloud 时,建议边学习理论知识边动手实践,通过搭建微服务项目来加深理解。 - **关注服务拆分原则**:微服务的核心在于服务拆分,应遵循单一职责原则,避免重复开发[^4]。 - **掌握调试技巧**:微服务架构复杂,调试和日志分析是关键技能,建议熟练使用工具如 Postman、Swagger、ELK 等。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值