全网最全postman接口测试教程和项目实战~从入门到精通!!!

Postman实现接口测试内容大纲一览:

一、什么是接口?为什么需要接口?

接口指的是实体或者软件提供给外界的一种服务。

因为接口能使我们的实体或者软件的内部数据能够被外部进行修改。从而使得内部和外部实现数据交互。所以需要接口。

比如:

硬件接口:USB接口:它的作用是使电脑能够和U盘等外部设备交互数据。

软件接口:右称:API(application program interface):微信提现功能调用银联接口实现数据交互。

二、接口返回的数据格式。

1.json格式如:

{‘error_code’:40001,msg:'提现成功',data:[具体的数据]}

error_code(code):错误码

msg(message):对错误码的中文说明

data(result):具体的数据

目前80%-90%多会返回这个json格式:

json数据格式是由以下两种数据组成:(可以互相嵌套)

a.字典,{键值对}

b.数组:[12,13,14]

验证json格式以及可以做加密和解密:https://www.bejson.com/

2.xml格式如:

<xml>

<error_code>40001</error_code>

<msg>提现成功</msg>

<data>具体的数据</data>

</xml>

3.html格式如:

<html>

<head>

<title></title>

</head>

<body></body>

</html>

三、接口协议:(通过接口地址分辨)

1.http协议:地址以https//开头:这里重点讲解http协议,因为目前市面上80%的接口都是使用这种协议!

(1) 什么是http协议

http协议是一种超文本传输协议。主要用于浏览器和服务器之间交互数据。交互数据分为两个部分:

请求:get(获取数据),post(提交数据),put(修改数据),delete(删除数据)

响应:用数字来表示响应的结果

1XX信息

2XX成功

3XX重定向(跳转)

4XX客户端错误

5XX服务器错误

(2)http协议请求详解

请求行(请求方式,请求地址,协议的版本)

POST http://localhost/phpwind/index.php?m=u&c=login&a=dorun HTTP/1.1

请求头

Host: localhost(请求的主机地址)

Connection: keep-alive(这个连接保存活跃)

Content-Length: 110(请求的内容有110个字节)

