【Postman接口测试】接口用例设计实战—以聚合数据的新闻头条接口为例

在接口测试中,精心设计测试用例是确保接口质量的关键。本文将以聚合数据的新闻头条接口(新闻详情查询)为例,深入运用多种测试用例设计方法,打造全面且细致的测试用例集。
在这里插入图片描述

一、等价类划分法

(一)用例分析

等价类划分法将输入数据划分为有效等价类和无效等价类,从每个等价类中选取代表性数据进行测试,可在减少测试用例数量的同时保证测试覆盖率。对于该新闻详情查询接口,key和uniquekey的有效、无效取值范围是划分等价类的关键。通过测试有效等价类,可验证接口在正常输入下的功能;测试无效等价类,能检验接口对异常输入的处理能力。

(二)测试用例

项目模块用例id接口名称前置条件用例标题请求url请求方式请求数据预期结果实际返回结果返回内容测试结果测试人员
聚合数据新闻接口测试新闻详情查询模块TC001新闻详情查询接口已获取正确接口key和存在的新闻ID验证有效key和有效uniquekey时接口正常返回新闻详情http://v.juhe.cn/toutiao/contentGETkey=真实有效的接口key&uniquekey=存在的新闻ID返回状态码200;error_code为0;reason为成功描述;result、detail等各字段有合理数据;uniquekey与请求一致待测试待测试待测试HBY
聚合数据新闻接口测试新闻详情查询模块TC002新闻详情查询接口验证key为空时接口的异常处理http://v.juhe.cn/toutiao/contentGETkey=&uniquekey=存在的新闻ID返回状态码非200;error_code非0;reason包含key相关错误提示;result为null待测试待测试待测试HBY
聚合数据新闻接口测试新闻详情查询模块TC003新闻详情查询接口验证key格式错误时接口的异常处理(假设正确格式为字母数字组合)http://v.juhe.cn/toutiao/contentGETkey=!@#$&uniquekey=存在的新闻ID返回状态码非200;error_code非0;reason包含key相关错误提示;result为null待测试待测试待测试HBY
聚合数据新闻接口测试新闻详情查询模块TC004新闻详情查询接口验证uniquekey为空时接口的异常处理http://v.juhe.cn/toutiao/contentGETkey=真实有效的接口key&uniquekey=返回状态码非200;error_code非0;reason包含uniquekey相关错误提示;result为null待测试待测试待测试HBY
聚合数据新闻接口测试新闻详情查询模块TC005新闻详情查询接口验证uniquekey格式错误时接口的异常处理(假设正确格式为16位字母数字组合)http://v.juhe.cn/toutiao/contentGETkey=真实有效的接口key&uniquekey=abcdefghijklmnop1234返回状态码非200;error_code非0;reason包含uniquekey相关错误提示;result为null待测试待测试待测试HBY
聚合数据新闻接口测试新闻详情查询模块TC006新闻详情查询接口验证不存在的uniquekey时接口的异常处理http://v.juhe.cn/toutiao/contentGETkey=真实有效的接口key&uniquekey=不存在的新闻ID返回状态码非200;error_code非0;reason包含新闻ID不存在相关提示;result为null或含错误信息待测试待测试待测试HBY

二、边界值分析法

(一)用例分析

边界值分析法聚焦于输入数据的边界情况,因为在边界附近软件出现问题的概率较高。对于新闻详情查询接口,需关注key和uniquekey的长度边界、数值边界(若有)等。通过在边界值及其附近取值进行测试,能有效发现潜在的边界问题,确保接口在各种边界情况下的稳定性。

(二)测试用例

