postman接口功能测试

news2024/11/19 14:34:03

前言                                                        

  之前还没实际做过接口测试的时候呢,对接口测试这个概念比较渺茫,只能靠百度,查看各种接口实例,然后在工作中也没用上,现在呢是各种各样的接口都丢过来,总算是有了个实际的认识。虽然只是接口功能的测试,但是也要记录下自己学到的点滴技能。

  因为只是接口的功能测试,所以目前是用postman做测试,比较简便,当然这只是接口测试的入门而已,了解的只是冰山一角,后续会努力往接口压力、接口性能、接口自动化方向靠拢。(postman的安装方法可以百度一下,这里就不提了)

  各位大佬勿喷哈~

接口理论                                                 

  我们常说的接口就是API,接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。

  其实接口测试就和普通功能测试没什么区别,区别就是功能测试是在页面上输入值,提交数据看结果,而接口测试没有页面,通过接口规范文档上的调用地址,请求参数,拼接报文,然后发送请求,检查返回结果。

  

接口实例                                                

一、POST

POST请求是用来发送数据的,下面以下XX系统分配加工厂为例

1、产品经理的PRD文档要求如下(分配加工厂接口的修改内容如下):

1) 分配加工厂接口里新增加工厂ID字段,整数类型,非必填;

2.)若对单领料单已经审核通过,限制只有待审核状态才能分配加工厂,若不是则提示“对单领料单不是待审核,不能分配加工厂”;

2、开发人员的接口文档如下:

接口名称:XX系统分配加工厂接口

接口路径:POST  /process/requisitionOrder/updateDistributeStatus

请求参数:

Headers:

参数名称参数值是否必须示例备注
Content-Typeapplication/json

Body:

{
  "factoryId": "123",//加工厂ID
  "factory": "XX服饰",//加工厂名称
  "produce_order_id": [//生产制单(纯数字) 多个用,分开
    1134360
  ]
}

返回数据:

{
  "msg": "success",
  "code": "0",
  "info": "操作成功"
}

3、测试人员的测试用例如下:

用例编号模块用例标题前提条件操作步骤预期结果
01XX接口分配加工厂接口里新增加工厂ID字段,整数类型,非必填填写错误的或类型不对的加工厂ID返回具体的错误信息
不填写加工厂ID,其他条件符合要求分配加工厂成功,XX系统的领料单正确显示加工厂名称
填写正确的加工厂ID,其他条件符合要求分配加工厂成功,XX系统的领料单正确显示加工厂名称
填写正确的加工厂ID,对单领料单已经审核通过返回提示“对单领料单不是待审核,不能分配加工厂”;

4、测试人员执行测试用例如下:

1)打开Postman,填写接口信息,具体操作如图

注:接口文档中的URL是不带环境地址的,所以将URL复制到地址栏时,前面还要加上环境的地址,比如测试环境的地址+接口URL,

当然如果有多个环境的话,可以用环境配置功能,具体配置步骤在第4)步进行描述。

2)结合测试用例,组合变换参数信息后,查看返回的JSON数据与PRD是否一致

3)测试用例遍历完成后,以上即完成了POST请求的接口功能测试。

4)这里描述一下postman的环境配置

第一步,如图

第二步,如图

第三步,如图

第四步,如图

第五步,如图(这是针对有多个环境的情况,比如一般都会有测试环境、验收环境、生产环境)

二、GET

GET请求是用来获取数据的,下面以XX系统获取出库账单为例,(以下只列出部分数据信息用于演示)

1、产品经理的PRD文档要求如下:

输入参数
字段名称是否必填取值逻辑备注说明
账单日期例如2019-04-10
供应商ID
输出参数
账单编号ML+年月日+流水号一个账单日期内,一个供应商只对应一个账单
账单日期输入参数里的账单日期
供应商名称从出库单获取
SKU从出库单明细获取
采购单价根据SKU获取档案的基准价
数量出库数量
账单金额采购单价*数量,金额为负

2、开发人员的接口文档如下:

接口名称:出库账单同步到XX系统接口

接口路径:GET  /purchase/prepareOrder/importListFromPlm

请求参数:

Query:

参数名称是否必须示例备注
billDate2019-02-20账单日期
supplierId1供应商ID

返回数据:

{
    "msg": "success",
    "code": "0",
    "info": {
        "list": [
            {
                "billNo": "ML201902205005",         //账单编号
                "billDate": "2019-02-20",           //账单日期
                "factory": "生产部萨文服饰-烨琳",   //供应商名称
                "materialSku": "16MLZS0513-628",    //物料SKU
                "num": 20,                          //数量
                "purchasePrice": 0,                 //采购单价
                "billSum": 0,                       //账单金额
            }
        ]
    }
}

