软件测试的调用接口怎么调用,逻辑是什么?

一、什么是接口测试?
接口测试是测试系统组件之间接口的测试。接口主要用于检测外部系统和内部子系统之间的交互点。测试的重点是检查数据交换、传输、控制和管理过程,以及系统之间的相互逻辑依赖。

二、为什么要做接口测试?
在淘宝系统的历史上,功能测试和性能测试最早出现,随后是自动化测试。但是今天,淘宝的架构已经不再是传统的MVC结构,系统正在朝着分布式、以业务为中心、高可用的方向发展。今天的系统架构很复杂,系统之间有很多接口。传统的功能测试、性能测试和自动化测试已经不能满足系统开发的需要,迫切需要一种更加有效、实用和可持续的测试方法。

界面测试就是在这种需求下产生的。首先,随着系统复杂度的不断增加,传统测试方法的测试成本急剧增加,测试效率急剧下降(根据数据模型,一个底层的bug可以造成8个左右的顶层bug,底层的bug很容易导致整个网络的宕机。相反,当系统复杂性增加时,接口测试可以提供低成本、高效率的解决方案。

其次,界面测试不同于传统的单元测试,是从用户的角度对系统界面进行全面、高效、持续的测试。

最后,接口测试是自动化和持续集成的,这就是为什么接口测试可以是低成本、高收益的根源。

总之,接口测试是高复杂度系统质量和低成本经济效益内在要求驱动下的最佳解决方案。接口测试是一个完整的系统,包括功能测试和性能测试。

三、接口测试的流程

根据以往的实践经验,接口测试可以分为以下几个步骤:需求分析与设计评审、测试框架与技术选择、测试计划制定、测试环境构建、测试用例设计与评审、测试实施与执行、持续集成。接下来,将详细描述每个步骤。

1、需求分析和设计评审

几乎所有的软件活动都是从需求分析开始的,接口测试也是如此。在这个阶段,我们有两个任务:第一,充分理解需求,确保所有人对需求有相同的理解;第二,尽量找出需求本身存在的问题。

需求分析结束后,进入系统设计阶段。系统设计不应该仅仅是系统设计者或开发者的事情。作为接口测试人员,应该能够从测试的角度为系统设计提供一些解决方案或建议,优化设计,提高系统的可测试性。

2、测试框架和技术选型

在系统设计审查之后,应该已经选择了实现系统所需的所有技术。在这个阶段,接口测试人员需要根据系统设计选择自己的测试框架和要使用的技术。当然,这不是必须的。如果你正在测试的项目的技术框架和你之前测试过的项目的技术框架相似,可以沿用之前的测试框架和技术,或者在此基础上做一些调整。如果被测试的项目采用了不同的技术架构,那么就需要仔细考虑如何选择合适的测试框架和技术。

界面框架和技术的选择有很多因素。原则是选择最能满足你测试需求的框架和技术,尽量让你的项目成员熟悉。不需要单纯为了提高测试的技术含量而选择功能多但复杂难懂的工具。

3、试验计划的制定

接口测试的测试规划基本类似于功能测试。在这个阶段,需要明确哪些测试资源可用,如何分配测试资源,整个测试过程需要做什么,每个时间点应该做什么,最重要也是最容易被忽视的一点就是风险评估。虽然我们不可能识别所有风险,但我们可以识别大多数潜在风险,并根据经验值进行管理。良好的风险管理是软件团队成熟的体现。

4、测试环境的构建

测试框架和技术选择完成后,就可以开始构建测试环境了。在界面测试中构建环境的典型过程可能如下:首先,您将为界面测试构建一个基础项目,并为该项目设计一个良好的结构。在这个项目中,你将引入你选的测试框架和依赖项,为这些框架和依赖项准备必要的配置文件,并以某种形式(通常是项目依赖)将这个项目与要测试的系统的项目相链接。在这种环境下,能做到运行通过一个最基本的测试。

5、测试用例的设计和评审

接口的测试用例设计是以接口为单元设计测试。在设计过程中,我们重点关注接口可能的输入参数以及预期的输出结果是什么。当然,必要的时候也要考虑界面的表现和预期的压力。在这个过程中,区分不同测试的优先级是非常重要的,这会指导你哪些测试应该先完成,哪些测试在测试资源不足时可以延迟。也就是在测试资源充足的情况下,也可以按照优先级完成测试,这样一旦出现一定的风险,基本上可以保证高优先级的工作已经完成,不会出现恐慌。

测试用例设计完成后,要进行评审,评审的结果要以某种形式记录下来,作为测试实施的最终方案。评估最好由以下人员参加:需求方、设计方、开发方、功能测试方、接口测试方及其直接主管。不同的角色会从不同的角度考虑测试设计,所以测试设计在这个过程中会有很大的提升。

6、测试实施和执行

一旦设计完成并通过评审,测试实现就相对简单了。没有什么意味着一个测试用例是通过编程语言实现和运行的。

在测试实现的过程中,可能会发现测试设计不完善,或者因为需求的变化,需要增加新的测试用例。不管什么原因,在实施测试的过程中,一旦发现有完善的地方,就要立即记录下来,这样才能更有效地保证测试的完整性。

在这个过程中,我们还应该制作测试报告(包括每日报告和最终报告),让整个团队能够及时掌握项目的质量,让不同的角色能够正确安排工作。

7、持续集成

持续集成是接口测试实现全面自动化回归测试的重要技术手段。简单来说,持续集成就是持续运行编写好的测试代码,并使用版本控制技术,使测试代码始终测试最新版本的系统接口。

当接口测试进行到这个阶段,我们的目标是让测试代码持续运行,保证当测试代码失败时,能够及时定位并解决问题。当开发人员维护系统时,我们也会根据持续集成的结果来维护我们的测试代码。

最后,需要注意的是,虽然上面提到的步骤是我们的接口测试人员遵循的规范,但与其他测试(如功能测试)不同,接口测试需要与开发同时进行。项目开始的时候我们就应该参与,编码完成的时候测试基本完成。中间的每一步也与开发息息相关。因此,我们的接口测试工程师也被称为测试开发工程师,我们既需要测试知识,也需要编码能力。

8、质量评价标准

接口覆盖率是否符合要求。

1)所有外部调用的接口都必须有相应的测试用例,覆盖率要达到95%以上。

