Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >软件测试|Chrome 浏览器+Postman做接口测试

软件测试|Chrome 浏览器+Postman做接口测试

原创
作者头像
霍格沃兹测试开发Muller老师
发布于 2023-01-09 10:34:50
发布于 2023-01-09 10:34:50
7400
举报

如果把测试简单分为两类,那么就是客户端测试和服务端测试。客户端的测试包括UI测试,兼容性测试等,服务端测试包括接口测试。接口测试检查数据的交换,传递和控制管理过程,它绕过了客户端,直接对服务端进行测试。

客户端测试与服务端测试的关系图:

服务端非常复杂,就像下图的阿里核心链路图,包含大约150个组件,组件与组件之间进行交互,形成了密集的后端网络。UI测试无法覆盖这么复杂的组件交互网络,所以要绕过客户端,直接使用接口测试对服务端进行测试。

阿里核心链路图:

对行业的各种测试进行分层,越往上,发现bug的时间越晚,成本(时间,人力,损失)越高。接口测试(Service)相比ui测试,可以更早发现问题,更快的质量反馈;同理,单元测试(Unit)相比接口测试,可以更早发现问题,更快的质量反馈,花费的成本更低。

分层测试:

虽然接口测试覆盖面广,但是也不能使用接口测试替代客户端测试。UI测试涉及到了用户体验的问题,这部分是无法用接口测试进行替代的。

tcp/udp/http/restful/dubbo等协议区别与解读

TCP协议是在传输层中,一种面向连接的、可靠的、基于字节流的传输层通信协议。对接口测试工具进行分类,可以如下几类:

  • 网络嗅探工具:tcpdump,wireshark
  • 代理工具:fiddler,charles,anyproxyburpsuite,mitmproxy
  • 分析工具:curl,postman,chrome Devtool

作为测试,要有对接口进行测试的能力,在接口测试中,常用的第一个工具就是postman。postman是一个强大的接口测试平台,具有体验友好的可视化界面,在工作中常常作为研发的接口调试工具,以及测试的手动接口测试工具。

可以进入postman官方网站自行选择系统下载安装。postman官方网站:https://www.postman.com/

下面使用postman发送一次get请求。使用学院官方演练地址https://httpbin.testing-studio.com/,进行演示

  • 进入postman软件界面
  • 在URL处填写https://httpbin.testing-studio.com/get
  • 选择GET请求方式
  • 点击Header,key值填写accept,value填写application/json
  • 点击send按钮,查看返回内容

cURL是一个通过URL传输数据的,功能强大的命令行工具。cURL可以与Chrome Devtool工具配合使用,把浏览器发送的真实请求还原出来,附带认证信息,脱离浏览器执行,方便开发者重放请求、修改参数调试,编写脚本。也可以单独使用,根据自己的需求构造请求调整参数,构造多种接口测试场景。

学习curl命令之前,需要先了解Chrome Devtool工具。

Chrome DevTools(Chrome 开发者工具)是内嵌在Chrome浏览器里的一组用于网页制作和调试的工具。在测试的过程中,也常常用作一个简单的抓包工具。

如何操作

  • 选择右上角Chrome 菜单,然后选择更多工具 -> 开发者工具
  • 或者右键,选择检查/审查元素

在 Network 面板中可以查看通过网络来请求来的资源的详细信息:

  • 右键左侧数据,选择Copy -> copy as curl,即可把请求内容转化为curl命令。
  • 将命令copy在gitbash或bash上并运行,则会看到返回信息。
  • 对上面命令进行细化,加入-v参数可以打印更详细的内容,用2>&1将标准错误重定向到标准输出,发送此命令将得到细化后的内容

细化后的命令如下

代码语言:txt
AI代码解释
复制
curl 'https://home.testing-studio.com/' -H \
'authority: home.testing-studio.com' -H 'pragma: no-cache'\
 -H 'cache-control: no-cache' -H 'upgrade-insecure-requests: 1'\
 -H 'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_0)\
  AppleWebKit/537.36 (KHTML, like Gecko)\
   Chrome/80.0.3987.116 Safari/537.36' \
 -H 'sec-fetch-dest: document' \
 -H 'accept: text/html,application/xhtml+xml,\
 application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,\
 application/signed-exchange;v=b3;q=0.9' \
 -H 'sec-fetch-site: none' -H 'sec-fetch-mode: navigate' \
 -H 'sec-fetch-user: ?1' \
 -H 'accept-language: en,zh-CN;q=0.9,zh;q=0.8' \
 --compressed -v 2>&1

发起get请求

代码语言:txt
AI代码解释
复制
curl"https://httpbin.testing-studio.com/get" -H "accept: application/json"

