重庆企业建站模板/自建站
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
- 采用的协议(http:): 一般来讲网址中第一个“:”前面的就是该网址所采用的协议。这里的HTTP就是个协议 。HTTPS是HTTP的安全版本,HTTPS在HTTP的基础对传输的数据进行了加密和签名,以保证数据传输的安全性。我们平常打开两页的时候会看到网址前面都有一个HTTP或HTTPS,这就是告诉你,你在向服务器发送此请求的过程中要遵循的协议是HTTP或HTTPS (也就是规则)。
- 服务器地址(//www.qubaobei.com): 以双斜杠“//”开头,后面跟的就是这个服务器的地址,专业术语叫域名。
- 请求资源路径(/ios/cf/dish_list.php) : 表示你要请求的资源在该服务器下/ios/cf/dish_list.php的路径下。
- 参数(?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 典型商业工具:
- LoadRunner(LR):一款商业性能测试工具,用来做接口测试,很好很强大 ,但是配置比较麻烦。
- 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 接口测试用例模板
相关文章:

接口测试介绍以及用例编写
6.1 接口 6.1.1 接口概述 定义: 接口就是API(Application Programming Interface,应用程序接口),是一个软件或服务对外提供的接口,别人只要调用这接口,而内部如何实现,不需要关心。…...

MATLAB迭代的三种方式以及相关案例举例
系列文章目录 MATLAB矩阵的分解函数与案例举例 MATLAB当中线性方程组、不定方程组、奇异方程组、超定方程组的介绍 MATLAB语句实现方阵性质的验证 MATLAB绘图函数的相关介绍——海底测量、二维与三维图形绘制 MATLAB求函数极限的简单介绍 文章目录 系列文章目录 前言 …...

测试替身Test Doubles的5类型(Mockito)
测试替身Test Doubles的5类型(Mockito) 我们有一个名为 BankAccount 的类。 数据库用于存储和检索银行帐户信息。 我们想测试 BankAccount 中的逻辑,而不必担心它使用的底层数据库.由此类实现——它将 SQL 查询发送到数据库并返回其中包含的值。 测试替身Test Dou…...

【C++】链表
链表是一种常见的数据结构,用于存储和组织数据。它的每个元素被称为结点(Node),结点是链表的基本单位,链表由一系列结点(Node)组成,每个结点包含两个部分:数据部分&#…...

day42_jsp
今日内容 零、 复习昨日 一、JSP 二、EL 三、JSTL 四、MVC 零、 复习昨日 一、JSP 1.0 引言 现有问题 在之前学习Servlet时,服务端通过Servlet响应客户端页面,有什么不足之处? 开发方式麻烦:继承父类、覆盖方法、配置Web.xml或注…...

JAVA面试八股整理——基础部分
JAVA 基础 JVM JDK JRE JVM java虚拟机,针对不同的系统,使用相同的字节码会给出相同结果。一次编译,随处可运行 JDK Java SDK 提供给开发者使用,创建和编译Java程序。包含了JRE,同时包含了其它工具(jav…...

【JavaSE】Java基础语法(二十八):HashSet集合
文章目录 1. HashSet集合概述和特点2. HashSet集合的基本应用3. 哈希值4. HashSet集合存储学生对象并遍历【应用】 1. HashSet集合概述和特点 底层数据结构是哈希表存取无序不可以存储重复元素没有索引,不能使用普通for循环遍历 2. HashSet集合的基本应用 存储字符串并遍历 …...

压缩感知重构之匹配追踪算法
算法的重构是压缩感知中重要的一步,是压缩感知的关键之处。因为重构算法关系着信号能否精确重建,国内外的研究学者致力于压缩感知的信号重建,并且取得了很大的进展,提出了很多的重构算法,每种算法都各有自己的优缺点&a…...

【SpinalHDL快速入门】4.6、复合类型之Vec
文章目录 1.1、描述1.2、声明1.2.1、实例 1.3、运算符1.3.1、比较(Comparison)1.3.2、类型转换(Type cast)1.3.3、杂项(Misc)1.3.4、Lib辅助函数(Lib helper functions) 1.1、描述 …...

探访世优科技数字人虚拟直播产品体系 | 世优开放日再次成功举行
2023年5月30日,世优科技全栈技术产品体验活动(第二期)顺利落下帷幕。此次活动共邀请到30余位各行各业的嘉宾到场,在两个多小时的开放日活动中,世优科技全面展示数字人及虚拟直播领域的技术产品体系。来访嘉宾们全程体验…...

有奖励!2023陕西省首台(套)重大技术装备产品项目申报条件、认定材料
本文整理了2023陕西省首台(套)重大技术装备产品项目申报条件,认定材料等相关内容,感兴趣的朋友快跟小编一起来看看吧! 一、重点支持方向及领域 重点支持方向及领域:高档工业母机、电力装备、大型矿山和冶金…...

2023/6/6总结
CSS 如果想要实现背景颜色渐变效果: left是从左边开始,如果想要对角线比如,左上角就是left top,渐变效果始终是沿着一条线来实现的。 下面是跟着视频教学用flex布局写的一个移动端网页: html代码: <!…...

api习题
// 1 整数或者小数 // String a"378.000"; // String rex"[1-9]\\d*|[0-9]|*\\.[0-9]*"; // System.out.println(a.matches(rex)); // 2 只能输入数字: // String rex"\\b*"; // 3 只能输入n位的数字: // String r…...

(STL之string)string类的用法详解
string类成员函数PART1 成员函数(构造函数拷贝构造函数):string 函数原型: string(); string (const string& str); string (const string& str, size_t pos, size_t len npos); string (const char* s); string (const char* s, size_t n)…...

基于RT-Thread快速上手SD NAND 虚拟文件系统
SD NAND 也称之为贴片式TF卡,贴片式SD卡,采用标准的SDIO接口,兼容SPI接口。下图所示为CS 新一代CS SD NAND NP1GCR01-AOW 大小为128M,对比128M的SD卡,可以看到贴片SD卡尺寸更小,不要SD卡座,占…...

性能测试实战
目录 一、创建线程组与http(s)请求1、JMeter关键词2、创建线程组3、线程组参数举例说明案例1:模拟5个用户,同时访问百度案例2:模拟5个用户,同时访问百度,并且循环2次案例3:模拟5个线程,持续执行10秒的时间案例4:模拟10秒启动10个线程,循环执行20秒4、创建http请求a、操…...

【PWN · 总结】system返回shell(‘/bin/sh‘、‘sh‘、$(0))
pwn题中要通过system/excute等返回shell,进而cat flag。今天遇到一题,参数$(0)也可返回,有必要记录一下。 目录 前言 一、/bin/sh 1.strings 2.IDA 3.pwntools 4.ROPgadget 5.libc中寻找 二、sh 三、$(0) exp IDA查看机器码 …...

《庄子》笔记
庄子 前述:庄子,战国时宋国人。 1.鲲鹏:胸襟宽广,高远,无界限。 2.寒蝉和灵龟:小年的悲哀。 3.小麻雀的得意:境界不同,又有什么可比性呢。 4.列子随风而行:得大道者&…...

五、VBO、EBO 和 VAO
五、VBO、EBO 和 VAO VBO、EBO 和 VAO: VBO(Vertex Buffer Object)是指顶点缓冲区对象,而 EBO(Element Buffer Object)是指图元索引缓冲区对象,VAO 是顶点数据的缓冲区对象,VAO 和…...

数据库期末复习(7.2)查询优化
查询优化的概述 商用数据库花了很多的资金投入到查询优化。 查询优化的分类 逻辑查询优化 物理查询优化 比逻辑查询计划多了怎么去执行的方式,为的是数据操作速度更快 逻辑查询优化的三种关键技术 在科学研究的道路上我们往往不是一帆风顺的,人的认识也是局限的,但是我…...

深入探索:在std::thread中创建并管理QEventLoop的全面指南
深入探索:在std::thread中创建并管理QEventLoop的全面指南 1. 前言:理解QEventLoop和std::thread的基本概念1.1 QEventLoop的基本概念和工作原理1.2 std::thread的基本概念和工作原理1.3 QTimer的基本概念和工作原理 2. 在std::thread中创建QEventLoop&a…...

【Netty】Netty中的超时处理与心跳机制(十九)
文章目录 前言一、超时监测二、IdleStateHandler类三、ReadTimeoutHandler类四、WriteTimeoutHandler类五、实现心跳机制5.1. 定义心跳处理器5.2. 定义 ChannelInitializer5.3. 编写服务器5.4. 测试 结语 前言 回顾Netty系列文章: Netty 概述(一&#…...

尚硅谷大数据hadoop教程_mapReduce
p67 课程介绍 p68概述 p69 mapreduce核心思想 p70 wordcount源码 序列化类型 mapReduce三类进程 p71 编程规范 用户编写的程序分成三个部分:Mapper、Reducer和Driver。 P72 wordcount需求案例分析 p 73 -78 案例环境准备 (1)创建maven…...

一键启停脚本
在/root 目录下创建bin文件夹再创建你的文件 文件里面写如下命令 #!/bin/bash if [ $# -lt 1 ] then echo "No Args Input..." exit ; fi case $1 in "start") echo " 启动集群 " echo " --------------- 启动 -------…...

20230604_Hadoop命令操作练习
20230604_Hadoop命令操作示例 再HDFS中创建文件夹:/itcast/it heima,如存在请删除(跳过回收站)。 hdfs dfs -mkdir -p /itcast/itheima上传/etc/hosts文件到hdfs的/itcast/itheima内。 hadoop fs -put /etc/hosts /itcast/itheima…...

hashCode 与 equals(重要)?
hashCode () 作用是获取哈希码,也称为散列码,实际上是返回一个int 整数,哈希码作用是确定该对象在哈希表中的索引位置;hashCode() 定义在JDK的Object.java中,意味着Java中的任何类都包含有hashCode() 函数。 散列表存…...

华为OD机试(2023.5新题) 需要打开多少监控器(java,py,c++,js)
华为OD机试真题目录:真题目录 本文章提供java、python、c++、jsNode四种代码 题目描述 某长方形停车场,每个车位上方都有对应监控器,当且仅当在当前车位或者前后左右四个方向任意一个车位范围停车时,监控器才需要打开 给出某一时刻停车场的停车分布,请统计最少需要打开…...

209.长度最小的子数组
2023.6.1 这道题的关键是滑动窗口法,滑动窗口法应设定好窗口左侧的右移条件与窗口右侧的移动条件 本例中先初始化好用到的各种值 循环的终止条件是滑动窗口右侧超出列表的范围 走来 cur_sum nums[right] 是将cur_sum的值更新为当前滑动窗口[left,right]的值之和 接…...

react antd Modal里Form设置值不起作用
问题描述: react antd Modal里Form设置值不起作用,即使用form的api。比如:编辑时带出原有的值。 造成的原因:一般设置值都是在声明周期里设置,比如:componentDidMounted里设置,hook则在useEff…...

idea连接Linux服务器
一、 介绍 配置idea的ssh会话和sftp可以实现对linux远程服务器的访问和文件上传下载,是替代Xshell的理想方式。这样我们就能在idea里面编写文件并轻松的将文件上传到linux服务器中。而且还能远程编辑linux服务器上的文件。掌握并熟练使用,能够大大提高我…...