接口postman

前后端

前端:是肉眼所能见到的界面 

后端:处理数据,数据逻辑

接口:提供前后端交互的通道

接口测试:校验接口返回的响应数据是否与预期的一致

接口测试可以绕过前端,直接对服务器进行测试

请求方式 post get

响应回来结果 登录成功,登录失败 数据

实现方式:

postman/jmeter

python+request+unittest

java+httpClient

HTTP协议

超文本传输协议,基于请求与响应的应用层

特点:b/s模式,简单快速,灵活,无连接,无状态

完整语法格式:协议 :// IP地址:端口号/资源路径?查询参数

39.167.90.145 /www.baidu.com 一个ip地址可以对应多个域名

HTTP请求

产生于客户端

请求行

位于请求的第一行,包括请求方法,url,协议版本

请求方法:
GET:查询 —— 没有请求体
POST:添加 (注册、登录)
DELETE:删除 —— 没有请求体
PUT:修改

请求头

位于 请求行之下,空行之上的部分。 数据组织格式 一定是 k:v 对。

Content-Type : 作用,指定 请求体的数据类型。
application/json:请求体数据类型为json
application/x-www-form-urlencoded:请求体的数据类型 为 表单类型。

请求体

位于 空行 之下。
有的 请求协议 是没有请求体。如:get、delete
请求体的数据类型, 受 请求头中 Content-Type 的值影响。

携带的数据,以&为间隔

抓一个接口?需要关注

接口地址、接口参数、请求方式、响应内容

HTTP响应

产生于服务端,服务器收到客户端的请求协议之后才产生响应

响应行

/状态行:版本协议,状态码,状态码描述

状态码分为5类:

1xx 提示信息

2XX 成功

3XX 重定向

4XX 客户端错误

5XX 服务器错误

响应头

位于 响应行之下,空行之上的部分。 数据组织格式 一定是 k:v 对

响应体

位于 响应头之下 ,几乎所有 响应协议 都有响应体。
响应体中 包含的数据,是接口测试过程中,所要使用的 实际结果!!

接口规范

传统风格接口:采用get/post实现所有操作,状态码统一返回200, URL 与 资源不是 一一对应的。在 URL 中查看出,是何种操作

RESTful风格接口

接口使用的方法,与 http协议的 请求方法,一一对应。
get - 查、post - 增、put - 改、delete - 删
URL 与 资源 一一对应!不能从 URL 中,看出 是 何种操作。 需要通过 结合 请求方法 来识别何种操作。
响应状态码 使用较为全面。

接口测试流程

1. 需求分析(产品经理的需求文档)
2. 接口文档解析(开发编写的 接口API文档)
3. 设计 接口测试用例(编写 Excel 表格形式的用例)
4. 准备接口测试脚本
postman 工具 生成脚本
python 代码 编写脚本
5. 执行测试用例,跟踪缺陷
6. 生成 接口测试报告
7. 接口自动化持续集成(可选)

接口文档:API文档 一般由后端开发人员编写,用来描述接口信息的文档。

接口文档的作用
协同:团队人员工作协同配合
约束:项目更新修改同步维护
解析接口文档
为什么要解析
通过分析接口文档,熟悉接口信息。
通过接口文档获取,接口测试所使用的 请求数据、预期结果。
解析的核心目标
1. 请求报文关键数据
请求方法、URL、请求数据(请求头、请求体)
2. 响应报文关键数据
响应状态码、响应数据(响应体)

postman基本使用

get请求

post请求

接口用例设计

大致分为功能测试,性能测试,安全测试

功能测试

单接口:单独的业务,如登录业务,对应的登录接口

正向测试

必填参数组合 p0

必填+非必填组合 p2/p3

全部参数组合 p1

反向测试

1.功能异常 p1

2.数据异常 p2 (空,类型不符合,长度不符合)

3.参数异常(多参,少参,无参,错误参数)

业务场景功能测试:多个接口被连续调用(模拟用户实际使用场景)

 尽量模拟用户实际使用场景, 

尽量用最少的用例覆盖最多的接口请求