发起post请求

代码语言:txt
AI代码解释
复制
curl -X POST "https://httpbin.testing-studio.com/post" -H "accept: application/json"

proxy的使用

代码语言:txt
AI代码解释
复制
curl -x 'http://127.0.0.1:8080'$url

curl命令重要参数

通过几个小实战演练,了解一些常用参数的用法

  1. 篡改请求头信息,将User-Agent改为”testing-studio“
代码语言:txt
AI代码解释
复制
curl -H "User-Agent:testing-studio""http://www.baidu.com" -v

可以看到请求中的User-Agent成功改为了testing-studio

代码语言:txt
AI代码解释
复制
*   Trying 14.215.177.39...
* TCP_NODELAY set
* Connected to www.baidu.com (14.215.177.39) port 80 (#0)
> GET / HTTP/1.1
> Host: www.baidu.com
> Accept: */*
> User-Agent:testing-studio
  1. 在企业微信中通过curl命令创建标签,这是一个post请求,通过--data参数传递tagname和tagid
代码语言:txt
AI代码解释
复制
curl
 -H "Content-Type: application/json" -X POST \
--data '{"tagname": "hogwarts","tagid": 13}' \
https://qyapi.weixin.qq.com/cgi-bin/tag/create?access_token=$token
  1. 认证,通过put上传到ElasticSearch,使用–user进行用户认证
代码语言:txt
AI代码解释
复制
curl -X PUT "$ES_HOST/$index/_doc/$id?pretty" \
    --user username:password \
    -H 'Content-Type: application/json' \
    -d "$content"

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
软件测试 | Chrome 浏览器+Postman还能这样做接口测试 ?
如果把测试简单分为两类,那么就是客户端测试和服务端测试。客户端的测试包括UI测试,兼容性测试等,服务端测试包括接口测试。接口测试检查数据的交换,传递和控制管理过程,它绕过了客户端,直接对服务端进行测试。
霍格沃兹测试开发
2021/07/14
1.2K0
接口测试基础学习
(一)http协议基础 协议基础 请求消息 响应消息 (二)接口测试概述 (三)Requests库介绍 (四)抓包工具 fiddler (五)URL参数 (六)响应消息 (七)Session机制 (八)待更新 问题记录
全栈程序员站长
2022/09/22
5960
curl 命令-接口测试
在linux/Unix 为代表的os上, 对后端进行测试, 模拟连接请求都会书写脚本
louiezhou001
2019/07/25
2.2K0
curl 命令-接口测试
详解接口测试(2)- HTTP接口用例设计与测试方法(拿B站练手)
在之前的文章《详解接口测试(1)-常见的网络通信协议》当中,我们介绍了接口的概念以及各种类型的接口用到的网络通信协议。鉴于HTTP网络协议使用最为广泛,本文将会基于HTTP协议的接口对其讲解如何进行接口测试,内容包含以下部分:
Bug挖掘机
2022/09/28
2.2K0
详解接口测试(2)- HTTP接口用例设计与测试方法(拿B站练手)
接口测试经典面试题:Session、cookie、token有什么区别?
HTTP是一个没有状态的协议,这种特点带来的好处就是效率较高,但是缺点也非常明显,这个协议本身是不支持网站的关联的,比如https://ceshiren.com/和https://ceshiren.com/t/topic/9737/7这两个网站,必须要使用别的方法将它们两个关联起来。那就是session 、cookie 、token。
hogwartstester
2022/07/21
5300
技术分享 | 使用 cURL 发送请求
cURL 是一个通过 URL 传输数据的,功能强大的命令行工具。cURL 可以与 Chrome Devtool 工具配合使用,把浏览器发送的真实请求还原出来,附带认证信息,脱离浏览器执行,方便开发者重放请求、修改参数调试,编写脚本。也可以单独使用,根据自己的需求构造请求调整参数,构造多种接口测试场景。
霍格沃兹测试开发Muller老师
2022/08/09
1.1K0
熟悉POST提交数据的4种方式,接口测试更高效
Hi,大家好。我们都知道POST一般用于向服务端提交数据,POST提交数据的 4 种格式即Content-Type的4种形式,尤其注意每种格式中http发送请求时body中数据的格式。4种形式分别是:
可可的测试小栈
2021/12/10
2.2K0
熟悉POST提交数据的4种方式,接口测试更高效
重放浏览器单个请求性能测试实践
原因比较复杂,其中一项是因为某一批接口测试需求比较紧,我之前一直的思路就是尽可能模拟真实数据,使用多用户进行性能测试,一般测试前都需要尽量大量的数据准备工作。但是这次不灵了,接口之间的参数依赖过于复杂,如果真写起来,可真就是把端上的工作重新做一遍,不值当的。
FunTester
2021/02/24
6380
软件测试用例编写方法_软件测试用例包括
HttpRunner v3.x支持三种测试用例格式pytest,YAML和JSON。官方强烈建议以pytest格式而不是以前的YAML/JSON格式编写和维护测试用例 格式关系如下图所示:
全栈程序员站长
2022/09/19
8700
软件测试用例编写方法_软件测试用例包括
接口测试之Postman使用全指南(原来使用 Postman测试API接口如此简单)
做接口测试的好处: 1、节约时间,缩短项目成本 2、提高工作效率 3、提高系统的健壮性
全栈程序员站长
2022/09/04
6.1K0
接口测试之Postman使用全指南(原来使用 Postman测试API接口如此简单)
接口自动化项目落地之HTTPBin网站
找个开源网站或开源项目,用tep实现整套pytest接口自动化项目落地,归档到电子书,作为tep完整教程的项目篇一部分。自从tep完整教程发布以后,tep被越来越多小伙伴了解。教程只是纯理论,是骡子是马,拉出来遛遛才知道。做接口自动化项目落地,一方面是为了让自己脑海中的构想实实在在的呈现出来,现实和理想存在多少差距,不断尝试去弥补和修缮;另一方面也是方便读者朋友们学习使用,借助实际项目来练习,才能在赛道中弯道超车。
dongfanger
2022/05/09
6850
接口自动化项目落地之HTTPBin网站
再见!Postman!
接口调试是每个软件开发从业者必不可少的一项技能,一个项目的的完成,可能接口测试调试的时间比真正开发写代码的时间还要多,几乎是每个开发的日常工作项。所谓工欲善其事必先利其器,在没有尝到IDEA REST真香之前,postman(chrome的一款插件)确实是一个非常不错的选择,具有完备的REST Client功能和请求历史记录功能。但是当使用了IDEA REST之后,postman就可以丢了,因为,IDEA REST Client具有postman的所有功能,而且还有postman没有的功能,继续往下看。
Bug开发工程师
2021/01/13
1.6K0
再见!Postman!
curl命令行工具调试http接口使用小结
无论是微信,支付宝还是银联,都有https接口api, 工作中有时候需要调试下http接口。
杨永贞
2022/01/07
1.2K0
【实践】2.如何使用Postman做多接口测试
本文讲解使用postman做接口测试和批量接口测试的方法。Postman的入门参考《【知识】1.Postman接口测试神器从安装到精通》
辉哥
2021/04/16
2.6K0
【实践】2.如何使用Postman做多接口测试
走进Java接口测试之简单快速的Mock Server Moco
在上文走进Java接口测试之Mock(概念篇)中,我们介绍 Mock 的基本概念,本文我们将详细介绍其中一个快速简单Mock Server Moco。
高楼Zee
2019/07/17
3.5K0
走进Java接口测试之简单快速的Mock Server Moco
postman使用教程9-点 code 按钮生成代码段
postman 可以生成各种语言的代码发送接口请求,对于会使用 postman 但python脚本还不熟练的小伙伴会很有帮助。 经常有小伙伴说:为什么我 postman 可以请求成功,用 python 无法请求成功?
上海-悠悠
2021/05/17
1.3K0
postman使用教程9-点 code 按钮生成代码段
cURL——爬虫开发神器
就可以直接转换为Python的requests,Headers什么的就不需要手动粘贴了。
小歪
2019/05/30
2K0
Python接口自动化——Requests
前面我们介绍了接口测试工具:Postman和Jmeter。利用接口测试工具上手使用虽然容易,但是还是不够灵活。例如需要界面上各种配置,有时还需限定的语言脚本来辅助(Postman限定使用Js,Jmeter限定使用Java)
清风穆云
2021/08/09
8900
手动实现一个简单的 HTTP 请求
本文我们通过 Socket,写一个 HTTP 协议,直观的感受一下上篇文章中的请求和响应。
shengjk1
2025/05/16
920
手动实现一个简单的 HTTP 请求
解决Postman响应Json过大无法下载
当Postman在请求一个超大的响应且类型是Json的时候(我们测试Json大约是 98Mb ),然后Postman就像Chrome浏览器一样,(HTTP状态码是200)无法查看响应的结果了。这样对于这类特定场景,想要看到这个超大Json,然后定位问题来说,是很不友好的。
收心
2024/06/04
6900
解决Postman响应Json过大无法下载
相关推荐
软件测试 | Chrome 浏览器+Postman还能这样做接口测试 ?
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档