初学者的Api测试技巧!值得收藏!

初学者的Api测试技巧!
API测试是一种直接在API级别执行验证的软件测试。它是集成测试的一部分,它确认API是否知足测试人员对功能、可靠性、性能和安全性的指望。与UI测试不一样,API测试是在没有GUI层执行操做的。
API测试技巧
Web API有两大类Web服务:SOAP和REST。
SOAP(简单对象访问协议)是W3C标准定义的一种标准协议,用于发送和接收Web服务请求和响应。
REST(表示状态传输)是使用HTTP的基于Web标准的体系结构。与基于SOAP的Web服务不一样,没有针对RESTful Web API的正式标准。
如下是API测试的10条基本技巧:
指定API输出状态
您须要在API测试中验证的最多见的API输出是响应状态代码。
新API测试人员熟悉验证响应代码是否等于200以肯定API测试是经过仍是失败。这不是错误的验证。可是,它并不反映API的全部测试方案。
在通用标准中,全部API响应状态代码均分为五类。状态码的第一位数字定义响应的类别。后两位没有任何类别或分类做用。
第一位数有五个值:
1xx(信息性):收到请求并继续进行处理
2xx(成功):成功接收,理解并接受了请求
3xx(重定向):须要采起进一步的措施来完成请求
4xx(客户端错误):请求包含错误的语法或没法实现
5xx(服务器错误):服务器没法知足看似有效的请求
API的实际响应状态代码由构建API的开发团队指定。
专一于小型功能性API
在测试项目中,老是有一些简单的API,只有一个或两个输入,例如登陆API,获取身份令牌API,运行情况检查API等。可是,这些API是必需的,被视为进入其余业务的“门API”。首先关注这些API,将确保API服务器,环境和身份验证正常工做。
还应该避免在一个测试案例中测试多个API。若是发生错误,这是很痛苦的,由于您将不得不按顺序调试API生成的测试数据。保持测试尽量简单。在某些状况下,若是须要调用一系列API来实现端到端测试流程,这些任务应该在全部API都通过单独测试以后完成。
分类API
一个测试项目可能有几个甚至数百个用于测试的API。强烈建议将它们分类,以更好地进行测试管理。它须要采起额外的步骤,可是将大大帮助您建立具备高覆盖率和集成度的测试方案。
同一类别的API共享一些公共信息,例如资源类型,路径等。以相同的结构组织测试将使您的测试在集成流程中可重复使用和扩展。
利用自动化功能进行API测试
尽量早地利用自动化进行API测试。如下是自动化API测试的一些重要好处:
测试数据和执行历史记录能够与API信息一块儿保存。这使得之后从新运行测试变得更加容易。
API测试稳定且较少更改。API反映了系统的业务规则。API的任何更改都须要明确的要求;所以,测试人员始终能够及时了解更改并进行调整。
与Web UI测试相比,测试执行速度要快得多
API测试被视为灰盒测试,用户能够在其中发送输入数据并获取输出数据以进行验证。数据驱动方法的自动化(即在同一测试场景中应用不一样的数据集)能够帮助增长API测试覆盖率
选择合适的自动化工具
利用API测试的自动化功能的另外一步骤是从市场上的数百种选择中选择最合适的工具或一组合适的工具。选择API自动测试工具时,应考虑如下一些标准:
一、该工具是否支持测试您的AUT(被测应用程序)正在使用的API / Web服务类型?若是您在AUT使用SOAP服务时所选的工具支持测试RESTful服务,则没有任何意义。
二、该工具是否支持您的AUT服务所需的受权方法?如下是您的API可使用的一些受权方法:No Auth、Bearer Token、Basic auth、Digest Auth、NTLM Authentication、OAuth 1.0、OAuth 2.0、Hawk Authentication、AWS Signature。这是一项必不可少的任务,由于你没法在未经受权的状况下开始测试API。
三、该工具是否支持从WSDL,Swagger,WADL和其余服务规范中导入API / Web服务端点?这是一项可选功能。可是,若是您要测试数百个API,这一点很是重要。
选择合适的验证方法
当响应状态代码告诉请求状态时,响应主体内容就是API经过给定输入返回的内容。API响应内容因数据类型和大小而异。响应能够是纯文本,JSON数据结构,XML文档等。一般,有一些验证API响应正文内容的基本方法:
一、将整个响应正文内容与预期信息进行比较,此方法适用于具备静态内容的简单响应。日期时间,增长的ID等动态信息会在断言中引发麻烦。
二、比较响应的每一个属性值,对于JSON或XML格式的响应,很容易得到给定键或属性的值。所以,此方法在验证动态内容或单个值而不是整个内容时颇有用。
三、比较匹配与正则表达式,与验证单个属性值一块儿,此方法用于验证具备特定模式的数据响应以处理复杂的动态数据。
建立正面和负面的测试
API测试须要正向测试和反向测试,以确保API正常运行。因为API测试被视为一种灰盒测试,所以两种类型的测试均由输入和输出数据驱动。
正向测试:
验证API是否已接收输入并按要求中指定的那样返回预期的输出。验证是否按要求指定返回了响应状态代码,不管它返回的是2xx仍是错误代码。用最小的必填字段和最大的字段指定输入。
反向测试:
当预期的输出不存在时,请验证API是否返回了适当的响应。执行异常输入验证测试。使用不一样的受权级别验证API的行为。
现场测试流程
建议在测试过程当中安排天天的API测试执行。因为API测试执行快速,稳定且足够小,所以很容易以最小的风险将更多测试添加到当前测试过程当中。
测试过程完成后,天天均可以获得这些测试的结果。若是发生失败的测试,则能够当即检查输出并验证问题以找到适当的解决方案。
API自动化测试
API测试流程很是简单,只需三个主要步骤:发送带有必要输入数据的请求;获取具备输出数据的响应;验证响应是否按要求返回
API测试最重要的部分既不是发送请求也不是接收响应。它们是测试数据管理和验证。一般,测试一些第一个API很是简单。所以,API测试任务很容易被低估。在常规手段方法没法达到你的目的时,使用编程技能能够极大拓展API测试的边界。
喜欢这样文章的能够关注我,我会持续更新,大家的关注是我更新的动力!须要更多java学习资料的也能够私信我java

相关文章
相关标签/搜索