一般覆盖正向测试即可

性能测试

响应时长:从发送请求到接收到服务器回发响应包所经历的时间

错误率:服务器运行出错的概率

吞吐量:服务器单位时间内处理请求的数量

服务器资源利用率:cpu,内存,网络,磁盘等硬件资源的占用率

安全测试

攻击安全:木马,病毒

业务安全:必须登录才能访问用户数据,敏感数据加密存储 

postman断言

1. 断言响应状态码

2.断言包含某字符串

3. 断言JSON数据

postman断言原理

Postman 关联

简介
当接口和接口之间,有依赖关系时,需要借助 postman 关联技术,来实现。
如: 登录接口 返回的 令牌数据,被 添加员工接口依赖。
添加员工接口 返回 员工id,被 查询员工接口依赖。

实现步骤

核心代码

用返回数据做变量作为数据来查百度

登录令牌来添加员工

postman参数化

简介
什么是参数化:
将 测试数据,组织到 数据文件中,通过脚本的反复迭代,使用不同的数据,达到测试不同用例的目标。
应用场景:
一般在测试同一个接口的不同 测试点时,只有测试数据不同。考虑使用 参数化。

数据文件简介

CSV:
优点:数据组织格式简单
缺点:
1. 不能测试 bool 类型。因为 postman 读取 csv后,将所有非数值类型数据,自动添加 ”“ 变为字符串
2. 不能存储复杂数据类型(元组、列表、字典)。
3. 不能实现 参数测试。
应用场景:数据量较大,数据组织格式简单。

JSON:
优点:
1. 可以测试 bool类型
2. 能使用 复杂数据类型
3. 可以实现 参数测试。
缺点:相同数据量,json文件要远大于 csv 文件。
应用场景:数据量较少,数据组织格式复杂。需要进行 参数测试!

导入数据文件到postman

csv文件预览,正确无乱码

json数据预览,正确无乱码

读取数据文件数据

理论

根据使用位置不同,有两种方法

1.在请求参数(行头体中)使用数据文件中的数据

csv文件/json文件:{{keyName/键名}}

2.代码中获取

postman内置data对象引用key

csv文件:data.字段名

json文件:data.键名  

  • JSON文件:最外层必须为 [] ,然后使用 {} 存放多组数据。

使用参数化查询不可以用send

Postman 控制台调试

有异常或出现失败的时候,可借助控制台进行查看分析。

4.1 配置好 生成测试报告环境中

安装node.js

#安装 双击.msi文件,一路下一步安装即可。无需特殊设定。 #测试安装成功 npm -V

安装newman

#安装newman
npm install -g newman
#测试安装成功
newman -V

#安装newman插件 -标准版
npm install -g newman-reporter-html

#安装newman插件 -扩展版 (最好使用这个)
npm install -g    newman-reporter-htmlextra

4.2 导入和导出 测试用例集

导出用例集

导入用例集

导出环境(有环境约束,需要连同环境一同导出)

生成测试报告文件

测试统计分析 + 测试结果确认 Newman生成测试报告

newman run 用例集文件.json -e 环境文件.json -d 数据文件.json/.csv -r htmlextra --reporter-htmlextra-export 测试报告名.html

newman run <测试脚本文件路径> -e <环境变量文件路径>  -d 数据文件.json/.csv -r html --reporter-html-export <测试报告输出路径>

newman  run "D:\Desktop\test1\login.postman_collection.json" -e "D:\Desktop\test1\testenv.postman_environment.json" -d "D:\Desktop\test1\login.json" -r  html --reporter-html-export "D:\Desktop\test1"

# 完整命令
newman run 用例集文件.json  -e  环境文件.json  -d  数据文件.json/.csv  -r  htmlextra  --reporter-htmlextra-export  测试报告名.html

-e 和 -d  是非必须的。
如果没有使用  环境,不需要指定  -e
如果没有使用数据文件(做参数化), 不需要指定-d


命令说明:
● run xx.json:执行测试集文件
● -e source:环境变量文件
● -d source:测试数据文件
● -r html:生成测试报告类型
● --reporter-html- export source:存放报告的路径

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

