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

news2024/11/25 15:57:07

mzfCYAAAAASUVORK5CYII=

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&backurl=http%3A%2F%2Flocalhost%2Fphpwind

%2F&invite=&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环境变量和全局变量

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==编辑

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

开发环境:url:192.168.0.1

测试环境:url:192.168.0.2

预发布环境:url:192.168.0.3

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

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

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==编辑

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

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==编辑

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

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.退出接口

接口文档如下:

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==编辑

接口演示如下:

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==编辑

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

如果你对此文有任何疑问,如果你也需要接口项目实战,如果你对软件测试、接口测试、自动化测试、面试经验交流感兴趣欢迎加入:软件测试技术群:11347,25192,群里的免费资料都是笔者十多年测试生涯的精华。还有同行大神一起交流技术哦。

 

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

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

相关文章

支撑企业未来10年高增长,用友资金管理平台助力新零售企业逆境破局

随着大数据、云服务、5G等技术的深化发展&#xff0c;人们消费观念及需求逐渐变化&#xff0c;我国新零售业数字化进程不断加快。近年来&#xff0c;新零售已经不仅局限于单一的零售范畴&#xff0c;逐步演变为集零售、快递物流、金融科技、企业服务、人工智能等各行各业为一体…

公司只有1个测试,领导却让我测试10个项目,这不是为难我....

读者提问&#xff1a;公司只有 1个测试&#xff0c;领导让我同时测试 10个项目&#xff0c;我该怎么办&#xff1f;回答&#xff1a;如果我是那个测试&#xff0c;我会做这三件事 1、向上申请资源2、任务分配到人3、执行测试任务 一、向上申请资源 1个测试同时对接 10个项目&a…

华为云认证的含金量高吗?数通考什么内容?

对于从事信息通信行业的人来说&#xff0c;拥有一份专业的证书&#xff0c;对提升自己的技能、职业竞争力是非常有帮助的&#xff0c;而华为云虽然是一个新兴的云计算厂商&#xff0c;但是咋断电几年之内&#xff0c;已经发展到了国内第二的位置&#xff0c;而且还在不断地发展…

java序列化和文件的输入和输出

文章目录 一、JAVA的序列化1. 简介2. 对象序列化的步骤3. 小结4. 序列化4. 解序列化 二、对象的序列化1. 简介2. Java.io.File.class3. 缓冲区 三、序列化版本控制 一、JAVA的序列化 1. 简介 如何将我们的java对象存储起来&#xff0c;这里介绍两种思路&#xff1a; 如果我们…

【JavaEE进阶】——第八节.SpringBoot统一功能处理

作者简介&#xff1a;大家好&#xff0c;我是未央&#xff1b; 博客首页&#xff1a;未央.303 系列专栏&#xff1a;JavaEE进阶 每日一句&#xff1a;人的一生&#xff0c;可以有所作为的时机只有一次&#xff0c;那就是现在&#xff01;&#xff01;&#xff01; 文章目录 前…

智能公厕引导系统为未来共享公厕发展新趋势打造基础

智慧公厕管理系统可以提高公厕的服务质量和管理效率&#xff0c;实现公厕的自动化管理和数据分析。该系统可以广泛应用于各类公共场所&#xff0c;如商场、公园、机场、医院等。 一、智慧公厕引导系统案例展示 智慧公厕管理系统还可以实现公厕的人口统计和安全监控等功能。服务…

【今天聊聊AI】AI歌手会取代流行歌手吗

一、聊聊AI歌手发展现状 近日&#xff0c;“AI孙燕姿”火遍全网&#xff0c;AI孙燕姿翻唱林俊杰的《她说》、周董的《爱在西元前》、赵雷的《成都》等等歌曲让网友听了直呼&#xff1a;“听了一晚上&#xff0c;出不去了。” 现在AI歌手技术到底已经发展到了怎样的地步&#xf…

MySQL千万级数据优化方案

简介 ↓↓↓处理千万级数据的MySQL数据库&#xff0c;可以采取以下优化措施↓↓↓ 使用索引&#xff1a;确保对经常用于查询和排序的字段添加索引。不要在查询中使用SELECT *&#xff0c;而是明确指定需要的字段。分区表&#xff1a;如果表中的数据按照时间或其他维度进行划分&…

26岁机电专业,零基础转行学云计算,求推荐靠谱机构!

26岁机电专业&#xff0c;零基础转行学云计算&#xff0c;求推荐靠谱机构&#xff01; 关于26岁零基础转行云计算&#xff0c;求机构推荐这类问题。建议可以先把自己的具体需求整理清楚&#xff0c;例如自身的学习能力情况、需要学习的专业的技术内容、你想要通过培训学习达到什…

