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

    文章

    5259

    浏览量

    126588
  • 接口
    +关注

    关注

    33

    文章

    8565

    浏览量

    150993

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

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

收藏 人收藏

    评论

    相关推荐

    BTB扩展接口:LCD、Camera、UART、I2C等|详解篇

    今天我们来学习的是BTB扩展接口的LCD、Camera、UART、I2C详解,特别分享Air201硬件BTB扩展接口相关内容。
    的头像 发表于 11-30 09:39 261次阅读
    BTB<b class='flag-5'>扩展</b><b class='flag-5'>接口</b>:LCD、Camera、UART、I2C等|详解篇

    推拉力测试知识点介绍

    一 、【推拉力测试介绍】 推拉力测试是一种工程测试方法,用于评估材料、器件或系统在受到推力或拉力作用下的性能和可靠性。这种测试广泛应用于多个行业,包括航空航天、汽车、建筑和制造业等。
    的头像 发表于 11-15 16:15 605次阅读
    推拉力<b class='flag-5'>测试</b><b class='flag-5'>知识点</b>介绍

    为什么测试波形与理论波形在转折电压值出现偏差?

    以下是我在实际中遇到的问题请帮忙解决一下 在6测试点输入的为50HZ交流的正弦波,以幅值电压7.5V为例。放大200倍后在测试点8得到的波形为方波.方波上升沿、下降沿转折电压理论
    发表于 09-25 07:24

    收录机声音小什么故障

    收录机声音小可能是由多种原因导致的,以下是一些可能的原因及解决方法的分析: 音量调节问题 收录机的音量调节可能没有调到合适的位置,导致声音较小。解决方法是检查音量调节旋钮或按钮,确保其已经调到合适
    的头像 发表于 07-16 14:37 1738次阅读

    接口测试测试什么内容

    接口测试是软件测试的一个重要组成部分,主要用于验证系统组件之间的交互是否符合预期。接口测试可以确保各个模块之间的数据传输、控制流和错误处理等
    的头像 发表于 05-30 15:11 1229次阅读

    模拟电子技术知识点问题总结概览

    给大家分享模拟电子技术知识点问题总结。
    的头像 发表于 05-08 15:16 1141次阅读
    模拟电子技术<b class='flag-5'>知识点</b>问题总结概览

    一篇搞定DCS系统相关知识点

    目标。DCS系统广泛应用于各个行业,如化工、电力、制药等。在这些行业中,DCS系统可以实现对生产过程的集中监控和分散控制,提高生产效率和产品质量,降低能耗和减少环境污染,从而保证产品质量,并确保生产过程的安全可靠。 二.DCS系统知识点
    的头像 发表于 03-26 18:40 878次阅读
    一篇搞定DCS系统<b class='flag-5'>相关</b><b class='flag-5'>知识点</b>

    【量子计算机重构未来 | 阅读体验】第二章关键知识点

    本帖最后由 oxlm_1 于 2024-3-6 23:20 编辑 之所以将第二章单独拿出来,是因为在阅读过程中,发现第二章知识点较多,理解起来比较耗时间。 第二章的主要知识点: 量子
    发表于 03-06 23:17

    鸿蒙知识点

    1、鸿蒙上的类似adb的工具名叫hdc hdc(HarmonyOS Device Connector)是HarmonyOS为开发人员提供的用于调试的命令行工具,通过该工具可以在window/linux/mac系统上与真实设备或者模拟器进行交互。 (1)   hdc list targets   (2)   hdc file send local remote   (3)   hdc install package File   这里列举的几个命令是不是很熟悉?一看名字就知道和安卓中的adb是对应关系。不需要去记忆,在需要使用到的时候去官网查一下就行: hdc使用指导 2、Mac系统配置hdc 环境变量 3、项目中的
    的头像 发表于 01-31 17:40 933次阅读
    鸿蒙<b class='flag-5'>知识点</b>

    母线保护相关知识分享

    母线保护相关知识分享
    的头像 发表于 01-19 10:29 563次阅读
    母线保护<b class='flag-5'>相关</b><b class='flag-5'>知识</b>分享

    机器视觉基础知识点总结

    照明是影响机器视觉系统输入的重要因素。光源系统的设计非常重要,它与输入数据直接相关,即图像的质量和应用效果。
    发表于 01-16 10:08 1092次阅读

    辐射测试,在近场要低于多少值?

    本文简单的介绍了一下关于辐射测试的一些小知识点,有兴趣的朋友可以进来了解一下
    的头像 发表于 01-04 11:23 1149次阅读
    辐射<b class='flag-5'>测试</b>,在近场要低于多少值?

    电路隔离的基础知识点汇总

    隔离 什么是隔离?为什么需要隔离? 隔离是一种防止电流在两个通信之间流动的手段。一般在两种情况下需使用隔离:第一种是可能会出现导致设备受损或人员伤害的浪涌电流;第二种是互连涉及到不同的地电
    发表于 01-03 08:19

    交换机、路由器接口、线缆的相关知识

    今天浩道跟大家分享网络维护中常见的交换机、路由器接口、线缆相关知识,作为一名合格的网工,你应该对这些了如指掌!
    的头像 发表于 12-28 09:19 655次阅读
    交换机、路由器<b class='flag-5'>接口</b>、线缆的<b class='flag-5'>相关</b><b class='flag-5'>知识</b>

    浅谈初级电工必备知识点

    对于初学电工的朋友来说,掌握一些基础且实用的知识点是非常重要的。本文旨在分享初级电工应该掌握的核心知识,帮助新手电工更好地入门和提升技能。
    的头像 发表于 12-26 10:44 1084次阅读