0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

接口测试理论、疑问收录与扩展相关知识点

Testin云测 来源:Testin云测 2024-11-15 09:12 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本文章使用王者荣耀游戏接口、企业微信接口的展示结合理论知识,讲解什么是接口测试、接口测试理论、疑问收录与扩展相关知识点的知识学院,快来一起看看吧~

1

接口测试基础理论

接口测试:接口测试是测试系统组件间接口的一种测试,主要用于测试系统与外部其他系统之间的接口,以及系统内部各个子模块之间的接口。

接口原理:模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做判断并将最终结果返回至客户端,客户端再次接收返回结果并应答的过程。

检查重点:测试的重点是检查接口参数传递、接口功能实现、输出结果的正确性,以及对各类异常情况容错处理的完整性与合理性。

接口类型:内部接口及外部接口,内部接口为程序开发的接口,方法之间或模块之间的调用,外部接口为外部接入调用接口,例如王者荣耀的微信登录、支付宝的支付功能等,均是外部接口。

接口分类:webservice接口及http api接口,webService接口使用soap协议传输,通过http进行传输,是HTTP POST专用版本之一,遵循一种特殊的xml消息格式(请求及返回均为xml),http api接口使用http协议,通过路径来区分调用的方法,通过key-value请求,返回报文通常为json。

接口本质:接口的本质上是一个公开的函数类,进行数据传输的发送与接收,可以理解成一条通道,在发送get或post请求方式时,实际上就是从通道进行发送、在由服务器从通道返回数据。

测试范围:接口功能、接口性能、接口稳定性以及接口安全性等。

2

为什么要进行接口测试

1、稳固代码底层:在初期阶段的开发时,业务层面无法检测到底层内容,代码底层不稳固牢靠,故此需要对底层内容进行接口测试,否则底层代码错误可能会引发更多外部系统或调用模块的错误。

2、低成本高效益:初期开发且资源未设计完成时,提前介入测试工作提前暴露问题,符合质量前移理念,能够明显有效的控制测试成本,且接口可进行自动化持续集成,故此会有更高的长期收益体现。

3、测试范围更广:接口测试大部分是从用户的角度而言对系统接口进行全方面的检查测试,无论是软件项目还是游戏项目,接口测试均会覆盖到部分业务逻辑,故此在进行接口测试时也同样能够辅助业务测试。

4、提高接口安全:上述提到了接口安全的测试范围,在接口安全方面考虑,客户端进行的限制条件容易避开绕过,同样需要测试服务端的限制,涉及到部分隐私数据时还需要验证接口的加密传输,例如用户密码、身份证、银行卡信息等。

5、保障系统稳固:进行接口测试能够保障系统间的数据传输以及容错,从而提高系统层面的稳定性。

总结:  

接口测试的优点:提高整体测试效率,降低研发测试的成本,综合性提升产品质量、降低后续维护资源。

3

如何开展接口测试

3.1、接口开展方式

业务层面:

常用接口测试工具:Postman、Jmeter、SoupUI等。

接口测试工具原理:通过接口测试工具模拟请求与数据接收,实现数据传输。

代码层面:

接口自动化测试:通过代码实现,发送请求通过代码断言判断接口正确性。

ps:会在后续自动化的文章教学接口自动化框架搭建、持续集成等内容。

3.2、接口测试流程

在真实的项目工作中,接口测试的流程大致分为以下几个步骤(公司不同,流程会存在部分差异):

1、公司有接口测试需求或测试人员收到接口测试任务时开始正式介入接口测试的流程阶段。 

 2、由开发人员提供接口文档,测试人员拿到接口文档后先行熟悉需求文档,了解各个接口的功能以及相关信息。(包括但不限于服务器地址端口、请求方式、请求参数、约束条件、返回状态码等) 

 3、当测试人员熟悉需求文档完成后,开始介入测试用例的编写,与业务测试相同,需要考虑到正常、异常的请求参数、还需要考虑到对应的响应报文数据的正确性。