3、测试人员的测试用例如下:

用例编号所属模块用例标题前提条件测试步骤预期结果
01XX接口输入正确的‘账单日期’请求参数,接口正确返回相应的账单数据系统中有在该账单日期内的账单

1、在请求地址中增加‘billDate’参数;
2、billDate填写正确的账单日期,点击GET

{"msg": "success", "code": "0", "info":….}
info显示正确的账单信息

02XX接口输入不符合规范的‘账单日期’请求参数,接口返回参数不符合要求填写12/23/45

1、在请求地址中增加‘billDate’参数;
2、billDate填写不符合规范的账单日期,点击GET

{"msg":"账单日期不符合规范;","code":"43"}
03XX接口将‘账单日期’请求参数置空,接口返回参数必填

1、在请求地址中增加‘billDate’参数;
2、billDate不填写,点击GET

{"msg":"账单日期不能为空;","code":"43"}
04XX接口‘供应商ID’请求参数请求中没有‘billDate’

1、在请求地址中增加‘supplierId’参数;
2、supplierId填写正确的供应商ID,点击GET

{"msg":"账单日期不能为空;","code":"43"}
05XX接口请求中有‘billDate’

1、在请求地址中增加‘billDate’,‘supplierId’参数;
2、supplierId填写正确的供应商ID,billDate填写正确的账单日期,点击GET

{"msg": "success", "code": "0", "info":….}
info显示正确的账单信息

06XX接口请求中有‘billDate’

1、在请求地址中增加‘billDate’,‘supplierId’参数;
2、supplierId填写错误的供应商ID,billDate填写正确的账单日期,点击GET

{"msg":"供应商ID不存在;","code":"43"}
07XX接口请求中有‘billDate’

1、在请求地址中增加‘billDate’,‘supplierId’参数;
2、supplierId不填写,billDate填写正确的账单日期,点击GET

{"msg": "success", "code": "0", "info":….}
info显示正确的账单信息

08XX接口‘账单编号’输出参数取值为:ML+年+月+日+4位流水号接口返回正确数据1.GET后,查看返回的JSON数据‘账单编号’输出参数取值为:ML+年+月+日+4位流水号
09XX接口以上列举了部分测试用例,其他的测试用例就不再展示了

4、测试人员执行测试用例如下:

1)打开Postman,填写接口信息,具体操作如图

注:接口文档中的URL是不带环境地址的,所以将URL复制到地址栏时,前面还要加上环境的地址,比如测试环境的地址+接口URL,

当然如果有多个环境的话,可以用环境配置功能,具体配置步骤可以参考POST的描述

2)结合测试用例,组合变换参数信息后,查看返回的JSON数据与PRD是否一致

3)测试用例遍历完成后,以上即完成了GET请求的接口功能测试。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

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

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

相关文章

客观看待前后端分离,优劣、场景、对程序员职业的影响

前后端分离倡导多年了,现在基本成为了开发的主流模式了,贝格前端工场承接的前端项目只要不考虑seo的,都采用前后端分离模式。 一、在前端开发中,前后端分离是指什么 在前端开发中,前后端分离是一种架构模式&#xff…

python爬虫入门(一)

