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

一、什么是接口测试?

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

二、为什么要做接口测试?

在淘宝系统的历史上,功能测试和性能测试最早出现,随后是自动化测试。但是今天,淘宝的架构已经不再是传统的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%以下。

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

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

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

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

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

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

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

相关文章

SpringBoot使用Swagger2生成接口文档

一、导入依赖 <!-- knife4j--><dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId><version>2.0.7</version></dependency> 二、配置类 通过一下配置&am…

【并发编程】活锁

&#x1f4dd;个人主页&#xff1a;五敷有你 &#x1f525;系列专栏&#xff1a;并发编程 ⛺️稳重求进&#xff0c;晒太阳 活锁 定义&#xff1a;活锁出现在两个线程互相改变对象的结束条件&#xff0c;最后谁也无法结束 代码示例 public class TestLiveLock {stati…

java web mvc-03-JFinal

拓展阅读 Spring Web MVC-00-重学 mvc mvc-01-Model-View-Controller 概览 web mvc-03-JFinal web mvc-04-Apache Wicket web mvc-05-JSF JavaServer Faces web mvc-06-play framework intro web mvc-07-Vaadin web mvc-08-Grails JFinal JFinal 是基于 Java 语言的极…

策略模式在AIBOT项目中的实际应用

原文链接https://www.jylt.cc/#/detail?activityIndex2&id8d1912358fa1c1d8db1b44e2d1042b70AIBOT 你想 我来做AIBOThttps://chat.jylt.top/ 定义 策略模式&#xff08;Strategy Pattern&#xff1a;Define a family of algorithms,encapsulate each one,and make them …

生成芭比系列咒语

咒语&#xff1a;Close-up of a man with golden hair and a necklace,Digital Art Inspired by Cheng Yanjun, Tumblr,Rococo,Portrait of Josie in Black Pink,Portrait Zhixiu Black Pink,flowing golden hair,long flowing golden hair,Bubble Gum Long Hair,blond hair,Pi…

电信联通5G共建共享方案实施及验证

一、情况概述 随着2019年9月9日中国电信集团与联通签署《5G网络共建共享框架合作协议书》&#xff0c;电信与联通在全国范围内合作共建5G接入网络。根据合作协议&#xff0c;联通运营公司将与中国电信在全国范围内合作共建一张5G接入网络, 双方划定区域&#xff0c;分区建设&a…

前端开发中的那些规范

开发中的那些规范 俗话说&#xff1a;无规矩不成方圆。生活如此、软件开发也如此。 来聊一聊开发中有哪些地方需要规范。 为什么需要规范 现在开发一个应用基本上都是多人协作&#xff0c;一旦涉及到多人&#xff0c;必然不同的开发者的开发习惯、编码方式都是有所不同的&…

SpringBoot整合ElasticSearch实现基础的CRUD操作

本文来说下SpringBoot整合ES实现CRUD操作 文章目录 概述spring-boot-starter-data-elasticsearch项目搭建ES简单的crud操作保存数据修改数据查看数据删除数据 本文小结 概述 SpringBoot支持两种技术和es交互。一种的jest&#xff0c;还有一种就是SpringData-ElasticSearch。根据…

【C语言入门】交换两个变量的值(三种方法)

✨✨欢迎大家来到Celia的博客✨✨ &#x1f389;&#x1f389;创作不易&#xff0c;请点赞关注&#xff0c;多多支持哦&#x1f389;&#x1f389; 所属专栏&#xff1a;C语言 个人主页&#xff1a;Celias blog~ 引言 我们在编写程序时&#xff0c;经常会需要交换两个变量的值&…

Shell脚本③条件语句、if命令和case命令

目录 一.条件语句 1.test测试条件表达式 2.整数数值比较 &#xff08;1&#xff09;比较两个整数大小 &#xff08;2&#xff09;查看系统剩余内存是否低于1024M 3.逻辑测试 4.三元运算符 二.if命令 1.单分支结构 2.双分支结构 3.多分支结构 三.case语句 四.脚本 …

cmd_to_robot 讨论及 G29 控制优化

cmd_to_robot 讨论及 G29 控制优化 cmd_to_robot 讨论 转向电机控制代码中&#xff0c;补偿信息在循环中发布&#xff0c;转向完成信息在回调函数中发布 转动电机控制代码中&#xff0c;对转动电机的控制在转向完成的回调函数中实现 这就意味着如果一直没有 /cmd_vel 消息发…

基于springboot+vue的学科竞赛管理系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 研究背景…

零日漏洞:威胁与应对

一、引言 随着信息技术的迅猛发展&#xff0c;网络安全问题日益凸显。其中&#xff0c;零日漏洞已成为当今网络安全领域最受关注的问题之一。本文将深入探讨零日漏洞的威胁、产生原因以及应对策略&#xff0c;以期提高人们对这一问题的认识和防范意识。 二、零日漏洞的威胁 …

Java - 数字签名与数字证书

文章目录 概述对称加密非对称加密数字签名数字证书根证书申请ca证书 完整流程小结 概述 SSL是一种安全协议&#xff0c;用于在网络传输中提供数据加密、身份验证和完整性保护。它基于传输层协议&#xff08;如TCP&#xff09;&#xff0c;并为其提供加密和安全功能。 对称加密…

LLM之RAG理论(七)| 高提升RAG检索的四种方法

​ RAG两大核心组件&#xff1a;检索和生成。本文将总结四种提高RAG系统检索质量的技术&#xff1a;1&#xff09;子问题查询引擎&#xff08;来自LlamaIndex&#xff09;&#xff0c;2&#xff09;RAG-Fusion、3&#xff09;RAG-end2end和4&#xff09;LoRA微调。 一、L…

如何用GPT绘图?

详情点击练级&#xff1a;如何用GPT绘图&#xff1f; 一OpenAI 1.最新大模型GPT-4 Turbo 2.最新发布的高级数据分析&#xff0c;AI画图&#xff0c;图像识别&#xff0c;文档API 3.GPT Store 4.从0到1创建自己的GPT应用 5. 模型Gemini以及大模型Claude2 二定制自己的GPTs…

多线程select并发

多线程select并发 只需要在上面代码的基础上对服务器端做些更改, 主要逻辑如下: 主线程在检测到有新的客户端连接之后, 创建一个子线程完成accept操作, 具体如下: if(FD_ISSET(lfd, &rdtemp)){auto* info new fdInfo;info->fd lfd;info->maxfd &maxfd;info…

grid布局,flex布局实现类似响应式布局的效果

一. grid布局 实现代码 <!DOCTYPE html> <html lang"en"><head><style>.box {display: grid;grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); /*自动填充&#xff0c;最小宽度300px*/justify-content: space-between;gap:…

go语言(十六)----tag

package mainimport ("fmt""reflect" )type resume struct {Name string info:"name" doc:"我的名字"Sex string info:"sex" }func findTag(str interface{}) {t : reflect.TypeOf(str).Elem()for i : 0;i < t.NumField…

redis高可用之Sentinel模式

文章目录 前言1. 创建联想主服务器的网络连接2. 创建连向其他Sentinel的命令连接 &#xff08;也就是调度中心的高可用&#xff09;3.选举领头Sentinel 调度中心高可用4.故障转移 选出新的主服务器 redis服务器高可用如何挑选新的主服务器&#xff1f; 总结 前言 Sentinel(哨岗…