4、最后可以通过接口测试工具进行用例执行,可以选用Postman、Jmeter等,举例:Jmeter可以先建立线程组、添加http请求,写好相关的请求地址、端口、请求参数,并设置好参数化,添加断言,最后添加结果树再运行,Postman与Jmeter原理是一样的,只是操作方式不同,这里不过多阐述,有兴趣的朋友可以网上查找下相关的工具使用说明与资料。

5、当运行完成后,检查接口是否通过,如果接口测试不通过,第一步先检查请求方式、参数等信息是否有错误,如果无错误的情况下,检查下网络环境,如果都没有问题,可能是接口本身存在问题,先以自己的认知进行判断是前端还是后端问题,判断完成后提单给开发并附上相关日志信息直至全部确认完成。值得一提的是,在业务的接口测试过程中更多的会关注失败的接口,在接口自动化的过程中也同样需要关注测试通过的接口,以用于质量提升、报告输出等方面。

3.3、接口测试需求

一份接口需求文档,核心要素主要包括以下内容:

文档封面:封面为xx公司接口需求文档,有公司名称及公司logo并注明为保密文件、需求文档的版本号、文档创建日期等。  修订记录:通常为表格形式,其中至少包括修订的版本及日期、修订说明、修订人、审核时间以及审核人等。  接口说明:接口访问地址格式、接口地址举例、返回结果说明等。(状态码及相关注释)  接口信息:模块名称、子模块、业务描述、接口名称、请求方法、请求格式、响应格式、请求参数、结果说明、返回示例等。

简单介绍接口信息中对应信息所产出的内容:

模块名称:登录、支付等

子模块名:微信登录、QQ登录、手机号登录

业务描述:简洁概括接口的功能

接口名称:

/login/wechat,/payment/personal

请求方法:GET / POST 等

请求格式:application/x-www-form-urlencoded

响应格式:application/json

请求参数:手机号、登录密码(包括变量名、类型、说明注释、是否必填)

结果说明:参数内容、变量名、类型(例如string),返回状态码等

返回示例:返回成功的举例,下方4.4接口演示中有图片体现

ps:并非所有的接口文档都很规范,绝大多数的需求文档中不会有如此详细的信息说明,具体情况大家依据公司接口文档为准即可。

3.4、接口演示(王者荣耀、企业微信接口演示)

笔者在这里进行一些接口的演示,帮助大家了解接口、熟悉接口需求和说明~

王者荣耀接口展示如下:

英雄列表:

接口地址: https://pvp.qq.com/web201605/js/herolist.json

请求方式:GET

输入参数:无

  输出参数:

返回结果(部分展示):

企业微信接口展示如下:

文件上传接口:

素材上传得到media_id,该media_id仅三天内有效media_id只能是对应上传文件的机器人可以使用

请求方式:POST(HTTPS)接口地址:https://qyapi.weixin.qq.com/cgi-bin/webhook/upload_media?key=KEY&type=TYPE

使用multipart/form-data

POST上传文件, 文件标识名为“media”参数说明:

POST的请求包中,form-data中媒体文件标识,应包含有 filename、filelength、content-type等信息

filename标识文件展示的名称。比如,使用该media_id发消息时,展示的文件名由该字段控制

请求示例:POST https://qyapi.weixin.qq.com/cgi-bin/webhook/upload_media?key=693a91f6-7xxx-4bc4-97a0-0ec2sifa5aaa&type=file HTTP/1.1

Content-Type: multipart/form-data; boundary=-------------------------acebdf13572468

Content-Length: 220---------------------------acebdf13572468

Content-Disposition: form-data; name=“media”;filename=“wework.txt”; filelength=6

Content-Type: application/octet-streammytext---------------------------acebdf13572468–

