百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

不会接口测试?用Postman轻松入门(三)——Get请求详解

liuian 2024-12-03 16:32 16 浏览

对HTTP协议有了深入了解之后,我们再回过头来看看各种请求报文在postman中的处理方式,深入了解postman完成各类型请求的方式,这一节先来看看最简单的Get请求。

为了方便管理接口,首先在postman的workspace里创建一个collection(测试集),相当于用一个文件夹来保存自己的接口。

由于get请求通常都没有请求体,因而在请求四大要素:url、HTTP方法、请求头和请求体中只需要关注url和请求头即可。而get请求如果有请求参数,则通常会携带在url中发给服务器接口。

无参数的get接口

最简单的get接口是不需要任何参数的get接口,我们以一个开放api获取诗词的接口为例

    • 接口说明文档:https://api.apiopen.top/swagger/index.html#/
    • 接口url地址: https://api.apiopen.top/api/sentences

那么在Postman中进行操作,只需要填写url地址,选择get方法,点击发送即可完成请求。

完成请求的编辑后,可以点击save或直接使用快捷键Ctrl + s 将写好的请求保存到collection中并为它命名,方便之后管理维护。

在url中携带参数的get接口

开放api获取图片接口

基于对HTTP协议的学习,我们知道,在url中?之后以key1=value1&key2=value2格式编辑的内容是url上的参数,这里先以一个简单的开发api中的获取图片接口进行请求:

    • 接口说明文档:https://api.apiopen.top/swagger/index.html#/
    • 接口url地址:https://api.apiopen.top/api/getImages?page=0&size=10

将url填入postman地址栏之后,可以看到,下方params菜单中自动补全了Query Params(查询参数)里的page和size两个参数,从而可知,page=0&size=10是page值为0和size值为10两个参数的url格式组织形式。

在url中或者params表格中我们都可以修改page和size的值,所代表含义分别是页码和查询数量,比如将size值改为1,就会看到返回体中只有一条查询结果记录了。

通过修改请求的参数值,我们就完成了一个基本的测试用例编写,可以根据自己的业务逻辑编写对应的测试逻辑,比如设计无效等价类输入字母,输入负数等等。

百度ip接口

接下来再看一个稍微复杂点的接口,直接在百度上搜索IP即可,通过抓包获取接口信息:

    • 接口url地址:https://sp1.baidu.com/8aQDcjqpAAV3otqbppnN2DJv/api.php?query=5.5.5.5&co=&resource_id=5809&t=1653968799563&ie=utf8&oe=gbk&cb=op_aladdin_callback&format=json&tn=baidu&cb=jQuery110207011977954539625_1653962086445&_=1653962086455

将url地址填到postman请求中,可以看到这个接口有大量的参数,在没有接口文档的情况下,并不知道每个参数的作用,这时可以阅读参数名称进行推测,并通过调整是否传递某个参数来进行测试。

例如我们很容易推断query字段就是填写查询的ip的字段,核心需要测试的参数就是这个query字段,而其他的参数可以通过取消勾选来不携带对应参数进行请求。

最后我们可以推出真正必须的参数只有queryresource_id这两个。基于接口抓包信息进行测试推理也是在使用postman进行接口测试调试的过程中需要掌握的技能。

需要头域信息参数的get接口

在进行接口请求时,如果接口文档没有特别的说明,通常不需要额外关注接口的头部信息,Postman会自动将一些完成HTTP请求所必须填写的请求头进行自动填充,就像寄快递的时候快递单上的许多内容就算不填,快递公司也会默认安排一些选项。

下面我们通过腾讯课堂上的评论获取接口来了解需要额外填写头域的接口如何操作:

抓包网页地址:https://ke.qq.com/course/317690?tuin=227706b0

接口url地址:https://ke.qq.com/cgi-bin/comment_new/course_comment_list?cid=317690&count=10&page=0&filter_rating=0&bkn=2022245353&r=0.5551734563303183

在请求时,先不填写头部信息进行请求:

得到的结果会是refer错误,并没有预期中的评论列表信息,切换到Headers菜单中可以看到Postman在完成请求时会自动携带一部分请求头域来完成请求。包括之前已经完成的接口,大家也都可以在Headers中看到Postman自动添加的头域信息。

从返回结果的提示信息已经非常清楚,需要添加Referer头域才能完成请求,Referer头域的作用在这里是为了声明请求的发起来源,防止盗链。因此我们在Headers中加上抓包信息中的Referer头域再次请求:

这次得到的返回结果就是预期中的评论信息了。因此,当接口明确说明需要某个请求头参数的时候,我们只需要按照接口文档或者抓包信息,将对应的参数添加到Headers中就好。

最后我们还是用快递的例子做个比喻:

完成get请求时,就像让快递员捎个口信,让服务器返回我们需要的内容,由于get没有请求体,那么请求过程就是填写接口请求四要素中的URL(对方地址)、HTTP方法(快递方式)和请求头(快递单上的其他信息),在Postman上逐个抄写就行。