项目模块用例id接口名称前置条件用例标题请求url请求方式请求数据预期结果实际返回结果返回内容测试结果测试人员
聚合数据新闻接口测试新闻详情查询模块TC007新闻详情查询接口验证key为最小长度时接口的情况(假设最小长度为8位)http://v.juhe.cn/toutiao/contentGETkey=abcdefgh&uniquekey=存在的新闻ID返回状态码200(若边界值处理正确);error_code为0;reason为成功描述;result、detail等各字段有合理数据;uniquekey与请求一致待测试待测试待测试HBY
聚合数据新闻接口测试新闻详情查询模块TC008新闻详情查询接口验证key为最大长度时接口的情况(假设最大长度为32位)http://v.juhe.cn/toutiao/contentGETkey=abcdefghijklmnopqrstuvwxyz123456&uniquekey=存在的新闻ID返回状态码200(若边界值处理正确);error_code为0;reason为成功描述;result、detail等各字段有合理数据;uniquekey与请求一致待测试待测试待测试HBY
聚合数据新闻接口测试新闻详情查询模块TC009新闻详情查询接口验证key小于最小长度时接口的情况(假设最小长度为8位)http://v.juhe.cn/toutiao/contentGETkey=abcdefg&uniquekey=存在的新闻ID返回状态码非200(若边界值处理错误);error_code非0;reason包含key相关错误提示;result为null待测试待测试待测试HBY
聚合数据新闻接口测试新闻详情查询模块TC010新闻详情查询接口验证key大于最大长度时接口的情况(假设最大长度为32位)http://v.juhe.cn/toutiao/contentGETkey=abcdefghijklmnopqrstuvwxyz1234567&uniquekey=存在的新闻ID返回状态码非200(若边界值处理错误);error_code非0;reason包含key相关错误提示;result为null待测试待测试待测试HBY
聚合数据新闻接口测试新闻详情查询模块TC011新闻详情查询接口验证uniquekey为最小长度时接口的情况(假设最小长度为16位)http://v.juhe.cn/toutiao/contentGETkey=真实有效的接口key&uniquekey=abcdefghijklmnop返回状态码200(若边界值处理正确);error_code为0;reason为成功描述;result、detail等各字段有合理数据;uniquekey与请求一致待测试待测试待测试HBY
聚合数据新闻接口测试新闻详情查询模块TC012新闻详情查询接口验证uniquekey为最大长度时接口的情况(假设最大长度为16位)http://v.juhe.cn/toutiao/contentGETkey=真实有效的接口key&uniquekey=abcdefghijklmnop返回状态码200(若边界值处理正确);error_code为0;reason为成功描述;result、detail等各字段有合理数据;uniquekey与请求一致待测试待测试待测试HBY
聚合数据新闻接口测试新闻详情查询模块TC013新闻详情查询接口验证uniquekey小于最小长度时接口的情况(假设最小长度为16位)http://v.juhe.cn/toutiao/contentGETkey=真实有效的接口key&uniquekey=abcdefghijklmno返回状态码非200(若边界值处理错误);error_code非0;reason包含uniquekey相关错误提示;result为null待测试待测试待测试HBY
聚合数据新闻接口测试新闻详情查询模块TC014新闻详情查询接口验证uniquekey大于最大长度时接口的情况(假设最大长度为16位)http://v.juhe.cn/toutiao/contentGETkey=真实有效的接口key&uniquekey=abcdefghijklmnopq返回状态码非200(若边界值处理错误);error_code非0;reason包含uniquekey相关错误提示;result为null待测试待测试待测试HBY

三、因果图与判定表法

(一)用例分析

因果图用于梳理输入条件之间以及输入与输出之间的逻辑关系,判定表则基于因果图生成,将复杂逻辑以表格形式呈现,从而设计出全面的测试用例。对于新闻详情查询接口,主要关注key和uniquekey的正确性对接口返回结果的影响,通过因果图和判定表分析不同条件组合下的预期结果,确保接口在各种输入组合下的行为符合预期。

(二)因果图分析

  1. 原因
    • C1:key正确
    • C2:uniquekey正确
  2. 结果
    • E1:返回新闻详情(状态码200,各字段有数据)
    • E2:返回错误提示(状态码非200,error_code非0,reason有错误描述)

(三)判定表

条件组合C1:key正确C2:uniquekey正确预期结果
组合1E1
组合2E2
组合3E2
组合4E2

(四)测试用例