承接vue2->vue3的一些变动

1.Vue3简介 2020年9月18日&#xff0c;Vue.js发布3.0版本&#xff0c;代号&#xff1a;One Piece&#xff08;海贼王&#xff09;耗时2年多、2600次提交、30个RFC、600次PR、99位贡献者github上的tags地址&#xff1a;https://github.com/vuejs/vue-next/releases/tag/v3.0.0 …

NetApp FAS 混合闪存阵列协助您建构简单易用、聪明智慧、值得信赖的储存基础架构

NetApp FAS 混合闪存阵列 主要优势 1、简单易用&#xff1a;节省您宝贵的时间、金钱和人力 •几分钟内完成储存资源配置。 •以获证实的效率技术降低成本。 •可在单一系统上管理档案与区块资料。 2、聪明智慧&#xff1a;灵活因应瞬息万变的业务需求 •以不中断营运的方式扩…

javascript中的错误类型

javascript 中的错误类型&#xff1a; SyntaxErrorTypeErrorReferenceErrorRangeErrorURLErrorError SyntaxError 语法错误 // 当您在编写一个函数时忘记了括号 ,)来括起您的代码&#xff0c;您将收到一个SyntaxError错误 function say(text) {return text; }say(shark;// …

[论文阅读72]Parameter-Efficient Transfer Learning for NLP

1. 基本信息 题目论文作者与单位来源年份Parameter-Efficient Transfer Learning for NLPNeil Houlsby等Google Research&#xff0c;雅盖隆大学-波兰PMLR2019 Houlsby N, Giurgiu A, Jastrzebski S, et al. Parameter-efficient transfer learning for NLP[C]//Internationa…

代码随想录训练营Day49| 121. 买卖股票的最佳时机 122.买卖股票的最佳时机II

目录 学习目标 学习内容 121. 买卖股票的最佳时机 122.买卖股票的最佳时机II 学习目标 121. 买卖股票的最佳时机 122.买卖股票的最佳时机II 学习内容 121. 买卖股票的最佳时机 121. 买卖股票的最佳时机 - 力扣&#xff08;LeetCode&#xff09;https://leetcode.cn/prob…

chatgpt赋能Python-python_ip地址转换

Python IP地址转换&#xff1a;原理、常用函数和示例 在网络编程中&#xff0c;IP地址是一个很重要的概念。Python提供了很多IP地址转换函数&#xff0c;这篇文章将讲解其原理、常用函数和示例。 IP地址转换原理 IP地址是由32位表示的二进制数&#xff0c;它是计算机在网络上…

socket概述 python中如何使用TCP/UDP协议实现通信-教程

很多编程语言中&#xff0c;都使用scoket套接字实现网络通信。 Socket是对TCP/IP协议的封装&#xff0c;Socket本身就是一个调用接口&#xff08;API&#xff09;&#xff0c;方便程序员用Socket使用TCP/IP协议簇&#xff0c;实现网络通信。 不同编程语言&#xff0c;shiyong…

基于ROS2的costmap中Obstacle Layer中对障碍物信息的增加与删除机制的方案调研。

文章目录 1.背景2.目标3. 障碍物信息添加方式发送数据的数据结构与接收数据的数据结构 4. 障碍物清理机制4.1 可调参数4.2 优化光追算法4.3 障碍物跟踪 1.背景 基于costmap地图&#xff0c;使用navigation导航时&#xff0c;会出现由于激光雷达/图像测距的局限性&#xff0c; …

RocketMQ 在小米的多场景灾备实践案例

作者&#xff1a;邓志文、王帆 01 为什么要容灾&#xff1f; 在小米内部&#xff0c;我们使用 RocketMQ 来为各种在线业务提供消息队列服务&#xff0c;比如商城订单、短信通知甚至用来收集 IoT 设备的上报数据&#xff0c;可以说 RocketMQ 的可用性就是这些在线服务的生命线…

我写了个操作系统,却被别人给骂了!

前言 哈喽&#xff0c;小伙伴们好&#xff0c;我是子牙。是一个擅长深入研究Windows内核、Linux内核、Hotspot源码的资深程序员&#xff0c;之前是JVM专家&#xff0c;手写过JVM。所以做老师后&#xff0c;第一个打造的课程便是《手写JVM》小班&#xff0c; 一经推出就受到了学…

我的苹果手机的越狱之旅

最近因为业务需要&#xff0c;需要一台越狱手机&#xff1b;就把测试机6plus拿来做越狱使用&#xff0c;在此之前先大致说明一下越狱的原理、应用、流程以及可能存在的问题&#xff1a; 越狱是指通过一些技术手段&#xff0c;使iOS设备可以访问到iOS系统的全部控制权&#xff0…