论文阅读——ApeGNN- Node-Wise Adaptive Aggregation in GNNs for Recommendation

ApeGNN: Node-Wise Adaptive Aggregation in GNNs for Recommendation ApeGNN&#xff1a;GNN 中的节点自适应聚合以进行推荐 Abstract 近年来&#xff0c;图神经网络&#xff08;GNN&#xff09;在推荐方面取得了长足的进步。基于 GNN 的推荐系统的核心机制是迭代聚合用户-…

安装AutoCAD异常

问题&#xff1a; 安装Autodesk产品时&#xff0c;显示以下消息&#xff0c;且安装未完成。 正在等待操作系统重新启动。 请重新启动计算机以安装 AutoCAD 2024。 操作系统&#xff1a; Windows 10Windows 11 原因&#xff1a; Windows注册表项已损坏。Microsoft Visual C …

APaaS:智能制造助手

资金不足、IT基础架构薄弱...... 车间业务需求不断地在增加...... 都在说数字化&#xff0c;都在说转型...... 随着企业竞争的日益激烈和市场环境的快速变化&#xff0c;企业需要一个灵活、高效、快速响应市场变化的新平台。在这样的背景下&#xff0c;APaaS应运而生&#x…

缠论再研究1-顶底分型

由于现在不是全职写程序了&#xff0c;看起来不是那么辛苦&#xff0c;终于有点精力重新研究缠论了。 之前做过几个月期货&#xff0c;发现真是太难了&#xff0c;布鲁克斯的书写的好是好&#xff0c;终归还是太过复杂&#xff0c;一时半会吸收不了&#xff0c;加之我们程序员…

Flutter 实现软鼠标

文章目录 前言一、如何实现&#xff1f;1、记录鼠标偏移2、MouseRegion获取偏移3、Transform移动图标 二、完整代码三、使用示例总结 前言 flutter在嵌入式系统中运行时&#xff0c;有可能遇到drm鼠标无法使用的情况&#xff0c;但鼠标事件却可以正常接收&#xff0c;此时如果…

全局弹窗组件实现

全局弹窗组件实现 使用函数式组件实现。框架采用Vue、bootstrap。 当我们写好一个组件时&#xff0c;这个组件功能大体上可能都是差不多的&#xff0c;但是要在很多地方调用&#xff0c;通常的组件要在template中引入才行。 在饿了么UI组件中&#xff0c;有的对话框组件只是…

三.苹果支付 - 漏单补单处理

介绍 苹果的支付流程并不复杂&#xff0c;我们可以在很短的时间内实现正常的支付流程。 但是苹果支付有一个很大特点就是慢&#xff0c;包括唤起支付弹窗&#xff0c;点击完成到服务端验单完成&#xff0c;整个流程很长&#xff0c;任何一个环节都有可能因为断网&#xff0c;…

kubesphere踩过的坑,持续更新....

踩过的坑 The connection to the server lb.kubesphere.local:6443 was refused - did you specify the right host… 另一篇文档中 dashboard 安装 需要在浏览器中输入thisisunsafe,即可进入登录页面 ingress 安装的问题 问题描述&#xff1a; 安装后通过命令 kubectl g…

Oracle 是否扼杀了开源 MySQL

Oracle 是否无意中扼杀了开源 MySQL Peter Zaitsev是一位俄罗斯软件工程师和企业家&#xff0c;曾在MySQL公司担任性能工程师。大约15年前&#xff0c;当甲骨文收购Sun公司并随后收购MySQL时&#xff0c;有很多关于甲骨文何时“杀死MySQL”的讨论。他曾为甲骨文进行辩护&#…

【系统架构设计师】一、计算机系统基础知识(指令系统|存储系统|输入输出技术|总线结构)

目录 一、指令系统 1.1 计算机指令 1.2 指令寻址方式 1.3 CISC 与 RISC 1.4 指令流水线 二、存储系统 2.1 分级存储体系 2.2 地址映射 2.3 替换算法 2.4 磁盘 2.4.1 磁盘结构和参数 2.4.2 磁盘调度算法 三、输入输出技术 四、总线结构 五、考试真题练习 一、指令…