项目模块用例id接口名称前置条件用例标题请求url请求方式请求数据预期结果实际返回结果返回内容测试结果测试人员
聚合数据新闻接口测试新闻详情查询模块TC015新闻详情查询接口验证key和uniquekey都正确时接口的情况http://v.juhe.cn/toutiao/contentGETkey=真实有效的接口key&uniquekey=存在的新闻ID返回状态码200;error_code为0;reason为成功描述;result、detail等各字段有合理数据;uniquekey与请求一致待测试待测试待测试HBY
聚合数据新闻接口测试新闻详情查询模块TC016新闻详情查询接口验证key正确但uniquekey错误时接口的情况http://v.juhe.cn/toutiao/contentGETkey=真实有效的接口key&uniquekey=不存在的新闻ID返回状态码非200;error_code非0;reason包含uniquekey相关错误提示;result为null或含错误信息待测试待测试待测试HBY
聚合数据新闻接口测试新闻详情查询模块TC017新闻详情查询接口验证key错误但uniquekey正确时接口的情况http://v.juhe.cn/toutiao/contentGETkey=错误的接口key&uniquekey=存在的新闻ID返回状态码非200;error_code非0;reason包含key相关错误提示;result为null待测试待测试待测试HBY
聚合数据新闻接口测试新闻详情查询模块TC018新闻详情查询接口验证key和uniquekey都错误时接口的情况http://v.juhe.cn/toutiao/contentGETkey=错误的接口key&uniquekey=不存在的新闻ID返回状态码非200;error_code非0;reason包含key和uniquekey相关错误提示;result为null或含错误信息待测试待测试待测试HBY

四、场景图和状态迁移图法

(一)用例分析

场景图从用户实际使用的角度出发,描述不同的使用场景;状态迁移图关注系统在不同状态之间的转换。对于新闻详情查询接口,正常查询和异常查询是主要场景,通过分析这些场景下接口的状态变化,设计相应测试用例,确保接口在各种实际场景下的功能正确性。

(二)场景分析

  1. 正常查询场景:用户输入正确的key和uniquekey,成功获取新闻详情。
  2. 异常查询场景:用户输入错误的key或uniquekey,接口返回错误提示。

(三)测试用例

项目模块用例id接口名称前置条件用例标题请求url请求方式请求数据预期结果实际返回结果返回内容测试结果测试人员
聚合数据新闻接口测试新闻详情查询模块TC019新闻详情查询接口验证正常查询场景下接口的功能http://v.juhe.cn/toutiao/contentGETkey=真实有效的接口key&uniquekey=存在的新闻ID返回状态码200;error_code为0;reason为成功描述;result、detail等各字段有合理数据;uniquekey与请求一致待测试待测试待测试HBY
聚合数据新闻接口测试新闻详情查询模块TC020新闻详情查询接口验证异常查询场景(key错误)下接口的功能http://v.juhe.cn/toutiao/contentGETkey=错误的接口key&uniquekey=存在的新闻ID返回状态码非200;error_code非0;reason包含key相关错误提示;result为null待测试待测试待测试HBY
聚合数据新闻接口测试新闻详情查询模块TC021新闻详情查询接口验证异常查询场景(uniquekey错误)下接口的功能http://v.juhe.cn/toutiao/contentGETkey=真实有效的接口key&uniquekey=不存在的新闻ID返回状态码非200;error_code非0;reason包含uniquekey相关错误提示;result为null或含错误信息待测试待测试待测试HBY
聚合数据新闻接口测试新闻详情查询模块TC022新闻详情查询接口验证并发查询场景下接口的性能(假设接口支持并发)http://v.juhe.cn/toutiao/contentGET多个线程同时发送请求,key=真实有效的接口key&uniquekey=存在的新闻ID(不同线程uniquekey不同)返回状态码均为200(若并发处理正确);error_code为0;reason为成功描述;每个请求对应正确的新闻详情数据;无数据混乱或错误待测试待测试待测试HBY
聚合数据新闻接口测试新闻详情查询模块TC023新闻详情查询接口验证高并发下接口的稳定性(假设接口支持并发)http://v.juhe.cn/toutiao/contentGET模拟大量并发请求,key=真实有效的接口key&uniquekey=存在的新闻ID(不同请求uniquekey不同)接口稳定运行,返回状态码大部分为200;少量非200状态码有合理错误原因;系统无崩溃或异常待测试待测试待测试HBY

