如何做好接口测试?||关于京东平台商品API接口测试

探讨主题:如何做好接口测试?

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

2、为什么要做接口测试
a)互联网的快速发展,公司内部系统或与外部系统的关联越来越多,一个业务流程关联多个后端系统,它们的关联都是基于接口来实现,接口测试可以将复杂的系统关联进行简化,只要做好每个接口的测试就能够较好的保证系统质量。
b)单个系统的变更,是否会影响到关联业务系统,比较难用常规的测试方面来覆盖相关的应用系统(例如使用此接口的外部 系统有N个,不可能每个做功能兼容性测试),但可以通过对接口功能的覆盖来验证是否影响它人对接口的调用。
c)接口功能比较单一,能够比较好的进行测试覆盖,也相对容易实现自动化持续集成,,可以减少人工回归成本与时间,缩短测试周期。
d)接口相对于界面功能,会更底层一些,测试覆盖会更容易(如业务在调用接口时做了判断,当不满足条件时链接就不显示,此时从界面无法测试相关功能是否做好判断,通过接口就比较容易)

 

3、接口测试范围
a)业务功能(包括正常、异常场景是否实现)
b)业务规则(覆盖度是否全面)
c)参数验证(边界、业务规则是否达到要求)
d)异常场景(重复提交、并发提交、事务中断、多机环境、大数据量测试)
e)性能测试(响应时间、吞吐量、并发数、资源要求)
f)安全测试(权限验证、SQL注入等)
4、接口测试的重点
a)检查接口返回的数据是否与预期结果一致。
b)检查接口的容错性,假如传递数据的类型错误时是否可以处理。
c)接口参数的边界值。例如,传递的参数足够大或为负数时,接口是否可以正常处理。
d)接口的性能,http请求接口大多与后端执行的SQL语句性能、算法等比较相关。
e)接口的安全性,外部调用的接口尤为重要。

二、做好接口测试的前提
1、系统化的接口文档
传统的接口文档,一般采用word或wiki等系统来记录,从单次使用上似乎比较简单,因为大家会更习惯这样的操作,但这种形式存在比较大的问题:
a、接口文档非标准化,无法直接与接口测试工具接口使用
b、接口维护困难,接口有变化时比较难标识清楚,沟通成本很高
系统化接口文档,例如rap(淘宝分源的一个系统),具备接口维护标准化、版本化管理、MOCK测试等功能;对标准化的接口内容做二次开发,可以直接导出Soapui等工具使用的格式,直接导入工具中使用,有以下好处:
A、接口测试时不再需要手工输入相关字段,节省时间成本
B、版本化管理,能够清晰的知道哪些接口有变化

2、标准化的接口规范
接口管理是做好接口测试很重要的前提,如果一个系统有哪些接口都不太清楚,测试就很难覆盖到,接口管理建议采用以下方式:
A、按接口提供方为单位进行首次划分,按接口使用方进行二次划分,再按业务模块进行细分,分类原则根据内容多少进行优化,不需要固定,如本身接口较少就没有必要分得过细,较多时就需要多划分模块
B、按接口链接URL做为唯一,不同的接口参数做为接口变量,接口有参数变更时在原来接口上进行维护,而不是新增加接口
C、为接口增加版本号,方便清楚哪些接口本次有变更,易于维护用例

3、JAVA项目使用Swagger 插件
Swagger是最受欢迎的REST APIs文档生成工具之一,有以下几个特点:
Swagger 可以生成一个具有互动性的API控制台,开发者可以用来快速学习和尝试API。
Swagger 可以生成客户端SDK代码用于各种不同的平台上的实现。
Swagger 文件可以在许多不同的平台上从代码注释中自动生成。
Swagger 有一个强大的社区,里面有许多强悍的贡献者。
它将代码与接口文档整合在一起,避免了接口文档维护困难,接口文档更新不及时不到位等问题;同时它也能够方便的与接口测试工具接合使用,如soapui支swagger插件导入接口文档进行测试

三、接口测试常用工具
1、JMeter
JMeter是Apache组织开发的基于Java的压力测试工具,能够将请求转换为脚本来实现,并允许使用正则表达式创建断言来对请求返回结果进行判断,具备接口测试功能和性能的能力。
2、SOAPUI
SoapUI是一个完整的自动化测试解决方案。支持SOAP和REST的Web服务,JMS企业消息层,数据库,丰富的互联网应用,等等。而在SoapUI,你从它的直观和强大的用户界面这一切。对于自动化程度较高,SoapUI还提供了命令行工具,让您运行的功能/负载测试和几乎所有的任务调度程序,或作为您的构建过程中的一个组成部分MockServices集。
3、PostMan
Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件,具备Fiddler\httpwatch之类的工具调试请求的功能,同时具备接口管理功能,官网提升脚本保存同步功能,支持接口导入导出
4、Loadrunner
HP公司的性能测试工具,使用C语言或JAVA语言编写脚本,易学易用
四、接口自动化测试实例
RAP+SoapUI
1、接口文档rap系统录入

图片


2、导出wadl格式文件

图片


3、接口导入测试工具进行测试
打开soapui,新建project,右键添加WADL