而进行测试就是在服务器接收正确的参数边缘反复试探,比起功能测试,测试的数据对象更为集中了。

希望本文对你有所帮助~~如果对软件测试、接口测试、自动化测试、面试经验交流感兴趣可以私聊我或关注公众号“特斯汀软件测试”。免费领取最新软件测试大厂面试资料和Python自动化、接口、框架搭建学习资料!技术大牛解惑答疑,同行一起交流。

相关推荐

GANs为何引爆机器学习?这篇基于TensorFlow的实例教程为你解惑!

「机器人圈导览」:生成对抗网络无疑是机器学习领域近三年来最火爆的研究领域,相关论文层出不求,各种领域的应用层出不穷。那么,GAN到底如何实践?本文编译自Medium,该文作者以一朵玫瑰花为例,详细阐...

高丽大学等机构联合发布StarGAN:可自定义表情和面部特征

原文来源:arXiv、GitHub作者:YunjeyChoi、MinjeChoi、MunyoungKim、Jung-WooHa、SungKim、JaegulChoo「雷克世界」编译:嗯~...

TensorFlow和PyTorch相继发布最新版,有何变化

原文来源:GitHub「机器人圈」编译:嗯~阿童木呀、多啦A亮Tensorflow主要特征和改进在Tensorflow库中添加封装评估量。所添加的评估量列表如下:1.深度神经网络分类器(DNNCl...

「2022 年」崔庆才 Python3 爬虫教程 - 深度学习识别滑动验证码缺口

上一节我们使用OpenCV识别了图形验证码躯壳欧。这时候就有朋友可能会说了,现在深度学习不是对图像识别很准吗?那深度学习可以用在识别滑动验证码缺口位置吗?当然也是可以的,本节我们就来了解下使用深度...

20K star!搞定 LLM 微调的开源利器

LLM(大语言模型)微调一直都是老大难问题,不仅因为微调需要大量的计算资源,而且微调的方法也很多,要去尝试每种方法的效果,需要安装大量的第三方库和依赖,甚至要接入一些框架,可能在还没开始微调就已经因为...

大模型DeepSeek本地部署后如何进行自定义调整?

1.理解模型架构a)查看深度求索官方文档或提供的源代码文件,了解模型的结构、输入输出格式以及支持的功能。模型是否为预训练权重?如果是,可以在预训练的基础上进行微调(Fine-tuning)。是否需要...

因配置不当,约5000个AI模型与数据集在公网暴露

除了可访问机器学习模型外,暴露的数据还可能包括训练数据集、超参数,甚至是用于构建模型的原始数据。前情回顾·人工智能安全动态向ChatGPT植入恶意“长期记忆”,持续窃取用户输入数据多模态大语言模型的致...

基于pytorch的深度学习人员重识别

基于pytorch的深度学习人员重识别Torchreid是一个库。基于pytorch的深度学习人员重识别。特点:支持多GPU训练支持图像的人员重识别与视频的人员重识别端到端的训练与评估简单的re...

DeepSeek本地部署:轻松训练你的AI模型

引言:为什么选择本地部署?在AI技术飞速发展的今天,越来越多的企业和个人希望将AI技术应用于实际场景中。然而,对于一些对数据隐私和计算资源有特殊需求的用户来说,云端部署可能并不是最佳选择。此时,本地部...

谷歌今天又开源了,这次是Sketch-RNN

前不久,谷歌公布了一项最新技术,可以教机器画画。今天,谷歌开源了代码。在我们研究其代码之前,首先先按要求设置Magenta环境。(https://github.com/tensorflow/magen...

Tensorflow 使用预训练模型训练的完整流程

前面已经介绍了深度学习框架Tensorflow的图像的标注和训练数据的准备工作,本文介绍一下使用预训练模型完成训练并导出训练的模型。1.选择预训练模型1.1下载预训练模型首先需要在Tensorf...

30天大模型调优学习计划(30分钟训练大模型)

30天大模型调优学习计划,结合Unsloth和Lora进行大模型微调,掌握大模型基础知识和调优方法,熟练应用。第1周:基础入门目标:了解大模型基础并熟悉Unsloth等工具的基本使用。Day1:大模...

python爬取喜马拉雅音频,json参数解析

一.抓包分析json,获取加密方式1.抓包获取音频界面f12打开抓包工具,播放一个(非vip)视频,点击“媒体”单击打开可以复制URL,发现就是我们要的音频。复制“CKwRIJEEXn-cABa0Tg...

五、JSONPath使用(Python)(json数据python)

1.安装方法pipinstalljsonpath2.jsonpath与Xpath下面表格是jsonpath语法与Xpath的完整概述和比较。Xpathjsonpath概述/$根节点.@当前节点...

Python网络爬虫的时候json=就是让你少写个json.dumps()

大家好,我是皮皮。一、前言前几天在Python白银交流群【空翼】问了一个Python网络爬虫的问题,提问截图如下:登录请求地址是这个:二、实现过程这里【甯同学】给了一个提示,如下所示:估计很多小伙伴和...