2)所有内部使用的、涉及产品主要功能的接口测试用例覆盖率应在90%以上。

3)对于所有内部使用的、涉及二级功能的接口,测试代码的覆盖率会随着接口复杂度和重要性的增加而增加。

测试测试用例中接口业务规则的验证是否完成。

1)测试用例应该覆盖接口的主要业务规则。接口的主要业务规则是接口的主要功能,影响接口的业务实现和调用状态。

如果发布一个宝贝,那么发布一个全新的、二手的、拍卖的、闲置的宝贝等等就是主要功能。

2)测试用例应该覆盖接口的通用业务规则。或者一个发布宝贝的例子,80%的卖家会添加图片、想要想要的链接等。根据描述。这生意

规则不会影响接口的正常调用。但是会影响用户的使用习惯。因此,测试用例必须在描述字段中包括图片链接和想要的链接的验证。

3)参数验证应涵盖边界值和参数特定业务规则的验证。许多接口对其参数有一定的限制,例如,字段长度限制为。

对于该字段长度为4,5的测试用例。

是否覆盖测试用例中接口之间的相关性测试。例如,在添加的接口的关联测试中,其他关联应该以添加的接口的返回值作为参数来调用。

例如,修改和删除接口,并验证它们是否可以被调用和成功调用。

遗留bug对系统的影响程度:

1)频繁调用的接口不得包含与主要业务规则和常见业务规则相关的bug,次要业务规则的bug遗留率应在0.2%以下。

2)不经常调用的接口不能包含主要业务规则的bug,常见业务规则的bug漏报率为2%以下,次要的业务规则的bug漏报率在5%以下。

测试用例与测试代码是否一致。

测试案例是否可以持续回归。

被测接口是否符合调用者的标准,调用者能否使用该接口开发产品设计规范设计的应用。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

文档获取方式:

加入我的软件测试交流群:632880530免费获取~(同行大佬一起学术交流,每晚都有大佬直播分享技术知识点)