图片

图片


确认导入后结果如下:


右键对应的项目生成测试用例

图片


界面如下:

图片


备注:这里可选择为每一个资源生成一个单独的用例,也可以选择将所有请求生成到一个用例中,使用时建议,请求将多时选择,较少时选择
,以方便用例管理
确认后,将生成如下的测试用例集

图片


接下来对每一个用例进行完善,进行参数化、添加检查点来判断结果

图片


注:
1、参数化方式有多种形式,支持直接维护参数列表、读取参数文件、直接使用SQL语句查询数据等。如果数据是比较固定的可以使用直接维护参数列表;如果数据状态之类的会发生变化,建议使用SQL语句查询,这样能保证参数的有效性
2、检查点也支持多种形式,常用contains、Xpatch Match,支持自己编写脚本来判断
RAP+PostMan
PostMan支持导入功能,可以直接导入
Postman Collection, Environment, data dump, curl command, or a RAML / WADL / Swagger(v1/v2) / Runscope file

图片


将上面导入SOAPUI中的WADL文件导入,结果如下:

图片


PostMan与soapui接合
Soapui 新版本支持直接导入PostMan Collection,如下图

图片


这样大家也可以将使用PostMan测试的记录导入到Soapui中使用
五、持续集成接口测试
对接口测试而言,持续集成自动化是核心内容,通过自动化的手段才能有效降低成本,提高接口测试的价值。如果使用LR、JMeter、SoapUI工具做自动化测试,工具本身支持命令行模式运行,可以接合Jenkins 等自动化平台,实现项目版本更新后的自动化回归测试
关于持续自动化回归测试的建议:
1、接口脚本开发时要注意参数的取值的可用性,不因为时间或数据状态的变化引起脚本不能正常运行,降低脚本维护成本.
2、接口回归功能的覆盖度控制,需要根据脚本的实际功能和重要性判断自动化回归覆盖度,回归内容越多脚本维护成本越高,一般应用接口不建议全功能覆盖(毕竟接口有变化会做详细测试,如果没修改其它变更可能对其产生的影响一般不会影响其逻辑判断)
3、接口脚本需要一定的自动化校验能力,除请求http状态的判断外,还需要对核心内容的正常性做判断(判断内容可与数据库内容匹配等方式,不建议用写死的内容)。
4、持续性能测试,还需要做好相关的监控、性能指标的分析自动化,减少人工操作。

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

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

相关文章

Clocking System

文章目录 1. 介绍2. 时钟源2.1 scillator Circuit (OSC)2.1.1 外部时钟输入模式2.1.2 外部晶体/陶瓷谐振器模式2.1.3 振荡器的配置2.1.4 Oscillator Watchdog 2.2 Back-up Clock 3. 锁相环(PLL)3.1 系统锁相环3.1.1 Features3.1.2 框图 3.2.外设锁相环3.…

普中51单片机

参考:51单片机快速入门教程2022(普中51开发板A2新版)--绍兴文理学院元培学院《单片机原理与应用》课程建设_哔哩哔哩_bilibili 1.以管理员启动,破解

python-pptx 中 placeholder 和 shape 有什么区别?

在 python-pptx 库中,placeholder 和 shape 是两个核心概念。虽然它们看起来相似,但在功能和作用上存在显著的区别。为了更好地理解这两个概念,我们可以通过它们的定义、使用场景以及实际代码示例来剖析其差异。 Python-pptx 的官网链接&…

KA客户关系管理策略全解析

在当今商业竞争日益激烈的环境中,如何有效管理和维护关键客户关系成为企业制胜的关键。无论是初创企业还是跨国公司,都面临着同样的挑战,那就是如何通过精准的客户关系管理策略,不仅保留现有客户,还能不断拓展新的商业…

成都网页制作中小企业网站建设的成本与预算指南

成都网页制作中小企业网站建设的成本与预算指南 在数字化时代,中小企业越来越重视网络宣传和线上业务的拓展,网站成为了企业形象的重要展示窗口。然而,对于许多中小企业而言,如何合理规划网站建设的成本与预算,往往是一…

java将word转pdf

poi工具转换 <!-- 处理PDF --><dependency><groupId>fr.opensagres.xdocreport</groupId><artifactId>fr.opensagres.poi.xwpf.converter.pdf-gae</artifactId><version>2.0.3</version></dependency>这个工具使用了poi…

Thinkphp/Laravel小型超市进销存管理系统的设计与实现

目录 技术栈和环境说明具体实现截图设计思路关键技术课题的重点和难点&#xff1a;框架介绍数据访问方式PHP核心代码部分展示代码目录结构解析系统测试详细视频演示源码获取 技术栈和环境说明 采用PHP语言开发&#xff0c;开发环境为phpstudy 开发工具notepad并使用MYSQL数据库…

即插即用篇 | DenseNet卷土重来! YOLOv10 引入全新密集连接卷积网络 | ECCV 2024

本改进已同步到YOLO-Magic框架! 本文重新审视了密集连接卷积网络(DenseNets),并揭示了其在主流的ResNet风格架构中被低估的有效性。我们认为,由于未触及的训练方法和传统设计元素没有完全展现其能力,DenseNets的潜力被忽视了。我们的初步研究表明,通过连接实现的密集连接…