使用requests 库获取网站html信息 import requests response requests.get("https://jingyan.baidu.com/article/17bd8e52c76b2bc5ab2bb8a2.html#:~:text1.%E6%89%93%E5%BC%80%E6%B5%8F%E8%A7%88%E5%99%A8F12%202.%E6%89%BE%E5%88%B0headers%E9%87%8C%E9%9D%A2%E7%9A%84…

Java:集合以及集合进阶 --黑马笔记

一、集合概述和分类 1.1 集合的分类 除了ArrayList集合,Java还提供了很多种其他的集合,如下图所示: 我想你的第一感觉是这些集合好多呀!但是,我们学习时会对这些集合进行分类学习,如下图所示:…

微信小程序上传代码教程

文章目录 概要整体架构流程技术名词解释技术细节小结 概要 小程序上传代码到gogs上面来 整体架构流程 小程序也要远程连接仓库,实现代码上传 技术名词解释 微信开发者工具gogs 技术细节 连接gogs仓库地址 微信小程序需要head将本地代码和gogs代码同步 小结 …

【C生万物】数组

📚博客主页:爱敲代码的小杨. ✨专栏:《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 ❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️ 🙏小杨水平有…

node.js基础-02

Author nodes:(题记) Hypertest Transfer protocol is very important to programming personnel。it doesnt matter if youre a front-end engineer or a back-end engineer.So,lets study it together. http协议对于编程工程师很重要&am…

python coding with ChatGPT 打卡第19天| 二叉树:合并二叉树

相关推荐 python coding with ChatGPT 打卡第12天| 二叉树:理论基础 python coding with ChatGPT 打卡第13天| 二叉树的深度优先遍历 python coding with ChatGPT 打卡第14天| 二叉树的广度优先遍历 python coding with ChatGPT 打卡第15天| 二叉树:翻转…

【C++】实现一个二叉搜索树

目录 二叉搜索树的概念 1.结点定义 2.构造、析构、拷贝构造、赋值重载 3.插入、删除、查找、排序 3.1插入 3.2插入递归版 3.3查找指定值 3.3查找指定值递归版 3.4中序遍历 3.5删除 最后 二叉搜索树的概念 二叉搜索树又称为二叉排序树或二叉查找树,它或者…

python WEB接口自动化测试之requests库详解

由于web接口自动化测试需要用到python的第三方库--requests库,运用requests库可以模拟发送http请求,再结合unittest测试框架,就能完成web接口自动化测试。 所以笔者今天先来总结一下requests库的用法。希望对大家(尤其是新手&…

使用CICFlowMeter 实现对pcap文件的特征提取【教程】

使用CICFlowMeter 实现对pcap文件的特征提取【教程】 针对现有的关于CICFlowMeter 的使用教程不够全面,一些细节没有展示,我将结合网络上的相关资料和实际的经历,提供一些经验和建议。 configuration information --------------- Windows…

hexo部署到gitee(码云)

引言 Hexo 是一个基于Node.js的静态博客框架,而 Gitee(也被称为码云)是一个国内的代码托管平台,支持 Git 版本控制系统,与 GitHub 类似。将 Hexo 部署到 Gitee Pages 可以让你的博客受益于 Gitee 的国内服务器&#xf…

详解计算机软件基本概念

软件基本概念 软件的定义 一个完整的计算机系统是由硬件系统和软件系统协同工作来完成某一给定的任务的。 只有硬件的计算机称为裸机,裸机必须安装了计算机软件后才可以完成各项任务。 从广义地讲,软件是指计算机程序、数据以及开发、使用和维护程序…

Go语言安全编码:crypto/sha1库全面解析

Go语言安全编码:crypto/sha1库全面解析 简介SHA-1基础原理和特点SHA-1与其他哈希算法的比较代码示例:基本的SHA-1哈希生成 使用crypto/sha1处理数据处理字符串和文件的SHA-1哈希代码示例:为文件生成SHA-1哈希 常见错误和最佳实践 在实际项目中…

烟雨要饭网带后台,附带搭建教程

直接上传访问即可,有安装向导,php环境不得低于7.0 后台地址/Admin,默认账号admin 默认密码123456 自带乞讨音乐,增加樱花特效

《乱弹篇(十二)聊春晚》

龙年大初一,老龄笔者发表《乱弹篇(十二)》。“十二”的标志,乃好事成双“二”。喜庆有余,自不待言! 除夕夜我没有看春晚,是在继续追剧,即以明朝宫廷内斗为背景的电视连续剧《后宫》…

【原理图PCB专题】Cadence17.4版本新增加的Cutout和Design_Outline层有什么用?

在Cadence 17.4版本中我们发现在Board Geometry下面多出了Cutout和Design_Outline两层,其实这两层在高版本的软件中都做为板框使用。 如下所示在输出光绘时,如果没有将Cutout和Desing_Outline两层加入,还是使用16版本的Outline来定义板框的话,在出光绘时会提示:WA…

备战蓝桥杯---搜索(进阶1)

话不多说,直接看题: 没有传送带时,我们可以直接BFS,但因为传送带的出现,可能在队列里的元素到起点时间不单调的问题,而BFS本来就是可以看成随着时间推移而产生的情况,于是我们把队列看成优先队列…

Matlab使用点云工具箱进行点云配准ICP\NDT\CPD

一、代码 主代码main.m,三种配准方法任选其一 % 读取点云文件 source_pc pcread(bun_zipper.ply); target_pc pcread(bun_zipper2.ply);% 下采样 ptCloudA point_downsample(source_pc); ptCloudB point_downsample(target_pc);% 配准参数设置 opt param_set…

有关网络安全的课程学习网页

1.思科网络学院 免费学习skillsforall的课程 课程链接:Introduction to Cybersecurity by Cisco: Free Online Course (skillsforall.com) 2.斯坦福大学计算机和网络安全基础 该证书对于初学者来说最有价值,它由最著名的大学之一斯坦福大学提供。您可…

卫星通讯领域FPGA关注技术:算法和图像方面(1)

最近关注的公众号提到了从事移动通信、卫星通讯等领域的FPGA、ASIC、信号处理算法等工程师可能需要关注的技术,有LMS算法、RLS算法、LCMV算法、SAR图像处理,以下做了一些基础的调研: 1 LMS算法: LMS(Least Mean Squa…