在实际测试过程中,测试人员需使用Postman工具,将每个测试用例的请求信息准确填入并发送请求,详细记录实际返回结果和返回内容,与预期结果对比后填写测试结果。这些测试用例综合运用多种设计方法,全面覆盖了新闻详情查询接口的各类情况,确保接口质量和稳定性。

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

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

相关文章

Frida使用指南(三)- Frida-Native-Hook

1.Process、Module、Memory基础 1.Process Process 对象代表当前被Hook的进程,能获取进程的信息,枚举模块,枚举范围等 2.Module Module 对象代表一个加载到进程的模块(例如,在 Windows 上的 DLL,或在 Linux/Android 上的 .so 文件), 能查询模块的信息,如模块的基址、名…

ChatGPT结合Excel辅助学术数据分析详细步骤分享!

目录 一.Excel在学术论文中的作用✔ 二.Excel的提示词✔ 三. 编写 Excel 命令 四. 编写宏 五. 执行复杂的任务 六. 将 ChatGPT 变成有用的 Excel 助手 一.Excel在学术论文中的作用✔ Excel作为一种广泛使用的电子表格软件,在学术论文中可以发挥多种重要作用&a…

数字化转型的核心是什么,企业该如何实施?

一、数字化转型的必要性 传统企业在推进业务创新和IT系统建设时,常采用项目式方法,虽经典但易引发“系统烟囱”与“数据孤岛”问题,困扰管理层。 数字化转型是企业战略层面的变革,其核心是利用数字化技术重构业务、流程与组织。…

力扣206题——反转链表

#题目 #代码 既然要反转,那么头结点如果不为空最后会成为尾结点,所以我们把头结点的后继指向null; 接着就是对头结点的下一个节点进行置换操作,大家可多思考一下代码

深入MapReduce——引入

引入 前面我们已经深入了HDFS的设计与实现,对于分布式系统也有了不错的理解。 但HDFS仅仅解决了海量数据存储和读写的问题。要想让数据产生价值,一定是需要从数据中挖掘出价值才行,这就需要我们拥有海量数据的计算处理能力。 下面我们还是…

.NET MAUI进行UDP通信(二)

上篇文章有写过一个简单的demo&#xff0c;本次对项目进行进一步的扩展&#xff0c;添加tabbar功能。 1.修改AppShell.xaml文件&#xff0c;如下所示&#xff1a; <?xml version"1.0" encoding"UTF-8" ?> <Shellx:Class"mauiDemo.AppShel…

SOME/IP服务接口

本系列文章将分享我在学习 SOME/IP 过程中积累的一些感悟&#xff0c;并结合 SOME/IP 的理论知识进行讲解。主要内容是对相关知识的梳理&#xff0c;并结合实际代码展示 SOME/IP 的使用&#xff0c;旨在自我复习并与大家交流。文中引用了一些例图&#xff0c;但由于未能找到原作…

大厂案例——腾讯蓝鲸DevOps类应用的设计与实践

蓝鲸体系架构图 蓝鲸CICD应用功能架构 降低DEVOPS门槛—开发者中心 CICD应用需要的后台服务 系列阅读 12306亿级流量架构分析&#xff08;史上最全&#xff09;实现电商平台从业务到架构的治理体系基于主数据驱动的数据治理什么时候需要分表分库&#xff1f;-CSDN博客

【Uniapp-Vue3】动态设置页面导航条的样式

1. 动态修改导航条标题 uni.setNavigationBarTitle({ title:"标题名称" }) 点击修改以后顶部导航栏的标题会从“主页”变为“动态标题” 2. 动态修改导航条颜色 uni.setNavigationBarColor({ backgroundColor:"颜色" }) 3. 动态添加导航加载动画 // 添加加…

ubuntu20.04安装使用direct_visual_lidar_calibration标定雷达和相机

官方链接GitHub - koide3/direct_visual_lidar_calibration: A toolbox for target-less LiDAR-camera calibration [ROS1/ROS2] 官方安装方式 Installation - direct_visual_lidar_calibration 安装依赖 sudo apt install libomp-dev libboost-all-dev libglm-dev libglfw…

C++从入门到实战(二)C++命名空间