这份文档,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

以上均可以分享,只需要你搜索vx公众号:程序员雨果,即可免费领取

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

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

相关文章

Go编程:使用 Colly 库下载Reddit网站的图像

概述 Reddit是一个社交新闻网站,用户可以发布各种主题的内容,包括图片。本文将介绍如何使用Go语言和Colly库编写一个简单的爬虫程序,从Reddit网站上下载指定主题的图片,并保存到本地文件夹中。为了避免被目标网站反爬&#xff0c…

C++入门篇(3)---引用

1.引用 你有没有被人起过外号?比如身边的朋友,喊他的时候不会叫他的全名,像我很好的朋友,我一般都喜欢叫他"阿威",而不会去称呼全名.我叫他"阿威",他还是他没有什么问题. 这里新登场的引用不是新定义一个变量,而是给已存在变量取了一个别名&am…

数据结构---二叉树

树是一种非线性的数据结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。 树形结构中,子树之间不能有交集,…

1.Vue-在独立页面实现Vue的增删改查

题记 在独立页面实现Vue的增删改查&#xff0c;以下是具体的代码&#xff0c;和操作流程。 编写index.html页面 index.html文件如下&#xff1a; <!DOCTYPE html> <html> <head><title>Vue CRUD Example</title><!--在线导入vue文件-->&l…

如何在自动化测试中使用MitmProxy获取数据返回?

背景介绍 当我们在接口或UI自动化项目中&#xff0c;常常会出现这种现象——明明是正常请求&#xff0c;却无法获取到想要的数据返回。 比如&#xff1a; 场景A&#xff1a;页面是动态数据&#xff0c;第一次进入页面获取到的数据&#xff0c;和下次进入页面获取到的数据完全…

ASEMI整流桥GBJ2510参数:拆析其关键性能特点

编辑-Z 在众多的电力电子元件中&#xff0c;GBJ2510整流桥以其高效能和可靠性赢得了工业领域的广泛认可。这款设备是在电力系统、直流电源等一系列设备中不可或缺的组件。本文将详细反析GBJ2510整流桥参数的关键性能特点&#xff0c;以帮助用户更加全面地理解和使用这种电子设…

Blender:制作一个变形动画

就是一个球逐渐地变为一个立方体 首先创建一个球和一个立方体 然后把两个物体放在一起&#xff0c;放缩球&#xff0c;让球包含立方体 之后选中球&#xff0c;为其添加修改器&#xff0c;缩裹 在这里选择缩裹对象为立方体 然后在应用下拉箭头中选择“应用为形态键” 下一步选中…

尚硅谷Flink(二)DStream API

目录 &#x1f320;不会点 &#x1fa90;DataStream API ​编辑 &#x1f320; 执行环境 创建执行环境 执行模式 触发程序执行 &#x1f320;源算子 准备基础类型 从集合中读取数据 从文件读取数据 从 Socket 读取数据 从 Kafka 读取数据 &#xff08;没学过&#xff09; …

【MATLAB-Retinex图像增强算法的去雾技术】

续&#xff1a;【MATLAB-基于直方图优化的图像去雾技术】 【MATLAB-Retinex图像增强算法的去雾技术】 1 原图2 MATLAB实现代码3 结果图示 参考书籍&#xff1a;计算机视觉与深度学习实战:以MATLAB、Python为工具&#xff0c; 主编&#xff1a;刘衍琦, 詹福宇&#xff0c; 王德建…

【ElasticSearch】使用 Java 客户端 RestClient 实现对文档的查询操作,以及对搜索结果的排序、分页、高亮处理

文章目录 前言&#xff1a;RestClient 查询文档的 RestAPI一、全文检索查询1.1 match_all 查询1.2 match 查询1.3 multi_match 查询 二、精确查询2.1 term 查询2.2 range 查询 三、复合查询&#xff1a;Boolean 查询与 function score 查询的综合案例四、对查询结果的处理4.1 将…

ArcGIS笔记5_生成栅格文件时保存报错怎么办

