当前速看:接口测试快速入门1简介
简介
本章介绍应用程序编程接口(API application programming interface)和 API测试。API测试是软件测试活动的一个重要方面(在典型的基于服务的软件开发过程中)。它包括测试应用程序的业务组件,通常表示为API,然后再开发UI。一个微服务处理单一需求的API。
什么是API测试?
API对应用层进行抽象,并提供资源供客户端使用。API是任何典型的Web应用、多层Web应用或移动应用的骨干,它隐藏了系统的内部细节,例如如何为消费者处理在线支付。
(资料图片仅供参考)
API是应用程序的中间层,它与后端打交道,通常通过ORM(对象关系映射Object-Relational Mapping)或其他工具,或直接与数据库和前端打交道。API在后端和前端之间充当代理。API根据用户的要求/请求从后端读取数据,并将响应发送到前端。
没有前端的API提供服务,例如支付网关、天气预报等。
上图显示了典型的基于服务的软件应用结构。它在有数据库,中间层的API,以及从浏览器或移动应用程序发出的请求。
微服务是处理单一需求的API,该服务可以独立运作/部署。微服务是定义典型软件应用程序的业务逻辑的API,实现快速开发和可扩展的软件开发理念。
API测试涉及到业务工作流程。这可能被归类为黑盒测试,但从技术上讲,它更像是一种灰盒测试,测试人员简单地了解一些内部实施的细节,但不深入。他们通过对API内部使用的代码路径或逻辑的技术方面的了解,单独测试API。
API有约定的格式,比如JSON/XM)。它接受给定格式和所需参数的请求,并提供规定格式的正确响应。这种测试直接与应用服务器打交道。它可能涉及测试应用程序的单个组件或组合几个组件。标准测试技术适用于测试API时,如等价类、边界值分析、大请求、无效请求、未授权请求等。
API测试需要特定的工具,如httpie、curl、火狐和Chrome插件restclient、Postman和RestAssured等,它们支持请求方法和用于检索API的协议。常用的协议是HTTP(S)。测试人员用所需的请求方法键入URL,在API测试工具中以与API消费者相同的方式请求参数,然后在应用程序的上下文中验证响应/输出。
测试计划或用例是必要的,就像用户工作流测试一样。测试计划有输入,预期输出,和前提条件等。
上述段落中的概念将在以后的章节中更详细地介绍。
API测试的必要性
API测试使用之前发现功能/性能/安全/(更多类型)错误的最快方法。
在软件开发过程中,早期测试的投资回报率较高。由于API测试具有更大的代码/功能覆盖面,与前端测试相比,测试的效率往往要高很多。在单个API层面上识别错误的速度更快,因为与在前端层面上发现错误相比,复杂性更低,发现错误的可能性更高。
不测试API和在前端层面测试只会使测试更加复杂和乏味,而且通常需要更多的测试时间和资源。只测试前端是容易出错。由于前端的变化频率往往比后端/中间层高得多,失败率也往往更高。因此识别错误是后端/API的错误还是前端的错误是很耗时的。
有效地实施API测试可以帮助减少测试工作,节省时间和成本。
API测试的类型
API对消费者/前端的请求做出响应。响应应该是快速的。API不应允许未经授权的用户访问。当并发用户访问API时,它应该在规定的时间内响应。对API的无效请求应适当处理,并应返回错误信息。API应该遵守当地的法律。如果API是作为一种服务提供的,那么它应该保持与消费者的合同,参数不应改变,等等。
API最容易出现的问题
61%的可靠性
22.2%的安全性
16.7%的性能
以下是API测试的类型:
功能测试
解决API的功能问题,例如按照业务要求返回响应。涉及控制流和数据流等。
发送和返回都符合接口设计;正确地实现了功能,比如能创建或删除用户,数据库和缓存数据处理正确等。
参数:参数的边界值和等价类划分;组合可选参数;参数为空字符串、null等特殊值;参数长度;参数类型;sql注入;包含特殊符号和编码的参数。
重复与时序测试
多次重复测试返回结果正常且一样。由于API是非常松散的耦合,乱序、丢失、重复调用如何应对?竞争和加锁的情况如何处理?时序与生命周期特别重要。
重复添加或删除用户,不会对数据库和缓存等造成不良影响,提示的错误码与文档一致。
性能测试
解决负载下的响应时间。当在同一时间点上对给定的API提出多个请求时,API应该按照服务提供商和消费者之间商定的SLA定义,在允许的时间范围内返回响应。 需要考虑多个API的组合,以及多个微服务共享服务器、DB等情况。
- 预计API将如何被使用?
- 如果它突然变得流行,会发生什么?
- API是否有全球24/7使用的高可用性?
- 是否有可能出现使用高峰的时候(例如比如全民做核算)?
- 响应时间、并发、吞吐量等指标。
局域网内单次调用在50ms内完成、在1000并发的情况下最大相应时间不超过60ms、资源占用正常等。是否有峰值,过量是否会产生不良效果。资源消耗与容量等。重点关注响应时间、吞吐量、并发数、可靠性、 cpu、io、内存、gpu、网络等资源占用。
安全测试
解决了通过获取会话、参数篡改等方式对API进行未授权访问的问题。API不应允许任何匿名/未经授权的用户通过自身获得数据的访问。
蠕虫病毒和其他负载攻击。
无效的认证。
SQL注入。
加密级别不够。传递和存储的敏感数据和日志需要加密,并且难以破解。
未经授权的访问控制。 黑白名单:非授权的主机不能访问接口
云问题。如果API位于云端,安全问题可能更严重,因为通常对物理网络安全的有效控制很少。
意外的误用。调用方非预期滥用、文档不佳或编程错误等造成,也可能是恶意攻击。
噪声测试
解决请求中的无效或故障数据。API应该相应地、及时地做出响应。如果数据是无效的,API应该用适当的错误代码/消息来回应。
弱网
双向通信能否正常完成。尤其要考虑丢包,延迟、2G等差网络场景。可以使用linux的防火墙及tc命令或facebook的ATC框架模拟。
错误代码和消息测试
解决不正确的输入数据,并以适当的错误代码和消息进行响应。通常错误的产生是由于参数传递不正确(例如,不按顺序)或超出范围。
扩展测试
与基础设施有关,这是DevOps的常规工作,但API在这种情况下也会被测试。这主要是在微服务架构中,特定的API被更频繁地使用。API应该是可扩展的,因为并发访问将更加频繁,而且API应该一直可用。经常在性能测试中验证。
合规性测试
属于API被消费的地方管辖。例如,如果API要求提供个人信息(手机号码、出生城市等),那么这些信息应该由供应商保护,不允许任何试图获取这些信息的行为,并且应该保持审计日志。
许多行业要求软件必须符合各种法规和标准。法规可能来自政府和准政府实体,如FDA或EPA。标准可能来自于国际组织或行业团体。例如,如果软件处理信用卡或借记卡,它必须符合PCI标准。以任何方式处理健康信息的系统必须符合HIPAA标准。API可能受制于服务水平协议(SLA)或其他技术协议。如果不能满足这些协议,可能会给组织带来大量的惩罚或罚款。
CDCT(消费者驱动的合同测试)
意味着服务提供者总是保持相同的请求有效载荷。这对服务提供者的业务至关重要。如果有效载荷被改变,那么消费者请求将开始失败,这将是业务的损失。即稳定性。
变更管理
你的API是否依赖于其他API?当这些改变时,你将如何知道?API的数据模式是至关重要的。即使是对模式的一个小的改变--例如,将一个整数改为实数--也可能导致缺陷和失败。
API通常是由不同的小组开发的。试图确保所有参与者的时间表是一致的,一个小组做了一些改变,然后这些改变就像海啸一样波及所有的开发小组。
失败管理
API在生产中出现故障,你将如何知道?当(以及如果)外部组织停止使用你的API时,你是否能够找出原因和发生的时间?
数据
API的创建、查询、更新和删除等正确。数据库事务、大量数据、数据迁移等。
组合
边界值和API组合场景等。
业务组合:比如扣费需要综合考虑闲时、忙时、节假日、集团用户优惠等各种因素。注意接口的水平和垂直组合。
协议
比如SNMP协议与其他厂商的互通,私有部分的实现。又如私有协议。
可移植性问题
你的API有可能需要在不同的层面上工作。它们可能被直接调用,也可能被其他API调用,而这些API又被其他API调用,再由ESB控制。
文档
文档必须进行正确性测试。由于大量的开发者需要与你的API进行交互,文档必须为所有的开发者提供足够的信息。而文档的质量是至关重要的。文档中的数据顺序、数据类型、格式、甚至大写字母都是至关重要的,必须正确。
易用性
软件开发者是否能真正学习和理解如何成功地使用API?是否容易调用、简洁、语法一致等?
可测试性
使API的人很可能想用他们自己的API层来测试它。这可能需要特殊的环境(沙箱)供他们发挥,。这些测试是否正确,而不干扰生产环境?
甚至可以考虑使用mock伪造返回。
- 其他:更多需要关注的点请参考ISO/IEC 25010:2011
优势
在软件开发的早期阶段发现bug是有好处的。在实施API之前,在后端找到一个bug,可以节省开发API的时间。在中间层/API中发现错误,可以节省前端开发的时间。在产品交付的软件开发模式中,越晚测试,测试工程师在紧迫的期限内找到bug就越复杂,越有挑战性。
在业务层找到bug有利于交付高质量的产品。如果API测试得足够好,对产品开发团队有明显的好处。
以下是做API测试的几个优势。
- 容易实现自动化
- 能更快地找到bug
- 独立于GUI
- 较大的代码路径覆盖率
API测试的挑战
- API测试中的主要挑战是参数组合,参数选择和调用排序
- 没有GUI可用于测试
- 验证和验证不同系统中的输出对于测试人员来说很难
- 测试人员需要了解参数选择和分类
- 异常处理功能需要测试
- 开发技能
参考资料
- 本文涉及的python测试开发库 谢谢点赞!
- 本文相关海量书籍下载
补充
应用程序编程接口(API Application Programming Interface)是不同的进程、程序和/或系统之间进行通信的代码。API经常被用于C/S架构,一个进程向其他进程提供某种功能。它支持两个独立软件系统之间的通信和数据交换。API起源于远程过程调用(RPC remote procedure call)。
API实际上有两种不同的类型。本地API通常用于与操作系统、数据库和I/O或其他在本地处理器上执行工作的进程进行交互。例如打开文件,分配堆内存,在数据库上启动事务,在屏幕上显示数据,或者捕获鼠标动作,他们在编程语言中进行API调用来执行任务。通常程序员甚至不知道他们正在调用各种API,因为编程语言往往隐藏了直接调用。
但一般所说的API是对远程处理的请求的实现。API实现了指定了本地进程请求从远程位置完成任务的方式,并定义了该任务的结果返回给本地进程的方式,是一种协议。协议中包括指定要完成的任务的技术,数据传递给远程进程的方式,信息实际传达给远程位置的方式,结果传递回来的方式,以及解释这些结果的方式。
待汇总
API和SDK的区别
python高效web API开发库FastAPI快速入门教程1简介
python高效web API开发库FastAPI快速入门教程2路径参数和类型及接收json数据
python笔试面试项目实战2020百练12-使用requests做HTTP接口测试
python3测试工具开发快速入门教程10接口测试简介
使用jython进行dubbo接口及ngrinder性能测试
接口测试面试题
python工具库介绍-dubbo:通过telnet接口访问dubbo服务
接口协议工具thrift1快速入门
使用python3和flask构建RESTful API(接口测试服务与mockserver工具)
标签:
相关阅读
-
04-25
-
04-25
-
04-25
推荐阅读
-
当前速看:接口测试快速入门1简介
简介本章介绍应用程序编程接口(APIapplicationprogramminginterface)和API测试。API测试是软件测试活动的更多
2023-04-25 10:34:57
-
临汾安吉尔桶装饮用水-热闻
安吉尔桶装饮用水临汾市区送水地址、热线:一部:平阳北街2027777二部:南外环3789222三部:鼓楼东大街3789更多
2023-04-25 10:53:08
-
速读:我市启动2023年社保宣传周活动
4月24日,市人社局启动2023年社保宣传周活动,将通过系列社保宣传活动促进全民参保、应保尽保。省人社厅将更多
2023-04-25 10:50:38
-
时讯:江苏江阴:侦监协作办的“服务”元素契合办
“一项新生事物能够得到双方的认可,大概率是取得了‘双赢’的效果。”落座后,江苏省江阴市公安局党委副书记更多
2023-04-25 10:22:01
-
全球动态:昨天今天明天_中考满分作文600字 那别
抄写作文网小编为大家提供昨天今天明天_中考满分作文600字那别样的美_辽宁辽阳中考来供大家参考,欢迎阅读更多
2023-04-25 10:23:25
-
[年报]矩子科技2022年营业收入6.84亿元 每10股派
4月24日晚,矩子科技(300802)发布2022年年度报告。报告显示,2022年公司实现营业收入6 84亿元,同比增长1更多
2023-04-25 10:21:28
-
全球热门:不良人:李星云为什么要帮漠北攻打洛阳
哈喽,大家好,我是木子。画江湖之不良人第六季现在已经出到第九集,相信很多人都去看了,也都注意到了快结更多
2023-04-25 10:00:00
-
全球最新:基金分红:大成景优中短债债券基金4月2
4月25日发布《大成基金管理有限公司关于大成景优中短债债券型证券投资基金2023年度第1次分红的公告》。本次更多
2023-04-25 10:09:24
时尚热图
热门标签
精彩放送
-
04-25
-
04-25
-
04-25
-
04-25
-
04-25
-
04-25
-
04-25
-
04-25
-
04-25
-
04-25
-
04-25
-
04-25
-
04-25
-
04-25
-
04-25
-
04-25
-
04-25
-
04-25
-
04-25
-
04-25
-
04-25
-
04-25
-
04-25
-
04-25
-
04-25
-
04-25
-
04-25
-
04-25
-
04-25
-
04-25
-
04-25
-
04-25
-
04-25
-
04-25
-
04-25
-
04-25
-
04-25
-
04-25
-
04-25
-
04-25
-
04-25
-
04-25
-
04-25
-
04-25
-
今日必看
-
精彩话题
-
最新见闻
- 全球动态:苹果MR新品进入最后冲刺阶段 产业链核心标的有望充分受益
- 找工作必看!教育部发布毕业生求职避坑指南
- 环球快讯:京东闯入拼多多后院
- 半导体行业:AI赋能智能家居-专题报告-今日视点
- 使用数字人民币发的工资,是种什么体验? 全球快资讯
- 世界视点!话题|压力山大!C罗想踢亚冠只剩联赛夺冠一条路
- 2023年北京义务教育入学重要时间安排+咨询电话
- 外媒爆料:特斯拉把上海生产的汽车送往北美销售!马斯克:上海工厂成本最低……
- 我国首辆镁合金轻量化挂车交付 镁合金有望开启1-N的放量模式
- 环球动态:民生证券给予太阳纸业推荐评级
- 托蒂:佩莱格里尼没辜负人们的期待 帕特里西奥是世界级门将_今日讯
- 政府主导,社会参与,镇江市小剧场试点建设暨演出活动启动|今日关注
- 生物医药行业:创新药23Q2催化剂密集,重点看好板块估值回升投资机会-专题报告
- 全球视点!致远互联签约知乎
- 绍兴柯桥区4.04亿元挂牌一宗宅地 地块内允许建设低层住宅
- 天天观焦点:突然暴跌35%!美国零售巨头申请破产,市值蒸发2000亿,十年来最大倒闭潮来袭
- 南财早新闻丨A股光伏净利润迈入千亿时代;一季度全国城镇新增就业297万人 全球微资讯
- 全球微资讯!涉嫌分裂国家罪 浙江省检察机关依法对杨智渊批准逮捕
- 热点在线丨qq三国显示账号被屏蔽_qq三国账号被屏蔽怎么办
- 全球快消息!中欧基金钱亚风云:当下应秉持均衡配置策略
- 无人机爱好者的一个发现惊动了警方……_热讯
- 郑州商品交易所:数字化赋能农产品期货 持续提升“中国价格”国际影响力
- 早新闻 | 这项一季度重磅数据来了!全国首辆 千亿级市场或来袭!这些公司业绩下滑
- 当前速递!长沙乡村游火爆 除了青山绿水、田园美食、特色民宿,还有音乐节、运动赛
- 永清环保控股股东及一致行动人拟减持不超6%公司股份 新资讯
- 环球热资讯!就业增长,如何与经济发展互促共进?
- 世界头条:养老机构模拟失火 随机考验处置能力
- 最高检:台湾地区犯罪嫌疑人杨智渊涉嫌分裂国家罪被批准逮捕
- 师从肖战 王楚钦全力以赴拼德班
- 每日聚焦:国联证券给予移为通信增持评级 公司业绩符合预期 在手订单有望逐步放量
- 热消息:芯瑞达:1.31亿股限售股将于4月28日起解禁上市 占公司总股本的71.46%
- 环球热头条丨1500亿储能龙头业绩超预期 锂价下行刺激行业高速增长
- 包皮手术多长时间恢复成原来模样_包皮手术多长时间恢复 世界看热讯
- 要闻速递:聂海胜开“思政课”分享励志故事
- 天天热点评!人贩子被抓后供出7起拐卖案续:一审法院由基层法院变为中院
- 一季度全国城镇新增就业297万人
- 美总统拜登批准俄克拉荷马州重大灾难声明 世界时快讯
- 人贩子被抓后供出7起拐卖案续:一审法院变为中院_天天热点评
- 华西证券给予报喜鸟买入评级 23Q1净利超预期 净利率创历史新高_全球焦点
- 纺织与服装行业:抖音助力童装商家春夏大促,英氏上线京东小时购-周报 每日视点
- 世界微速讯:思美传媒:会持续研究人工智能大模型与数字阅读的业务结合形式
- 春日有望回来!上海今有局部小雨 ,明日气温重回20℃以上
- 世界今头条!4月25日要闻提示
- 今日看点:新时代 新征程 新伟业·全力拼经济 各地在行动丨2023年“万人助万企”活动重点确定 从助企纾困到育链强链
- 天津 文明积分变成“真金白银”_环球热门
- 世界热门:下小颌畸形综合症_小下颌畸形是否会自愈
- 18城首轮土拍近半“触顶”成交 民营房企拿地积极性明显提升 全球今热点
- 全球快消息!国联证券给予远东股份买入评级:费用管控良好增厚利润 扩产在即提高业绩
- 市场销售明显回升,服务性消费稳步改善 消费呈现恢复向好态势
- 世界新消息丨股价暴涨近5倍 佰维存储一季度净亏1.26亿:半导体存储产品需求剧降
- 就业形势逐步恢复、总体稳定
- 热资讯!在芸芸众生中,短视频挖出了现象级的美
- 世界微资讯!淄博烧烤现象级出圈,带来哪些思考
- 会展业“动起来”,彰显香港经济活力|天天新动态
- 好想哭!中国龙芯之母生前心愿竟然是…… 看热讯
- 春耕备播忙,夏粮丰收基础实
- 东吴证券给予英科再生买入评级 2022年报点评:收入平稳增长 纵横拓展积极推进
- 银邦股份:参股公司飞而康是C919金属3D打印零部件合格供应商
- 海安开发区爱凌村农家书屋:二十四节气绘画 聚看点
- 【全球热闻】市场销售明显回升 服务性消费稳步改善 消费呈现恢复向好态势
- 【全球聚看点】用科技创新保护版权
- 产业飞地架起共富桥-天天看点
- 日系suv车型-日系车suv哪款好_今日视点
- 在县域找到数字就业机会
- 聚焦|“全村的希望”晋级世锦赛八强 大晖之后有小辉
- 淄博烧烤现象级出圈,带来哪些思考-世界热推荐
- 世界新资讯:助力早诊早筛 雅培创跃中心焕新升级暨首届健康论坛开
- 谷歌两AI部门合并 人工智能大战愈演愈烈|天天要闻
- 全球微动态丨西部地区高质量发展,关键在人
- 今日最新!康盛股份实控人将变为丽水国资委
- 当“董存瑞”遇到“邱少云”_全球微资讯
- 【手慢无】ThinkPad15锐龙版 2023款 15.6英寸商务轻薄笔记本电脑只要3999元 全球热推荐
- 断电可保障12天以上样本安全 华大智造推出最新深低温存储产品
- “两块玻璃”让老工业城市焕发新希望
- 数字孪生,为水利工程插上智慧之翼
- 人社部:推动扩大企业职工基本养老保险基金委托投资规模
- 天天微速讯:*ST银河将于4月26日解禁1750.0万股
- 成都灵活就业社保能不能办居住证? 热点在线
- 还珠格格第三部演员表全部_还珠格格第三部演员表
- 从三个关键词看雄安新区的“科技范儿”_世界微资讯
- 国家高新区一季度起势有力 多项经济指标实现两位数增长_天天热资讯
- 巧算“三笔账” 增收底气足——来自产粮大县龙江的春耕生产观察 快讯
- 即时焦点:洽洽食品(002557):4月24日北向资金减持35.47万股
- 为什么团建大家不愿意去?看懂这六点不吃亏
- 长远锂科业绩坐上“过山车”_每日头条
- 总额的百分比怎么得出_总额 天天关注
- 最新!全市路内停车泊位公示-热文
- 个人主要事迹材料_个人主要事迹 环球微资讯
- 观天下!qty是什么意思_qty的意思
- 焦点短讯!2022年我以租代购贷款买了一台面包车,做了2个月退回给公司了
- 天天观焦点:华森制药(002907):4月24日北向资金增持63.11万股
- 快播:拿斯·贺治
- 中国星辰|格物致知叩问苍穹
- 前四个月甘其毛都口岸成为全国首个过货量破千万吨的公路口岸_热闻
- OPPO旗下芯片公司迎重要高管孙成坤,媒体称其高端化转型“艰难” 天天热头条
- 世界快资讯:大商所:将平稳推出乙二醇和苯乙烯期权等品种
- 基金加仓了!砍掉新能源,换到计算机
- 洛克王国哪些宠物孵蛋厉害_洛克王国所有能孵蛋的宠物
- 环球速读:东北石油大学举办第六届全国油气地质大赛
- 西班牙司法和检察官协会宣布5月16日起无限期罢工