C从入门到实战&#xff08;二&#xff09;C命名空间 前言一、C的第一个程序二、命名空间&#xff08;一&#xff09;为什么需要命名空间&#xff08;二&#xff09;定义命名空间&#xff08;三&#xff09;使用命名空间1.通过命名空间限定符&#xff1a;2.使用 using 声明&…

单片机基础模块学习——按键

一、按键原理图 当把跳线帽J5放在右侧&#xff0c;属于独立按键模式&#xff08;BTN模式&#xff09;&#xff0c;放在左侧为矩阵键盘模式&#xff08;KBD模式&#xff09; 整体结构是一端接地&#xff0c;一端接控制引脚 之前提到的都是使用了GPIO-准双向口的输出功能&#x…

数学大模型MAmmoTH:通过混合说明调整建立数学通才模型

向悦和陈文虎是该项目的主要作者。他们这个项目推出 MAmmoTH&#xff0c;这是一系列专为解决一般数学问题而定制的开源大型语言模型 (LLM)。 MAmmoTH 模型在 MathInstruct 上进行训练&#xff0c;MathInstruct 是我们精心策划的指令调整数据集。 MathInstruct 已编译 来自 13 个…

网络编程 | UDP组播通信

1、什么是组播 在上一篇博客中&#xff0c;对UDP的广播通信进行了由浅入深的总结梳理&#xff0c;本文继续对UDP的知识体系进行探讨&#xff0c;旨在将UDP的组播通信由浅入深的讲解清楚。 组播是介于单播与广播之间&#xff0c;在一个局域网内&#xff0c;将某些主机添加到组中…

如何确保Spring单例Bean在高并发环境下的安全性?

在Spring中&#xff0c;单例Bean就像是一个“公共的水杯”&#xff0c;整个应用程序中的所有线程都会共享这一个实例。在大部分情况下&#xff0c;这没什么问题&#xff0c;但如果多个线程同时想要修改这个“水杯”里的内容&#xff0c;就可能会出现问题了。 想象一下&#xff…

Jenkins下载 Maven、Allure 插件并且配置环境

文章目录 Jenkins在插件中心下载 maven、allure插件maven插件下载allure插件下载 配置maven、allure 往期推荐&#xff1a; 最新! 在 Linux上搭建Jenkins环境! Jenkins邮件通知的详细配置含邮件通知模板&#xff01; Jenkin配置企业微信通知 Jenkins在插件中心下载 maven、…

ORB-SLAM2源码学习:Initializer.cc⑧: Initializer::CheckRT检验三角化结果

前言 ORB-SLAM2源码学习&#xff1a;Initializer.cc⑦: Initializer::Triangulate特征点对的三角化_cv::svd::compute-CSDN博客 经过上面的三角化我们成功得到了三维点&#xff0c;但是经过三角化成功的三维点并不一定是有效的&#xff0c;需要筛选才能作为初始化地图点。 …

图形化数据报文转换映射工具

目录 概要整体架构流程技术名词解释技术细节小结 概要 在当今数字化时代&#xff0c;数据的处理和分析是企业、科研机构以及各类组织日常运营的核心环节。数据来源广泛&#xff0c;格式多样&#xff0c;常见的数据格式包括XML&#xff08;可扩展标记语言&#xff09;和JSON&a…

[ACTF2020 新生赛]Upload1

题目 以为是前端验证&#xff0c;试了一下PHP传不上去 可以创建一个1.phtml文件。对.phtml文件的解释: 是一个嵌入了PHP脚本的html页面。将以下代码写入该文件中 <script languagephp>eval($_POST[md]);</script><script languagephp>system(cat /flag);&l…

Arduino大师练成手册 -- 读取DS18B20

硬件连接 连接引脚&#xff1a; 将 DS18B20 的 VCC 引脚连接到 Arduino 的 5V 引脚。 将 DS18B20 的 GND 引脚连接到 Arduino 的 GND 引脚。 将 DS18B20 的 DATA 引脚连接到 Arduino 的数字引脚&#xff08;例如 D2&#xff09;。 在 DATA 引脚和 VCC 引脚之间连接一个 4.7…