本文目录 前言Step 1 直接保存到指定文件夹会报错Step 2 先保存到默认位置再数据导出到指定文件夹 前言 有时生成栅格文件时&#xff0c;保存在自定义指定的文件夹内会提示出错&#xff0c;而保存到默认位置则没有问题。因此可以通过先保存到默认位置&#xff0c;再数据导出到…

【Eclipse】设置自动提示

前言&#xff1a; eclipse默认有个快捷键&#xff1a;alt /就可以弹出自动提示&#xff0c;但是这样也太麻烦啦&#xff01;每次都需要手动按这个快捷键&#xff0c;下面给大家介绍的是&#xff1a;如何设置敲的过程中就会出现自动提示的教程&#xff01; 先按路线找到需要的页…

来入门一下C语言打印Hello World

&#x1f4da;目录 安装程序官网下载软件启动程序运行代码解决乱码 安装环境&#xff08;必看&#xff09;IntelliJ Clion 环境执行运行的exe出问题了安装MinGW官网&#xff08;太慢了跳过&#xff09;Clion软件的MinGW 在这里插入图片描述 ![在这里插入图片描述](https://img-…

OpenAI开放gpt-3.5turbo微调fine-tuning测试教程

文章目录 openai微调 fine-tuning介绍openai微调地址jsonl格式数据集准备点击上传文件 openai微调 fine-tuning介绍 openai微调地址 网址&#xff1a;https://platform.openai.com/finetune jsonl格式数据集准备 使用Chinese-medical-dialogue-data数据集git clone进行下载 …

18.(开发工具篇Gitlab)Git如何回退到指定版本

首先: 使用git log命令查看提交历史,找到想要回退的版本的commit id. 使用git reset命令 第一步:git reset --hard 命令是强制回到某一个版本。执行后本地工程回退到该版本。 第二步:利用git push -f命令强制推到远程 如下所示: 优点:干净利落,回滚后完全回到最初状态…

C# 图解教程 第5版 —— 第4章 类型、存储和变量

文章目录 4.1 C# 程序是一组类型声明4.2 类型是一种模板&#xff08;*&#xff09;4.3 实例化类型4.4 数据成员和函数成员4.5 预定义类型4.6 用户定义类型4.7 堆和栈&#xff08;*&#xff09;4.8 值类型和引用类型4.9 变量4.9.1 变量声明4.9.2 多变量声明&#xff08;*&#x…

【LeetCode】每日一题两数之和寻找正序数组的中位数找出字符串中第一个匹配项的下标在排序数组中查找元素的第一个和最后一个位置

主页点击直达&#xff1a;个人主页 我的小仓库&#xff1a;代码仓库 C语言偷着笑&#xff1a;C语言专栏 数据结构挨打小记&#xff1a;初阶数据结构专栏 Linux被操作记&#xff1a;Linux专栏 LeetCode刷题掉发记&#xff1a;LeetCode刷题 算法&#xff1a;算法专栏 C头…

iCloud涨价不用慌!学会使用群晖生态将本地SSD“上云”

文章目录 前言本教程解决的问题是&#xff1a;按照本教程方法操作后&#xff0c;达到的效果是想使用群晖生态软件&#xff0c;就必须要在服务端安装群晖系统&#xff0c;具体如何安装群晖虚拟机请参考&#xff1a; 1. 安装并配置synology drive1.1 安装群辉drive套件1.2 在局域…

【node】nodemailer配置163、qq等邮件服务指南

上一章 【node】发送邮件及附件简要使用说明 邮箱配置 参数配置参考如下&#xff1a; let transporter nodemailer.createTransport({host: smtp.qq.com,port: 465,secure: true,auth: {user: **********,pass: your-password} });邮箱服务提供商的要求&#xff0c;配置SM…

Python数据挖掘:入门、进阶与实用案例分析——自动售货机销售数据分析与应用

文章目录 摘要01 案例背景02 分析目标03 分析过程04 数据预处理1. 清洗数据1.1 合并订单表并处理缺失值1.2 增加“市”属性1.3 处理订单表中的“商品详情”属性1.4 处理“总金额&#xff08;元&#xff09;”属性 2.属性选择3.属性规约 05 销售数据可视化分析1.销售额和自动售货…