测试必备工具 —— Postman实战教程!

01、接口测试

(1)服务器端(server):在使用别人的服务器上,例如微信APP客户端,服务端在腾讯的服务端上,微信上的账号信息,聊天记录均存储在服务端上;用户A发送1条信息到服务端上,服务端再把这条信息转发到用户B上。

服务器使用的语言分别为:Java、Python、PHP、Go、C、C++等等

(2)客户端(client):手机上的APP,网站

客户端使用的语言分别为:object-c(IOS)、Android、HTML、CSS、JS等等

(3)接口:通过客户端与服务端进行交互的

(4)这么多种类的语言,造成无法识别,需要通用的数据类型进行解析:json{},没有json之前用的XML格式

  • XML :通用的数据类型
<title>接口测试
<content>服务器与客户端需要接口进行交互</content>
  • JSON :通用的数据类型,以一种键值对来展示:
{
"title" : "接口测试",
"content" : "服务器与客户端需要接口进行交
}

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:691998057【暗号:csdn999】

02、如何测试接口

1、接口:是由客户端和服务器来进行交互的,以及接口返回的数据一般都是json格式的数据类型。

2、接口测试基本步骤如下:

  • 在接口文档中或者其它地方,拿到接口的URL地址
  • 查看接口是用什么方式发生请求(例如:get和post请求)
  • 添加请求头,请求体
  • 发送查看返回结果,校验返回结果是否正确

