首页 > 其他分享 >一篇文章让你入门API测试

一篇文章让你入门API测试

时间:2023-05-16 17:31:56浏览次数:34  
标签:入门 代码 API 文档 测试 UI 测试用例 一篇

 

什么是API

API是Application Programming Interface的简写。

实现了两个或多个独立系统或模块间的通信和数据交换能力。

什么是API测试

一篇文章让你入门API测试_linux

API测试是不同于UI级自动化测试,其主要关注在系统架构的业务逻辑层,所以其主要关注不在于UI操作或用户感观上,更重调用逻辑关系。

与UI级自动化测试通过控制键盘输入和鼠标等操作不同的是:API测试,我们是通过工具或代码方式去调用特定的API,获取输出,并记录系统的响应。

API测试需要与应用程序的API进行交互,为了测试这些API,我们可以:

  • 使用测试工具来进行测试
  • 自己写代码的方式进行测试

API测试准备工作

首先你得获取目标测试系统的API相关文档,例如API对应的参数格式、期望返回结果等(一由开发提供文档,二自己抓包分析)

就我们所处国内的实际情况,在大部分情况下,开发都没有成型的文档。所以作为测试人员,你应该具备以下技能:

  • 优先去推动开发生成一份合适的API说明文档
  • 掌握抓包分析工具,能够自己去抓包分析形成API文档
  • 至少把http协议掌握,了解其报文结构
  • 对用户业务熟悉,能把API级业务逻辑和用户业务结合起来

API主要测试什么

API级测试至少应该覆盖以下测试要点:

  • 验证API所暴露的资源是否恰当的列出、创建、修改、和删除
  • 验证API是否功能可用以及用户友好,是否便于与其他平台集成
  • 安全测试,验证API是否包含了必要的认证以及敏感数据是否做了脱敏处理,是否支持加密或明码的http访问
  • 自动化测试,将API高度业务场景化,实现自动化测试
  • 文档,形成足够的文档,确保API质量的可维护行

API测试要注意什么

在API测试过程中要重点关注什么呢?

  • API测试用例要进行分类分组
  • 每个API测试用例都应该参数化
  • 在测试执行时,优先执行API测试
  • 测试用例应该尽可能做到可独立执行
  • 为了确保覆盖率,应该为API的所有可能输入进行测试数据规划

API测试能发现什么bug

在API测试时,一般会发现哪类型的bug呢?

  • 无法正确处理错误的深入条件
  • 缺少或重复功能
  • 可靠性问题
  • 安全问题
  • 多线程问题
  • 性能问题
  • 响应数据结构不规范问题
  • 有效参数值不能正确处理

API测试有哪些工具

  • SoapUI
  • JMeter
  • PostMan
  • 自己写代码

其他工具不推荐了,笔者首推SoapUI或自己写代码

API测试你可能遭遇哪些大坑

  • 无效的测试数据规划,导致你的参数穷举组合
  • 因为没有界面,开发又不提供文档的情况下,大部分人无从下手,会一脸懵逼
  • 平时测试大都关注正常的正常的情况,但要注意异常处理API必须进行测试,你懂的
  • 代码你要会点代码,会点HTTP协议,不然没法沟通交流

总结

把日常接口测试工作进行了大概的总结,希望对入门接口测试的朋友们有点效果,没效果那也没办法了,只能这样了。


开源优测

分享软件测试开源技术、经验、方案的首发平台

一篇文章让你入门API测试_python_02

长按二维码/微信扫描 关注开源优测

QQ群:260407012

 

标签:入门,代码,API,文档,测试,UI,测试用例,一篇
From: https://blog.51cto.com/deeptest/6285912

相关文章

  • 从龙套到跑路:自动化测试入门
     目标首先要定义自动化测试的目标是什么?在笔者的企业实践中,给自动化测试明确了两个目标:主动或被动方式触发主业务流全流程覆盖验证(应用于大规模持续集成验证)能够与日常手工业务测试协作交互(提升手工业务测试过程效率)基础要进行自动化测试实践,需要必备哪些技术功底呢?下面我们一起看......
  • matplotlib —入门基础
    importmatplotlib.pyplotaspltplt.rcParams["font.sans-serif"]=["SimHei"]plt.rcParams["axes.unicode_minus"]=False#解决中文乱码问题fig,ax=plt.subplots()#fig画板ax图fig.dpi=150#dpi函数,设置画板大小ax.bar(['5.5'......
  • javescript入门
    js组成和基本结构javascript缘由:可以实现html,css初级验证实现不了的复杂的验证减轻服务器压力(在发送请求到服务器之前用javescript验证客户端)w3c标准:结构化(html)表现化(css)行为化(javescript)javascript定义:脚本语言(一堆命令组合在一起,可以批量执行的)有一定的安全性javascript......
  • E840-TTL(4G05-DGC)型号4G/LTE数传模块快速入门测试教程
    亿佰特LTE数传模块E840-TTL(4G05-DGC)快速入门测试教程E840-TTL(4G05-DGC)是亿佰特推出的4G/LTE数传模块产品,是为实现串口设备与网络服务器,通过网络相互传输数据而开发的产品,该4G/LTE数传模块产品软件功能完善,覆盖绝大多数常规应用场景,用户只需通过简单的设置,即可实现串口到网络......
  • Hadoop入门
    2.Hadoop入门1.分布式和集群分布式:多台服务器相互配合完成一件工作(工作内部,各台服务器所完成的子任务不同)集群:多台服务器联合起来独立完成流水线式工作举例:洗衣店洗衣服如果分为四步:放入洗衣机、晾晒衣服、熨衣服、送给客户,每步都分别由不同种类的员工来做,那么这四个员工......
  • OData WebAPI实践-与ABP vNext集成
    本文属于OData系列文章ABP是一个流行的ASP.NET开发框架,旧版的的ABP已经能够非常好的支持了OData,并提供了对应的OData包。ABPvNext是一个重新设计的,面向微服务的框架,提供了一些非常有用的特性,包括分页查询等但是它并不能原生支持OData,我们需要自行实现。本文......
  • .NET 使用Camunda快速入门
    简介参考:https://www.cnblogs.com/lvdeyinBlog/p/16095603.html 一.工作流介绍1.什么是工作流工作流(Workflow),是对工作流程及其各操作步骤之间业务规则的抽象、概括描述。工作流将一套大的业务逻辑分解成业务逻辑段,并统一控制这些业务逻辑段的执行条件,执行顺序以及相互通信......
  • Dynamic Process Creation Using API [JBPM 5.1]
    [url]http://atulkotwale.blogspot.com/2012/01/dynamic-process-creation-using-api-jbpm.html[/url]HiFriends,Asyouguysallknowjbpmhascameupwithnewversion.Ithassomebeautifulfeatures.InthispostIwillshowyouhowcanwe......
  • nodejs 入门基本操作
    操作fs模块constpath=require("path");constfs=require("fs");/*相对路径是命令窗口执行的目录node提供了path模块来操作路径相关的api,其中__dirname是一个内置的变量,返回当前文件所在的目录*/constgetDirUrl=dir=>{returnpath.resolve(__dirname,dir)......
  • jointjs 入门
    链接http://www.bjhee.com/jointjs.html用JointJS做一个简单的功能控制图2019年1月30日 | 前端文章目录继上一篇介绍了GoJS之后,继续研究JS的绘图工具,毕竟GoJS有些小贵。这次选择了JointJS,完全开源,它还有一个商业版本叫Raddit,功能更强大。不过就我的需求场景,开源的Join......