接口测试介绍以及用例编写

news2024/11/28 2:40:02

6.1 接口

6.1.1 接口概述

定义: 接口就是API(Application Programming Interface,应用程序接口),是一个软件或服务对外提供的接口,别人只要调用这接口,而内部如何实现,不需要关心。你只要按照要求进行接口调用即可。
外部系统与系统之间以及内部各子系统之间的交互点。包括外部接口、内部接口。

举例:
假设物流中“货物”是数据,存放货物的“总仓库”是数据库,“店铺”是我们的网站、App。页面上显示的内容、数字,以及用户的操作请求和结果都是需要不停搬运的“货物”——数据,则负责调配分配打包的中转站就是API,快递小哥直接从中转站取货就好。

作用: 对于软件提供商来说,留出API,让别的应用程序来调用,软件才能发挥最大的价值,才能更有生命力。(同时别人也看不见代码,不伤害商业机密。)
对于应用开发者来说,有了开放的API,就可以直接调用多家公司做好的功能来做自己的应用,不需要所有的事情都自己操刀,节省精力。

6.1.2 接口的表现形式

客户端要先操作服务端资源,首先要找到服务端提供的接口,然后才能向服务端发送资源请求,那么何为服务端接口呢?其实就是一个地址(URL),比如:

 
http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=20&page=1

  1. 采用的协议(http:): 一般来讲网址中第一个“:”前面的就是该网址所采用的协议。这里的HTTP就是个协议 。HTTPS是HTTP的安全版本,HTTPS在HTTP的基础对传输的数据进行了加密和签名,以保证数据传输的安全性。我们平常打开两页的时候会看到网址前面都有一个HTTP或HTTPS,这就是告诉你,你在向服务器发送此请求的过程中要遵循的协议是HTTP或HTTPS (也就是规则)。
  2. 服务器地址(//www.qubaobei.com): 以双斜杠“//”开头,后面跟的就是这个服务器的地址,专业术语叫域名。
  3. 请求资源路径(/ios/cf/dish_list.php) : 表示你要请求的资源在该服务器下/ios/cf/dish_list.php的路径下。
  4. 参数(?stage_id=1&limit=20&page=1): 参数可以找到具体内容,和路径之间使用“?”隔开,参数之间使用“&”隔开。参数是以键值对的形式表现出来的。

把此URLhttp://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=20&page=1称为食品模块个接口, 也称为接口地址。

6.2 接口文档

接口文档展示

6.2.1 封皮

封面最好是本公司规定的封面,有logo,内容标题,版本号,公司名称,文档产生
日期。(错误地方在于,文档的标题要和页眉中的标题一致)

6.2.2 修订历史

表格形式较好些。包括:
版本,修订说明,修订日期,修订人,审核时间,审核人。

6.2.3 接口信息

接口调用方式,是post方式还是get方式,接口地址,别人需要线上的哪个地址就写哪个。(自己提前测试好线上的这个接口,是否有其他问题,千万别犯低级的错误,尤其是某个字母写错)

6.2.4 功能描述

一定要清晰的描述接口功能。(不要遗漏一些细节,比如接口获取的信息不包括哪些,哪些要写明白)

6.2.5 接口参数说明

每个参数都要和实际中调用的一样,包括大小写;参数的含义言简意赅的说明;格式是string 还是int 还是long等格式(例如参数为@RequestParam("appKey") StringappKey, @RequestParam("randomId") Integer randomId);说明部分,说明参数值是需要哪个公司提供,并详细说明参数怎么生成的,例如时间戳,是哪个时间段的;参数是否必填,一些参数是必须要有的,有些是可选参数,一定要注意写清晰。

6.2.6 返回值说明

1、有一个模板返回值,并说明每个返回参数的意义。
2、提供一个真实的调用接口,真实的返回值。
注:现实工作中,对接口有疑问要及时跟同事交流。

6.3 接口测试的概念

6.3.1 概念

测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。

6.3.2 接口测试本质

实质就是数据的传输和接受,传输的是接口地址中的参数,接受的是文本字符串,然后对比文本字符串是否正确。

6.4 接口测试的目的和原理

6.4.1 目的

测试接口的正确性和稳定性。

6.4.2 原理

接口测试的原理是通过测试程序模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做出处理然后再把应答报文发送给客户端,客户端接收应答报文这一个过程。

6.5 常用接口测试工具

6.5.1 典型商业工具:

  1. LoadRunner(LR):一款商业性能测试工具,用来做接口测试,很好很强大 ,但是配置比较麻烦。
  2. SoapUI:开源测试工具,通过soap/http来检查、调用、实现Web Service的功能/负载/符合性测试;该工具既可作为一个单独的接口测试工具使用,也可利用插件集成到Eclipse,maven2.X,Netbeans 和intellij中使用。 了解就可以了,基本已经不用了。

6.5.2 典型开源工具

Jmeter :一款开源的接口测试工具,操作简单,方便,既有jdbc request操作数据库数据,也有http request和soap request应对测试

6.5.3 扩展插件

postman:谷歌浏览器的扩展工具,主要用来做接口测试,谷歌商店中选中安装,界面同poster差别不大,界面简洁。

6.6 接口测试应该测什么

6.6.1 单一接口

单一接口功能的测试主要测试返回的数据结构是否和接口文档给出的一致,接口的正常功能是否完成,接口的参数检查测试,接口的异常测试。

6.6.2 组合接口

定义: 组合接口测试主要是通过组合多个单一接口,来测试一个业务场景
案例: 测试购物网站的一个下单的功能,那么因为在下单之前还有一些流程,所以要测试一个场景。
测试:搜索商品 --> 选中商品 --> 添加进购物车 --> 提交订单 -->支付
(提交订单时还涉及到地址的选取等)
注: 涉及到如果使用从cookie或者session在本例中的区别:如果使用cookie加入购物车,那么换一台电脑购物车里的商品就不存在了,但如果使用的是session,购物车里面的东西就一直存在,即:cookie是本机作用的,session不止于本机作用。

6.6.3 结构检查

(1)检查返回值的结构是否正确,如是json类型还是xml类型的数据
(2)字段名称是否正确等
XML和JSON都使用结构化方法来标记数据

6.7 接口测试内容

6.7.1 功能逻辑

通过查数据库或缓存等验证数据是否处理正确。
通过其他辅助途径进行验证

6.7.2 异常测试

接口测试中主要测试接口正常逻辑,但仅逻辑测试不能保证数据的安全及程序接口在异常情况下的逻辑处理的正确性。

6.7.3 路径测试

当被测接口的实现方法中,判断逻辑复杂分支多,且判断中又调用了其他的接口,此时必须要进行路径覆盖测试。

6.7.4 其他异常场景

研发的项目,有些项目是底层使用的系统,根据项目特点,可能会存在特殊的异常场景。
例如: 支付的异步操作,支付消息重试等

6.8 测试案例

6.8.1 get请求

6.8.2 post请求

Postman使用

6.9 接口测试用例模板

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

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

相关文章

608教室使用方法

一、教室平面图 608教室的布局如下,重要的设备已经在图中标出。总开关、一体机和机柜。   二、使用方法 2.1 房间机器上电 进门后首先走到“总开关位置”,将电匝闭合。 原来的开关如图所示,有3组开关,1号组开关用于控制插座、…

突破办公瓶颈,推荐5款电脑办公软件

1.AnyTXT AnyTXT是一款搜文件内容的第三方全文搜索工具,速度极快,基本秒出结果。而且右边可以直接预览文件,筛选,复制,翻译等功能丰富,完美替代自带的搜索。 2.Groupy 这是用于快速切换窗口的小型精致工…

微信支付_Native支付流程

介绍 商户后台系统先调用微信支付的Native下单接口,微信后台系统返回链接参数code_url,商户后台系统将code_url值生成二维码图片,用户使用微信客户端扫码后发起支付。微信支付-开发者文档 注意: code_url有效期为2小时&#xff0…

spring实例化bean整体流程

AbstractApplicationContext类的invokeBeanFactoryPostProcessors方法把所有bean变成了beanDefinition,然后在finishBeanFactoryInitialization方法中完成实例化。 实例化过程只分析单例 1.DefaultListableBeanFactory#preInstantiateSingletons方法 这个方法的功…

养元发起“爱心送考车”全国行动,慈善榜样如何炼成?

入夏不久,六个核桃的经销商们,开始忙起来了。 正值一年一度的高考季,随着越来越多的学子感受到人生重要时刻的期待、激动与紧张,这种氛围也开始牵动社会的心。高考前夕,六个核桃联合全国经销商发起“爱心送考车”公益…

【JavaEE】HTTPS加密原理

HTTPS加密原理✿✿ヽ(▽)ノ✿ 文章目录 JavaEE & HTTPS加密原理1. 为什么要加密2. HTTPS加密原理2.1 初始想法2.2 引入非对称加密2.3 中间人攻击2.4 引入证书 JavaEE & HTTPS加密原理 1. 为什么要加密 例子:(运营商劫持) 你可能经常…

亚马逊云科技基于智能搜索,为企业打造知识库

知识库需求在各行各业中普遍存在,例如制造业中历史故障知识库、游戏社区平台的内容知识库、电商的商品推荐知识库和医疗健康领域的挂号推荐知识库系统等。亚马逊云科技为保证推荐系统的时效性和准确性,需要大量的数据/算法/软件工程师的人力投入和包括硬…

Threejs 快速入门

最小环境 首先,在正式学习Threejs前,有几个概念需要说明的。Threejs在底层其实还是调用html5中的canvas api来实现绘图的。但和我们一般绘制2D图像不同,Threejs在底层使用的是canvas的webgl context来实现3D绘图。webgl context本身更多是直…

如何向gitee开源项目提交代码

文章目录 前言登录账号fork项目fork完成拉去代码check out出分支开发提交代码到自己的远程仓库创建pull requestcreate pull request 前言 如何向开 源 项 目 提交自己的代码呢?相信很多小伙伴都会看到比较不错的开源项目,然后想在此基础上实现自己的代…

读财报丨Q1保费环比增长33.4%,慧择增长源泉来自于何处?

一季度我国经济表现开局良好,保险行业增长态势明朗。从财报来看,中国人寿、中国平安、中国人保、新华保险、中国太保等大型上市险企Q1净利润纷纷超预期,随着巨头业绩转暖,保险中介行业也迎来了发展好时机。 近日,国内…

Xshell安装教程-Xshell 7激活教程-Xshell换机转移许可证详解

Xshell 7是一款功能强大的终端模拟器,支持SSh2,SSh3,SFTP,TELNET,RLOGIN和SERIAL。通过提供业界先进的性能,Xshell包含了其他SSH客户端无法发现的功能和优势。 本篇文章主要为大家介绍Xshell 7的安装、激活…

自动化回归测试工具—— AREX 上手实践

AREX 是一款开源的自动化测试工具平台,基于 Java Agent 技术与比对技术,通过流量录制回放能力实现快速有效的回归测试。同时提供了接口测试、接口比对测试等丰富的自动化测试功能,无需编程能力也可快速上手。 AREX 可以通过 Docker-Compose …

当开发同事辞职,接手到垃圾代码怎么办?

目录 一、前言 二、开发中的另一种选择 三、低代码概念 四、低代码在开发中的优势 01、开发效率提高 02、开发成本减少 03、维护性更高 五、有低代码后就不要开发了? 一、前言 事实上,垃圾项目是日积月累而成的,所谓冰冻三尺非一日之寒&#xf…

列表与字典—>一维列表

这一期内容可以结合着与第一期一起看https://guidm.blog.csdn.net/article/details/130900129?spm1001.2014.3001.5502 让我们来先做个题目: 1、输入一个整数n,要求输出[1,n]范围内的所有完数。 完数是一个正整数,该数恰好等于其所有不同…

计算机组成原理笔记概览

Chapter 1 计算机概要与技术Chapter 2 指令:计算机的语言Chapter 3 算术运算Chapter 4 处理器Chapter 5 大容量和高速度:开发存储器层次结构适配教材:《计算机组成与设计 硬件/软件接口 原书第5版》 要学计算机组成原理,你得知道它是干什么的,抓住总线:如何改进计算机的…

nacos入门-纯springboot整合nacos(百分之百可以-参考官网,比官网还全)

我是一个大数据工程师,但是被迫营业做后端,现在接手了一个项目,干!有个东西叫Nacos。没接触过,那不行,会被优化的。我一大数据工程师搞gr的springcloud,网上很多说整合整合springboot的&#xf…

Python+Django生活用品商城网站前后端

程序示例精选 PythonDjango生活用品商城网站前后端 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对<<PythonDjango生活用品商城网站前后端 >>编写代码&#xff0c;代码整洁&am…

Java多线程wait notify和park unpark的使用

目录 一、wait & notify的使用1、API介绍2、demo2、多线程模式3、wait和notify的原理 二、Park & Unpark的使用1、基本使用2、特点3、park和unpark的原理 一、wait & notify的使用 1、API介绍 obj.wait() 让进入 object 监视器的线程到 waitSet 等待 obj.wait(n)…

508教室使用方法

一、教室平面图 508教室的布局如下&#xff0c;重要的设备已经在图中标出。总开关、一体机和机柜。   二、使用方法 2.1 房间机器上电 进门后首先走到“总开关位置”&#xff0c;将电匝闭合。 原来的开关如图所示&#xff0c;有3组开关&#xff0c;1号组开关用于控制插座、…

商业智力,Social焕新|数说故事重磅发布“SocialGPT”,国内首个专注Social领域的商业大模型

AGI时代的到来&#xff0c;市场风云变幻&#xff0c;世界正在经历着一场技术革命的颠覆性洗礼。 2023年6月6日6时&#xff0c;数说故事正式对外发布数说故事“SocialGPT”&#xff0c;国内首个专注Social领域的商业大模型。数说故事“SocialGPT”大家昵称它为“社牛”大模型&a…