3、打开接口文档(参考:http://doc.nnzhp.cn

(1)URL

(2)请求方式

(3)请求参数

(4)get请求

  • 在浏览器上,直接输入接口文档中的请求URL:http://api.nnzhp.cn/api/user/stu_info,页面报错提示“必填参数未填写!请查看接口文档!”(如图所示)

  • 基于上面中的url链接中不带必填参数报错,故需在URL中补上必填参数:http://api.nnzhp.cn/api/user/stu_info?stu_name=%E5%B0%8F%E6%98%8E

  • 机器学习PAI控制台:https://pai.data.aliyun.com/console?regionId=ap-southeast-1&commodityId=&projectId=&deployFrom=&modelPath=&type=#/eas
  • 有多个必填参数时,需要在URL中添加其他必填参数用“&”拼接,例如:http://api.nnzhp.cn/api/user/stu_info?stu_name=%E5%B0%8F%E6%98%8E&age=25

(5)post请求

  • 复制URL在浏览器打开,报错“请求方式错误!请查看接口文档”,例如如图显示

  • 这时候需要借助postman接口工具进行测试,前提条件:需要本地安装postman应用软件(注意:如果是POST请求,选择Params填写参数,这时URL中会自动带上该参数信息,这种请求方式应该是GET请求方式而不是POST请求,如图:)

  • POST请求,应该选择Body选项,勾选“form-data”或者“x-www-form-urlencoded”填写必填参数,如图所示:

  • POST请求,用户注册,如图:

  • POST请求,入参为json类型,如图:

  • 查询是否存在该学生信息:

  • POST请求,Body选择form-data,Key由Text切换File格式,进行文件上传,(注意:x-www-form-urlencoded没有File格式,只有Text选项,不能上传多媒体文件)如图:

4、浏览器进行抓包

(1)浏览器打开检查或者开发者工具,再或者检查元素等控制台

(2)一般查看调用接口Network(网络)下面的XHR调用了哪些接口

(3)请求url:https://qun.qq.com/cgi-bin/qunwelcome/myinfo?callback=?&bkn=682554596

(4)利用Postman接口工具进行调用接口:get_group_list

(5)接口search_group_members ,多个参数进行接口测试:

(6)cookie和session

  • 保存时间:根据需要设定
  • 保存位置:客户端
  • 保存时间:用户活动时间+一段延迟时间(登录时提示用户保存时间7天时间)
  • 保存位置:服务器端
  • cookie:在浏览器存放自己本地信息数据的一个键值对(key-value)的地方
  • session:存放在服务端的一个键值对

5、GET请求方式和POST请求方式的区别:

(1)GET请求没有请求体,只要请求头和URL:host/api/xxx?name=xxx

(2)POST请求是有请求头、请求体

(3)GET请求没有POST请求安全

(4)GET请求有参数长度限制,POST没有

03、postman接口自动化

1、测试银行项目、金融项目会遇到加密参数,需要:
(1)参数去掉加密

(2)提供一个工具,产生加密后的参数

(3)自己了解加密算法,然后自己加密

2、Postman中手动配置环境变量:

(1)在Postman中,有Environment和Environment,用于实现不同环境的管理,不同服务器环境分别为:

  • Production 生产环境
  • Development 开发环境
  • Local 本地局域网环境

(2)环境快速查看,如图1所示 :

(3)使用Environment实现多服务版本管理,点击右上角的设置,点击【Manage Environments】,和图2所示:

(4)在弹窗【MANAGE ENVIRONMENTS】界面中,右下角点击“Add”,如图:

(5)在“Add Environment”中,填写变量名和变量值 ,如图:

(6)配置好变量名称和变量值后,可以在请求URL中进行参数化:

(6)编写脚本,脚本参数化,如同

(7)点击runner,配置运行参数,如同:

(8)查看最后的运行结果,状态码为200 ok,表示运行成功,如图:

图中有个字段是:“This requests does not have any tests.”

需要检查:

第一步:检查是否变量名称是否对应;

第二步:是否点击了保存,再点击Runner

第三步:是否添加了校验

(9)添加校验,设置检查

(10) postman断言:

(11) 点击【Tests】按钮,右边栏有个snippets栏,里面是postman内置的测试脚本,辅助接口测试:

A:判断状态码

Status code : Code is 200

  对应的脚本:

 pm.test("Status code is 200", function () {  pm.response.to.have.status(200);   );

B:返回的response包含内容

Response body : Containing string

对应的脚本:

 pm.test("Body matches string", function () {pm.expect(pm.response.text()).to.include("string_you_want_to_search");});

C:返回的json数据中的值

Response body : JSON value check

对应的脚本为:

pm.test("Your test name", function () {var jsonData = pm.response.json();pm.expect(jsonData.value).to.eql(100);});

D:响应的内容等于一个字符串

Response body : is equal to a string

  对应的脚本:

       pm.test("Content-Type is present", function () {pm.response.to.have.header("Content-Type");});

E:检查响应头中是否有Content-Type字段

Response headers : Content-Type header check

  对应的脚本:

          pm.test("Response time is less than 200ms", function () {pm.expect(pm.response.responseTime).to.be.below(200);});

F:判断响应的时间少于200MS

Response time is less than 200ms

对应的脚本:

pm.test("Response time is less than 200ms", function () {        pm.expect(pm.response.responseTime).to.be.below(200);         });

(12)新建集合便于将个别请求进行分组,如图:

04、HTTP

1、http和https的不同之处:

  • 安全性不同:

http:普通的http请求,,信息明文传输信息,不安全;

https:具有安全性的ssl加密传输协议,为浏览器和服务器之间的通信加密,确保数据传输的安全;

  • 连接方式不同:

http的连接很简单,是无状态的;

https是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议;

  • 端口不同:

http协议:使用的端口是80;

https协议:使用的端口是443;

  • 证书申请方式不同:

http协议:免费申请;

https协议:需要到ca申请证书,一般免费证书很少,需要交费。

2、一般完整的URL为:http://192.168.13.3:80 host/ip:port/api/user/add_stu uri

3、接口HTTP参数

  • get --- 通过请求URL得到资源
  • POST --- 用于添加新的内容
  • PUT ---用于修改某个内容
  • DELETE---删除某个内容
  • CONNECT---用于代理进行传输,如使用SSL
  • OPTIONS---询问可以执行哪些方法
  • PATCH---部分文档更改
  • PROPFIND(WebDAV)---查看属性
  • PROPPATCH(WebDAV)---设置属性
  • MKCOL(WebDAV)---创建集合(文件夹)
  • COPY(WebDAV)---拷贝
  • MOVE(WebDAV)---移动
  • LOCK(WebDAV)---加锁
  • UNLOCK(WebDAV)---解锁
  • TRACE ---用于远程诊断服务器
  • HEAD --- 类似于GET,但是不返回body信息,用于检查对象是否存在,以及得到对象的元数据
  • 请求头包含许多有关客户端环境和请求正文的又用信息。如图所示:例如语言种类和状态码

  • json 格式
  • xml 格式
  • html 格式
  • 二进制格式(多用于图片)
  • 字符串格式
  • http请求方式:
  • http请求头(headers)
  • http请求体(body):请求体即为请求等正文。

4、用户接口可以通过以下4种不同方式的请求来做不同的事情:

(1)获取数据,用“GET”方式,成功了返回HTTP状态码:200

(2)创建数据,用“POST”方式,成功了返回HTTP状态码:201

(3)修改数据,用“PUT”方式,成功了返回HTTP状态码:203

(4)删除数据,用“DELETE”方式,成功了返回HTTP状态码:204

5、HTTP状态吗:

(1)请求消息(1字头)例如:100 Continue(请继续)

(2)请求成功 (2字头)例如:200 OK(请求已成功)

(3) 重定向 (3字头)例如:300 Multiple Choice(多项选择,会返回一个选项列表)

(4) 客户端请求错误 (4字头)例如:400 Bad Request (错误请求) 403 Forbidden(禁止) 404 Not Found(没有找到)

(5)服务器错误(5、6字开头)例如:500 Internal Server(内部错误) 502 Bad Gateway(代理或者网关下一链路收到未响应)

详细查看HTTP状态码、HTTP Status Code、HTTP常见状态码查询:https://tool.oschina.net/commons?type=5

下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

最后: 可以在公众号:自动化测试老司机 ! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/9142.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1010: 折半查找的实现

解法&#xff1a; #include<iostream> #include<vector> using namespace std; void solve() {int n;cin >> n;vector<int> vec(n);for (int& x : vec) cin >> x;int x;cin >> x;int l 0, r n-1, cnt 0;while (l < r) {cnt;int…

C语言进阶 文件操作知识(下)

一. 文本文件和二进制文件 根据数据的组织形式&#xff0c;数据文件被称为文本文件或者二进制文件。 数据在内存中以二进制的形式存储&#xff0c;如果不加转换的输出到外存&#xff0c;就是二进制文件。 如果要求在外存上以ASCII码的形式存储&#xff0c;则需要在存储前转换。…

java爬虫代理ip(java爬虫代码示例)

java爬虫代理ip 在编写java爬虫时&#xff0c;经常会遇到需要使用代理IP来访问目标网站的情况。这时候&#xff0c;我们就需要编写代码来实现代理IP的功能。接下来&#xff0c;我们将为大家介绍如何在java爬虫中使用代理IP&#xff0c;以及给出相应的代码示例。 首先&#xff…

腾讯游戏海外扩张,增持芬兰游戏开发商股份持股比例增至14.8%

易采游戏网5月8日消息&#xff0c;近日腾讯再次出手&#xff0c;大幅增持了芬兰知名游戏开发商Remedy Entertainment的股份&#xff0c;持股比例猛增至14.8%。这一举动引起了业界和投资者的广泛关注。 据了解&#xff0c;腾讯此次增持是在2024年4月24日完成的。根据芬兰法律规…

TCP通信并发:

上次的程序只能保持&#xff0c;单线程或者进程 多进程并发服务器 进程的特点&#xff08;有血缘关系&#xff09; 创建子进程&#xff1a;fork&#xff08;&#xff09;&#xff1b; 虚拟地址空间被复制 &#xff0c;从一份变成两份&#xff08;用户区和内核区&#xff09…

JVM垃圾回收详解

一、基本概念 1、HotSpot VM &#xff1a;是由 Oracle 公司开发的一种 Java 虚拟机&#xff08;JVM&#xff09;&#xff0c;是 Java SE 平台上最广泛使用的虚拟机之一。它是 OpenJDK 的一部分&#xff0c;也是 Oracle JDK 的基础之一。使用即时编译&#xff08;Just-In-Time …

使用ROW_NUMBER()分组遇到的坑

1、再一次清洗数据时&#xff0c;需要过滤重复数据&#xff0c;使用了ROW_NUMBER() 来分组给每组数据排序号 在获取每组的第一行数据 with records as(select cc.F_Id as Id,REPLACE(cc.F_CNKITitle,char(10),1) as F_CNKITitle,REPLACE(REPLACE(cc.F_Special,专题&#xff1…

Kubernetes——基础认识

目录 前言 什么是云原生 云元素 K8s与中间件以及微服务之间的关系 Kubernetes发展历史 一、简介 1.Kubernetes是什么 2.为什么要使用Kubernetes 3.Kubernetes特性 3.1自我修复 3.2弹性伸缩 3.3自动部署和回滚 3.4服务发现和负载均衡 3.5集中化配置管理和密钥管理…

车载测试系列:车载测试流程

车载测试流程是保证软件质量的重要支撑&#xff0c;优秀的团队都必须拥有规范的流程体系支撑&#xff0c;它能够约束测试人员的测试行为&#xff0c;约束测试环境的测试精度&#xff0c;提升测试的覆盖度&#xff0c;保证团队成员工作的协调性。 该测试流程建立的依据&#xf…

书生浦语训练营第2期-第7节笔记

一、为什么要研究大模型的评测&#xff1f; 首先&#xff0c;研究评测对于我们全面了解大型语言模型的优势和限制至关重要。尽管许多研究表明大型语言模型在多个通用任务上已经达到或超越了人类水平&#xff0c;但仍然存在质疑&#xff0c;即这些模型的能力是否只是对训练数据的…

二分查找向下取整导致的死循环69. x 的平方根

二分查找向下取整导致的死循环 考虑伪题目&#xff1a;从数组arr中查找出目标元素target对应的下标&#xff0c;如果数组中不存在目标元素&#xff0c;找 到第一个元素值小于target的元素的下标。 编写二分查找算法如下&#xff1a; Testvoid testBinarySearch(){int[] arr n…

Web 功能以及源码讲解

Web 功能以及语言讲解 培训、环境、资料、考证 公众号&#xff1a;Geek极安云科 网络安全群&#xff1a;624032112 网络系统管理群&#xff1a;223627079 网络建设与运维群&#xff1a;870959784 移动应用开发群&#xff1a;548238632 短视频制作群&#xff1a; 744125867极…

网络新手如何上手水牛社软件?我的建议与看法

水牛社是一款专为电脑用户设计的软件&#xff0c;拥有明确的著作权&#xff0c;其核心功能在于发布和整合各类网络活动任务资源、教程等&#xff0c;内容多元且不设固定分类。其靠谱程度取决于你对软件的了解程度和个人需求的适配性。 软件内部包含五个主要栏目&#xff0c;大…

轮廓提取、矩形标记时,点的位置需要重标

在下图中的0&#xff0c;3&#xff0c;1&#xff0c;2位置如何变换成0&#xff0c;1&#xff0c;2&#xff0c;3 先显示结果&#xff1a; 变换之后图&#xff1a; 这边提供两种解决方案&#xff1a; 第一种&#xff1a;将坐标值相加求和&#xff0c;采用冒泡排序实现从小到大…

使用固定公网地址远程访问开源服务器运维管理面板1Panel管理界面

文章目录 前言1. Linux 安装1Panel2. 安装cpolar内网穿透3. 配置1Panel公网访问地址4. 公网远程访问1Panel管理界面5. 固定1Panel公网地址 前言 1Panel 是一个现代化、开源的 Linux 服务器运维管理面板。高效管理,通过 Web 端轻松管理 Linux 服务器&#xff0c;包括主机监控、…

Excel文件解析---超大Excel文件读写

1.使用POI写入 当我们想在Excel文件中写入100w条数据时&#xff0c;使用XSSFWorkbook进行写入时会发现&#xff0c;只有将100w条数据全部加载到内存后才会用write()方法统一写入&#xff0c;效率很低&#xff0c;所以我们引入了SXXFWorkbook进行超大Excel文件读写。 通过设置 …

C语言leetcode刷题笔记1

C语言leetcode刷题笔记1 第1题&#xff1a;136.只出现一次的数字两次遍历&#xff08;O(numsSize^2)&#xff09;位运算 第2题&#xff1a;202.快乐数快慢指针记录历史数据 第3题&#xff1a;53.最大子数组和暴力求解&#xff08;超时&#xff09;动态规划分治 第1题&#xff1…

每日Attention学习3——Cross-level Feature Fusion

模块出处 [link] [code] [PR 23] Cross-level Feature Aggregation Network for Polyp Segmentation 模块名称 Cross-level Feature Fusion (CFF) 模块作用 双级特征融合 模块结构 模块代码 import torch import torch.nn as nnclass BasicConv2d(nn.Module):def __init__(…

PLC学习笔记

PLC学习笔记 前言一、一些基操知识二、GX works2编程2.1 位逻辑1.2 中间寄存器1.3 PLC的扫描方式 总结 前言 我这个人真的是太渴望知识了~ 一、一些基操知识 一般X表示输入&#xff0c;Y表示输出。一般八个为一组X0~X7M表示中间寄存器&#xff0c;M0~M7时间T、计数C 二、GX …

BiTCN:基于卷积网络的多元时间序列预测

在时间序列预测领域中&#xff0c;模型的体系结构通常依赖于多层感知器(MLP)或Transformer体系结构。 基于mlp的模型&#xff0c;如N-HiTS, TiDE和TSMixer&#xff0c;可以在保持快速训练的同时获得非常好的预测性能。基于Transformer的模型&#xff0c;如PatchTST和ittransfo…