Accept: application/json, text/javascript, */*; q=0.01(客户端可以接收的数据格式)

X-Requested-With: XMLHttpRequest(ajax请求,异步请求)

User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like

Gecko) Chrome/78.0.3904.108 Safari/537.36(客户端的用户)

Content-Type: application/x-www-form-urlencoded; charset=UTF-8(内容的格式)

Referer: http://localhost/phpwind/index.php?m=u&c=login(来源)

Accept-Encoding: gzip, deflate, br(压缩方式)

Accept-Language: zh-CN,zh;q=0.9(语言)

Cookie: csrf_token=2c76c391ab3922fe; (cookie信息)

空一行

请求数据

username=admin&password=123456&csrf_token=2c76c391ab3922fe

(3) http协议响应详解

响应行(协议,响应码,响应信息)

HTTP/1.1 200 OK

响应头

Date: Tue, 02 Jun 2020 13:09:47 GMT

Server: Apache/2.4.23 (Win32) OpenSSL/1.0.2j PHP/5.4.45

X-Powered-By: PHP/5.4.45

Set-Cookie: z92_lastvisit=1409%091591103387%09%2Fphpwind%2Findex.php%3Fm%3Du%26c%3Dlogin

%26a%3Ddorun; expires=Wed, 02-Jun-2021 13:09:47 GMT; path=/

Vary: Accept-Encoding

Content-Length: 310

Keep-Alive: timeout=5, max=100

Connection: Keep-Alive

Content-Type: text/html

空一行

响应数据

{"refresh":false,"state":"success","data":"","html":"","message":[""],"__error":""}

2.webservice协议:地址以https://开头,但是包含一个?wsdl

3.dubbo协议:以dubbo://开头

四、企业当中如何做接口测试?

1.得到api接口文档,熟悉接口业务,接口地址,鉴权,入参,出参,错误码。

2.编写接口测试计划方案以及评审。

3.编写接口测试用例以及评审

思路:

正例:

鉴权反例:

鉴权码为空,错误的鉴权码,鉴权码已过期......

参数反例:

参数为空,参数类型异常,参数长度异常,

其他场景:

分页场景:(0,第一页1,中间页5,最后一页10,100,其他异常)

4.使用接口测试工具执行接口测试

5.输出接口测试报告。

五、接口测试工具Postman介绍

Postman是一款功能强大的网页调试与发送HTTP请求的Chrome插件,专为接口而生。界面功能如下:

六、使用Postman执行接口测试页签和传参说明

(1) Postman请求主要页签说明:

Params:get请求传参

Headers:请求头

Body:post请求传参

1.none没有参数

2.form-data:传文件和键值对

3.x-www.. 传键值对

4.raw:传text,json,xml

5.binary:传文件的二进制。

Pre-request Script:请求之前的脚本

Tests:请求之后的断言脚本,用于判断请求是否成功!

(2) Postman响应主要页签说明:

Body:响应的数据(Pretty:json格式,Raw:文本格式,Preview:网页格式)

Cookies:缓存

Headers:响应头

Test Results:断言的结果

(3) Postman返回码和返回状态信息说明

Status:200返回码

OK:返回信息

Time:170ms 毫秒

Size:343B 字节

七、Postman断言

//断言:判断接口有没有成功,常用的断言如下:

//1.断言返回码为200

pm.test("Status code is 200", function () {

pm.response.to.have.status(200);

});

//2.断言返回的结果中中包括access_token字符串。

pm.test("Body matches string", function () {

pm.expect(pm.response.text()).to.include("access_token");

});

//3.断言返回的json数据中的值:断言expires_in的值为7200

pm.test("Your test name", function () {

var jsonData = pm.response.json();

pm.expect(jsonData.expires_in).to.eql(7200);

});

//4.断言响应的内容等于一个字符串

pm.test("Body is correct", function () {

pm.response.to.have.body("response_body_string");

});

//5.检查响应头中是否有Content-Type字段

pm.test("Content-Type is present", function () {

pm.response.to.have.header("Content-Type");

});

//6.断言响应的时间少于200MS

pm.test("Response time is less than 200ms", function () {

pm.expect(pm.response.responseTime).to.be.below(300);

});

八、Postman环境变量和全局变量

1.在右上角的齿轮图标中可以设置环境变量和全局变量,如:

开发环境:url:192.168.0.1

测试环境:url:192.168.0.2

预发布环境:url:192.168.0.3

线上环境:url:http://www.xxx.com

2.在请求时:通过{{}}去调用全局变量

3.在运行时:选择不同的环境

九、上一个接口的返回值如何作为下一个接口的参数

1.上一个接口的tests中取值:

//JSON.parse把返回的值转化成一个vjson格式的数据,保存到value这个变量中

var value = JSON.parse(responseBody)

//把取得的token值保存到全局变量的access_token变量中。

pm.globals.set("access_token", value.access_token);

2.下一个接口通过{{access_token}}取值

十、PHPWIND论坛API项目实战

此项目笔者列举出有如下接口:

1.访问项目接口

2.登录接口

3.跳转到登录成功页面接口

4.选板块接口

5.点击新板块接口

6.发帖接口

7.跳转到发帖成功接口

8.回帖接口

9.跳转到回帖成功页面接口

10.退出接口

接口文档如下:

接口演示如下:

十一、内容太多写不下,总结一下

如果你觉得此文对你有帮助,如果你对此文有任何疑问,如果你对软件测试、接口测试、自动化测试、面试经验交流感兴趣请拉到最上面关注笔者的名字!

总结

如果你对此文有任何疑问,如果你也需要接口项目实战,如果你对软件测试、接口测试、自动化测试、面试经验交流感兴趣欢迎加入我们,加入方式在文章的最后面

  自动化测试相关教程推荐:

2023最新自动化测试自学教程新手小白26天入门最详细教程,目前已有300多人通过学习这套教程入职大厂!!_哔哩哔哩_bilibili

2023最新合集Python自动化测试开发框架【全栈/实战/教程】合集精华,学完年薪40W+_哔哩哔哩_bilibili

测试开发相关教程推荐

2023全网最牛,字节测试开发大佬现场教学,从零开始教你成为年薪百万的测试开发工程师_哔哩哔哩_bilibili

postman/jmeter/fiddler测试工具类教程推荐

讲的最详细JMeter接口测试/接口自动化测试项目实战合集教程,学jmeter接口测试一套教程就够了!!_哔哩哔哩_bilibili

2023自学fiddler抓包,请一定要看完【如何1天学会fiddler抓包】的全网最详细视频教程!!_哔哩哔哩_bilibili

2023全网封神,B站讲的最详细的Postman接口测试实战教学,小白都能学会_哔哩哔哩_bilibili

  总结:

 光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

​​​

​​​

如果对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。

如有不懂还要咨询下方小卡片,博主也希望和志同道合的测试人员一起学习进步

在适当的年龄,选择适当的岗位,尽量去发挥好自己的优势。

我的自动化测试开发之路,一路走来都离不每个阶段的计划,因为自己喜欢规划和总结,

测试开发视频教程、学习笔记领取传送门!!

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

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

相关文章

2023年全国职业院校技能大赛软件测试赛题—单元测试卷①

单元测试 一、任务要求 题目1&#xff1a;根据下列流程图编写程序实现相应分析处理并显示结果。返回文字“xa*a*b的值&#xff1a;”和x的值&#xff1b;返回文字“xa-b的值&#xff1a;”和x的值&#xff1b;返回文字“xab的值&#xff1a;”和x的值。其中变量a、b均须为整型…

力扣120. 三角形最小路径和(Java 动态规划)

Problem: 120. 三角形最小路径和 文章目录 题目描述思路解题方法复杂度Code 题目描述 思路 Problem:64. 最小路径和 本题目可以看作是在上述题目的基础上改编而来&#xff0c;具体的思路&#xff1a; 1.记录一个int类型的大小的 n 乘 n n乘n n乘n的数组&#xff08;其中 n n n为…

使用 Github、Hugo 搭建个人博客

Hugo 静态网站构建手册&#xff1a;https://jimmysong.io/hugo-handbook/ 关键字&#xff1a;开源 博客 框架 1、GitHub Pages 官网&#xff1a;https://pages.github.com/ 文档&#xff1a;https://docs.github.com/zh Github Pages 简介 Websites for you and your project…

HarmonyOS——ArkUI状态管理

一、状态管理 在声明式UI编程框架中&#xff0c;UI是程序状态的运行结果&#xff0c;用户构建了一个UI模型&#xff0c;其中应用的运行时的状态是参数。当参数改变时&#xff0c;UI作为返回结果&#xff0c;也将进行对应的改变。这些运行时的状态变化所带来的UI的重新渲染&…

python 异常处理 try...except...finally..

python 异常处理&#xff1a; 简单的异常处理主要依靠内置异常处理结构体&#xff0c;代码结构如下&#xff1a; try: … except ValueError as e: # 异常判断&#xff0c;出现ValueError错误时处理机制 … except ZeroDivisionError as e: # 异常判断&#xff0c;出现ZeroDiv…

2024年免费服务器活动整理汇总

随着科技的发展&#xff0c;服务器在各行各业的应用越来越广泛&#xff0c;而免费服务器活动也成为了许多企业和个人关注的焦点。目前有许多免费服务器活动可供选择&#xff0c;本文将为大家整理汇总免费服务器活动&#xff0c;帮助大家更好地了解和参与。 一、腾讯云免费服务器…

【Linux】:Linux中的Git分支管理

本章开始介绍 Git 的杀⼿级功能之⼀&#xff08;注意是之⼀&#xff0c;也就是后⾯还有之⼆&#xff0c;之三……&#xff09;&#xff1a;分⽀。分⽀就是科幻电影⾥⾯的平⾏宇宙&#xff0c;当你正在电脑前努⼒学习 C 的时候&#xff0c;另⼀个你正在另⼀个平⾏宇宙⾥努⼒学习…

day15 层序遍历 翻转二叉树 对称二叉树

题目1&#xff1a;102 二叉树的层序遍历 题目链接&#xff1a;102 二叉树的层序遍历 题意 根据二叉树的根节点root&#xff0c;返回其节点值的层序遍历 借助队列实现&#xff0c;因为队列是先进先出的逻辑&#xff0c;符合层序遍历一层一层遍历的思想 代码 /*** Definitio…

超详细讲解Transformers自然语言处理NLP文本分类、情感分析、垃圾邮件过滤等(附数据集下载)

超详细讲解Transformers自然语言处理NLP文本分类、情感分析、垃圾邮件过滤等(附数据集下载) 什么是自然语言处理 (NLP) ? 自然语言处理 (NLP) 是计算机科学的一个分支,更具体地说,是人工智能 (AI) 的分支,旨在让计算机能够以与人类大致相同的方式理解文本和语音。 自然语…

开发代码基础

首先安装驱动&#xff0c;在ARDUINO环境下安装&#xff0c;然后安装开发板&#xff0c;详见哔哩哔哩教程 1&#xff1a;接入点模式&#xff08;也称 AP&#xff09; 通过以下示例程序&#xff0c;NodeMCU将会建立一个名为taichi-maker的WiFI。您可以使用手机或电脑连接该WiFi…

【论文阅读】Self-supervised Learning: Generative or Contrastive

Abstract 研究了在计算机视觉、自然语言处理和图形学习中用于表示的新的自监督学习方法。全面回顾了现有的实证方法&#xff0c;并根据其目的将其归纳为三大类&#xff1a;生成性、对比性和生成性对比&#xff08;对抗性&#xff09;。进一步收集了关于自我监督学习的相关理论…

Java浮点数精度问题与BigDecimal详解

第1章&#xff1a;引言 大家好&#xff0c;我是小黑&#xff0c;咱们在日常的Java编程中&#xff0c;经常会遇到处理金融数据的情况&#xff0c;比如计算商品的价格或者处理用户的账户余额。在这些场景下&#xff0c;精确的数值计算就显得尤为重要。这时候&#xff0c;BigDeci…

【SPDK】【NoF】使用SPDK实现NVMe over Fabrics Target

本文使用两台PC&#xff0c;一台做NVMe over Fabrics Target&#xff08;服务端&#xff09;&#xff0c;一台做NVMe over Fabrics initiator&#xff08;客户端&#xff09;。首先使用SoftRoCE来实现底层的rdma传输&#xff0c;然后使用SPDK来实现NVMe over Fabrics Target。 …

内存卡为什么会提示格式化,内存卡提示格式化还能恢复吗

对于许多电脑用户来说&#xff0c;执行内存卡格式化操作导致数据丢失是一个常见的问题。在日常生活中&#xff0c;数据丢失的情况并不少见&#xff0c;但内存卡格式化后的数据恢复相对较难。目前&#xff0c;能够使用的方法较少&#xff0c;且成功率较低&#xff0c;但并不是没…

全网快递查询工具:批量查询,提升工作效率的利器

在快递行业日新月异的今天&#xff0c;高效、准确的快递信息管理显得尤为重要。固乔快递查询助手正是一款专为快递网点设计的实用工具&#xff0c;它可以帮助您快速、批量查询全网快递单号&#xff0c;为您的网点运营带来诸多便利。 一、固乔快递查询助手的用途 批量查询&…

java: 5-3 for循环

文章目录 1. for1.1 基本语法1.2 练习1.3 执行流程1.4 细节1.5 编程思想 (练习) 【老韩b站视频笔记p121-p125】 1. for 让你的代码可以循环执行。 1.1 基本语法 for 关键字&#xff0c;表示循环控制。for 有四要素: (1)循环的初始变量。 (2)循环的条件&#xff08;变量条件&…

代码随想录算法训练营第25天 | 216.组合总和III 17.电话号码的字母组合

目录 216.组合总和III &#x1f4a1;解题思路 回溯三部曲 &#x1f4bb;实现代码 17.电话号码的字母组合 &#x1f4a1;解题思路 # 数字和字母如何映射 # 回溯法来解决n个for循环的问题 &#x1f4bb;实现代码 216.组合总和III 题目链接&#xff1a;216.组合总和III …

百家大吉·夕阳关爱——昌岗街微型养老博览会

居民热情参与博览会 为让长者了解及选择适合自己的养老服务&#xff0c;昌岗街在2023年12月27日开展以“百家大吉夕阳关爱”为主题的昌岗街微型养老服务公益博览会活动&#xff0c;通过搭建养老服务机构供需服务平台&#xff0c;拓宽社区长者了解正规养老服务机构的渠道&#…

仿真验证方法(1)——动态验证

一、概述 1.1 验证的目的和方法 在现代集成电路设计中&#xff0c;验证所占工作量超过70%。验证要求真实而完备&#xff0c;它决定了设计的成败与成本。 验证的目的 原始描述是否正确&#xff1f;&#xff08;代码&#xff09; 逻辑功能是否正确&#xff1f;&#xff08;功能…

OpenGl 19高级GLSL

一.GLSL的内建变量 在着色器中&#xff0c;需要当前着色器以外地方的数据的话&#xff0c;必须把数据传进来。之前我们是通过uniform类型和采样器来完成的。之外&#xff0c;GLSL还支持另外几个以gl为前缀的变量&#xff0c;提供更多读写数据的方式&#xff0c;比如说顶点着色…