返回数据(未传参):{“errcode”: 44001,“errmsg”: “empty media data, hint: [1638347756075722279950035], from ip: 183.14.133.153, more info at https://open.work.weixin.qq.com/devtool/query?e=44001”}

3.5、接口测试用例设计

用例设计格式:

用例序号:项目名称_模块名称_序号

接口模块:对应的接口模块,例如英雄列表、召唤师技能,企业微信的登录模块、语音模块等

请求方式:通常请求方式为GET、POST

接口地址:通常有固定的地址格式便于接口自动化测试(图中的是全地址)

接口参数输入:部分接口不需要接口参数的输入,部分存在接口输入,如果有,填写即可

用例设计重点及关注点:

(1)发送给服务器的请求数据是否正确;

(2)服务器返回给客户端的数据是否与需求一致,符合预期;

(3)查看数据库中接口是否实现对应功能;

(4)接口的响应时间是否符合需求文档要求

接口用例设计考虑的范围:

1、业务功能:功能是否实现

2、业务规则:定义的描述是否符合预期

3、请求参数:参数的长短、大小、格式等

4、异常场景:传参异常、操作异常、服务异常等

5、数据传输:数据传输结果的正确性

6、接口性能:接口性能的正确,例如并发等

7、接口安全:如支付类、充值接口的数据篡改等

ps:在以上范围内还需要考虑接口的用例覆盖率及代码覆盖率,至少符合预期

3.6、后端接口测试内容

所谓的接口测试,后端接口都测试什么内容?下面的图片会给你一定的帮助(图片来源于网络):

好啦~以上就是本次文章分享的全部内容啦,你学会了吗?有问题记得留言讨论哦~

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 测试
    +关注

    关注

    8

    文章

    6027

    浏览量

    130708
  • 接口
    +关注

    关注

    33

    文章

    9443

    浏览量

    156134

原文标题:这都不会,还敢说会接口测试?

文章出处:【微信号:TestinChina,微信公众号:Testin云测】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    最新人工智能硬件培训AI基础入门学习课程参考2025版(离线AI语音视觉识别篇)

    视觉开发板开箱即用的离线AI能力,分类列出学习课程知识点和实操参考,希望能够帮助大家快速掌握离线 AI 智能硬件的基础知识与实战技能,同时了解相关AI技术在实际场景的应用情况。正文按入下框架展开,
    发表于 07-04 11:14

    【「Yocto项目实战教程:高效定制嵌入式Linux系统」阅读体验】01初读体验

    已阅读部分 由于知识点属于循序渐进,目前花了几天时间读到了第4章, 第一章到第二章,主要讲yocto相关的背景知识,主要讲解linux系统以及yocto相关的概念,学习资源,作者的心
    发表于 06-30 21:49

    【「# 运算放大器参数解析与LTspice应用仿真」阅读体验】+全书概览与第一章阅读分享

    先来详细阅读下第一章,分享下相关内容。 第一章主要介绍运放的基础知识,学过模电的都很容易理解,可能教材上学过的忘记了, 这里可以作为摘出来的重点温故知新复习下。全文没有废话,都是娓娓道来各个知识点
    发表于 05-22 23:18

    C51单片机及C语言知识点必备秘籍

    单片机关键知识点一览: 系列一 1:单片机简叙 2:单片机引脚介绍 3:单片机存储器结构 4:第一个单片机小程序 5:单片机延时程序分析 6:单片机并行口结构 7:单片机的特殊
    发表于 05-15 14:00

    电机选型计算公式与知识点汇总

    纯分享帖,需要者可点击附件获取完整资料~~~*附件:电机选型计算公式与知识点汇总.pdf 【免责声明】内容转自今日电机,因转载众多,无法确认真正原始作者,故仅标明转载来源。版权归原出处所有,纯分享帖,侵权请联系删除内容以保证您的权益。
    发表于 04-29 16:10

    开关电源的理论知识(电子讲义)

    内容目录 1:开发一个开关电源产品所需要的技能和专业理论知识 2:开发一个开关电源产品所需要进行的各种优化和折中 3:保证开关电源产品一次开发成功所需具备的工程素质 纯分享贴,有需要可以直接下载附件获取文档! (如果内容有帮助可以关注、赞、评论支持一下哦~)
    发表于 04-24 17:14

    嵌入式硬件杂谈:推挽、开漏、高阻态、上拉电阻

    对于嵌入式硬件这个庞大的知识体系而言,太多离散的知识点很容易疏漏,因此对于这些容易忘记甚至不明白的知识点做成一个梳理,供大家参考以及学习,本文主要针对推挽、开漏、高阻态、上拉电阻这些知识点
    的头像 发表于 04-17 19:31 1816次阅读
    嵌入式硬件杂谈:推挽、开漏、高阻态、上拉电阻

    电气工程师必知必会的100个电⽓知识点分享

    电⽓⼯程师也都是从电⽓学徒⼯⼀步⼀步积累成长起来的。积跬步⾄千⾥,汇细流成江海!朋友们,现在让我们⾛⼀个捷径,花半个⼩时的时间来积累100个必知必会的电⽓知识点吧!
    的头像 发表于 03-14 11:05 1509次阅读

    变频器维修相关知识

    变频器维修是一项涉及理论知识、实践经验与操作水平的工作,其维修过程需要遵循一定的步骤和方法。以下是一些关于变频器维修的相关知识: 一、变频器维修的基本步骤 1. 静态测试: ● 整流电
    的头像 发表于 03-09 07:40 1099次阅读
    变频器维修<b class='flag-5'>相关</b><b class='flag-5'>知识</b>

    华邦电子安全闪存关键知识点

    黑客攻击?高温考验?驾驶安全?通通没在怕的!1月15日,华邦电子举办了“安全闪存强化车用电子安全性”为主题的线上研讨会。为了让没能参加这场线上研讨会的邦友们也可以清晰 Get 安全闪存关键知识点,邦
    的头像 发表于 02-12 18:15 1105次阅读

    Docker-镜像的分层-busybox镜像制作

    目录 知识点1:镜像的分层 示例:进入 docker hub查看Jenkins的Dockerfile 知识点2:base镜像 知识点3:scratch镜像 scratch 镜像是什么? 示例:在
    的头像 发表于 01-15 10:44 1006次阅读
    Docker-镜像的分层-busybox镜像制作

    Aigtek功率放大器应用:电感线圈的知识点分享

    电磁驱动是功率放大器的一大基础应用领域,其中我们最常见的就是用功放来驱动电感线圈,那么关于电感线圈的这10大知识点你都知道吗?今天Aigtek安泰电子来给大家介绍一下电感线圈的基础知识
    的头像 发表于 01-07 15:43 1189次阅读
    Aigtek功率放大器应用:电感线圈的<b class='flag-5'>知识点</b>分享

    芯片良率相关知识点详解

    芯片良率(或成品率)是指在芯片制造过程中,从一片晶圆上生产出的芯片中,能正常工作的比例,即合格芯片数量与总芯片数量的比率。良率的高低反映了生产工艺的成熟度、设备的精度和稳定性、材料质量以及设计合理性。 #01 良率的背景介绍 1.1 良率在半导体制造中的重要性 生产效率和资源利用:高良率意味着更少的废弃芯片,更高的资源利用率。固定成本的晶圆如果能生产更多合格芯片,就能提升生产效率,减少浪费。 质量和可靠性:高良率通
    的头像 发表于 12-30 10:42 6074次阅读
    芯片良率<b class='flag-5'>相关</b><b class='flag-5'>知识点</b>详解

    一文详解信号的回流路径

    最近在看JT大佬出的一本高速PCB设计书籍,看到回流路径这里,让我想到最近两个群里都提到关于这个知识点的问题。书籍很好,但是也会有一些疑问,带着这些疑问我也查找了相关资料,我想着尽可能
    的头像 发表于 12-25 10:17 3748次阅读
    一文详解信号的回流路径

    后悔没有早点看到:天线设计中的知识点

    Cat.1 bis R13架构,天线架构精简为单天线架构,去掉了分集接收天线,因此只需要一根天线。   知识点: Cat.1 bis相对于Cat.1的区别是,后者为两根天线(一根主天线,一根分集天线
    的头像 发表于 12-24 17:11 1593次阅读
    后悔没有早点看到:天线设计中的<b class='flag-5'>知识点</b>!