【PL理论】(29) OOP:面向对象编程 | 案例研究:C++ 中的类 | 继承 | 继承和指针 | Object-oriented Programming

&#x1f4ad; 写在前面&#xff1a;本章我们将进入 Object-oriented Programming&#xff0c;面向对象编程的讲解&#xff0c;探讨 C 中的类&#xff0c;继承等。 目录 0x00 面向对象编程 0x01 C语言中的结构体 0x02 案例研究&#xff1a;C 中的类 0x03 术语 0x04 继承&…

12.3 Go 测试覆盖率

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

关于 python request 的 response 返回 b‘\xa3\xff\xff\x11E .....‘ 类型的数据的解决方案

最近写开发一个爬虫&#xff0c; 程序在本地好好的&#xff0c;返回的是正常的 html&#xff0c; 但是到了生产环境&#xff0c;不知道为什么返回的是一堆乱码 长这样&#xff1a; 查了好几天都没有进展&#xff0c; 对其进行各种转码均无效 今天终于找到解决办法了&#xff…

LabVIEW回热系统热经济性分析及故障诊断

开发了一种利用LabVIEW软件的电厂回热系统热经济性分析和故障诊断系统。该系统针对火电厂回热加热器进行优化&#xff0c;通过实时数据监控与分析&#xff0c;有效提高机组的经济性和安全性&#xff0c;同时降低能耗和维护成本。系统的实施大幅提升了火电厂运行的效率和可靠性&…

永久删除的文件如何恢复?记好这4个方法,轻松恢复文件!

“在清理电脑时&#xff0c;我一不小心把一些还需要的文件永久删除了&#xff0c;不知道大家有没有方法可以恢复这些文件呢&#xff1f;” 在数字时代&#xff0c;我们的生活和工作几乎都离不开电脑和各类存储设备。然而&#xff0c;随着数据的不断增长&#xff0c;误删文件、格…

DNS响应时间分析

目录 什么是DNS响应时间&#xff1f; 为什么DNS响应时间很重要&#xff1f; AnaTraf流量分析仪DNS分析 在当今数字化时代&#xff0c;网络的稳定性和性能对企业的运营至关重要。作为IT运维人员&#xff0c;我们的职责是确保网络顺畅运行&#xff0c;而DNS&#xff08;域名系…

想做副业,如何发现用户需求呢?

点击下方“JavaEdge”&#xff0c;选择“设为星标” 第一时间关注技术干货&#xff01; 免责声明~ 任何文章不要过度深思&#xff01; 万事万物都经不起审视&#xff0c;因为世上没有同样的成长环境&#xff0c;也没有同样的认知水平&#xff0c;更「没有适用于所有人的解决方案…

关于电脑文件的规划思考

概述 设置C、D、E、F 四个盘 C盘&#xff1a;系统数据使用&#xff0c;操作系统、其他软件需要用到的系统性资源 D盘&#xff1a;应用软件区 的使用&#xff0c;数据库、navacat、idea、visual studio、浏览器、向日葵、虚拟机…… E盘&#xff1a;工作区&#xff1a;公司资料…

【云】各家云服务器介绍

文章目录 各主流云服务厂商个人开发者购买什么够用优惠信息 各主流云服务厂商 腾讯云&#xff1a; 优点&#xff1a;腾讯云在程序员圈子中享有“良心云”的美誉&#xff0c;主要是因为其价格性价比高&#xff0c;续费价格也不贵。腾讯云提供了多款云服务器配置&#xff0c;如2核…

物流货运单怎么打印,佳易王货物运单打印查询统计管理系统操作教程

物流货运单怎么打印&#xff0c;佳易王货物运单打印查询统计管理系统操作教程 一、前言 以下软件操作教程以&#xff0c;佳易王物流货运单管理软件为例说明 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 软件操作教程 1、物流开单点击导航栏 物流开单…