墙绘艺术在线交易:SpringBoot技术解析

2 相关技术 2.1 SSM框架介绍 本课题程序开发使用到的框架技术&#xff0c;英文名称缩写是SSM&#xff0c;在JavaWeb开发中使用的流行框架有SSH、SSM、SpringMVC等&#xff0c;作为一个课题程序采用SSH框架也可以&#xff0c;SSM框架也可以&#xff0c;SpringMVC也可以。SSH框架…

使用激光定高需要注意的问题以及效果测试与读取

使用激光定高需要注意的问题 飞控参数要修改EKF2_HGT_REF 需要改成 range sensor 此时&#xff0c;PX4会选择融合来自激光定高模块传输的高度数据&#xff0c;而不再使用其他数据来源如动捕的z数据 (如果用vision的话手动向vision_pose里面发数据也不是不行【狗头】) 效果测…

PCL 均匀下采样

目录 一、概述 1.1原理 1.2实现步骤 1.3应用场景 二、代码实现 2.1关键函数 2.1.1 均匀下采样 2.1.2 可视化原始点云和下采样后的点云 2.2完整代码 三、实现效果 PCL点云算法汇总及实战案例汇总的目录地址链接&#xff1a; PCL点云算法与项目实战案例汇总&#xff0…

SSL VPN | Easyconnect下载安装使用 (详尽)

EasyConnect是一款远程连接工具&#xff0c;为用户提供简便、快捷的远程访问和控制解决方案。 目录 下载 安装 使用 卸载 下载 通过链接进入官网技术支持板块 深信服技术支持-简单、高效、自助化服务 (sangfor.com.cn)https://support.sangfor.com.cn/ 选择软件下载 在安…

知识产权为什么是企业申报“专精特新”的核心驱动力?

企业要想在激烈的市场竞争中脱颖而出&#xff0c;必须拥有独特的核心竞争力和持续的创新能力。而“专精特新”作为国家重点扶持的企业发展方向&#xff0c;更是对企业在专业化、精细化、特色化、新颖化方面提出了更高要求。在这一背景下&#xff0c;知识产权无疑成为了企业申报…

MIC麦克风工作原理:【图片+公式计算讲解】

Mic一个声电传换装置&#xff0c;广泛应用于电子产品中&#xff0c;最常见的就是手机。我们通常也叫它送话器&#xff0c;今天我们就来好好学习一下Mic的电路和它的工作原理。 1&#xff1a;电路结构图 1&#xff1a;C&#xff1a;Mic的核心部件&#xff0c;是一个可以膜片震动…

数据增强之imgaug的使用

包的导入 path = r"D:\\" # sometimes = lambda aug: iaa.Sometimes(0.5, aug) img = cv2.imread("D:\\photo\\test.jpg") img = cv2.resize(img,(128,128)) # img = cv2.cvtColor(img,cv2.COLOR_RGBA2GRAY) cv2.imwrite(path+"img.jpg",img)随…

上海我店:创新模式引领本地生活新风尚

近年来&#xff0c;一个名为“上海我店”的新兴平台在网络空间中迅速崛起&#xff0c;其公布的业绩令人瞩目——在短短三年内&#xff0c;交易流水已跨越百亿大关&#xff0c;并在最近一个月内迎来了近百万的新增注册用户。这一强劲的增长势头&#xff0c;无疑吸引了众多商家和…

双十一了还在纠结买啥的你,五款好物分享!

​双十一马上要到了&#xff0c;大家也看了各个平台双十一优惠政策了吧&#xff0c;想必还有些朋友没有想要要入手哪些好东西。莫慌&#xff01;作为智能科技博主的我最了解你们了&#xff0c;这就带着双十一必买的好物清单来跟大家见面&#xff01;如果你还不确定双十一到底买…

手机三网状态实时查询分享

我们演示如何使用Python对接手机号在网状态API接口。 以下是详细的接口文档&#xff1a;https://www.tanshuapi.com/market/detail-123 首先&#xff0c;您需要注册并获取API密钥。假设您已经拥有API密钥&#xff0c;接下来是具体的实现步骤。 编写Python代码 以下是一个Py…

地图资源下载工具(geodatatool)下载 亚洲 8 米 DEM数据

本数据集提供的 DEM 镶嵌图是由 DigitalGlobe 卫星的超高分辨率 (VHR) 沿轨和跨轨立体图像生成的。为了生成 DEM 镶嵌图块&#xff0c;超过 4000 个 DEM 条带与加权平均 镶嵌程序合并&#xff0c;以减少错误并消除接缝。镶嵌图块为 100 公里 x 100 公里&#xff0c;8 米处为 …

grafana全家桶-loki promtail收集k8s容器日志

loki是grafana旗下轻量级日志收集工具&#xff0c;为了减少loki对集群的影响&#xff0c;把loki的agent日志收集端promtail部署在k8s集群中&#xff0c;loki server部署在集群外面。这样简单做一个解耦&#xff0c;避免大量读写的应用影响到集群内业务服务。 一、promtail部署…