初学者的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自动测试工具时,应考虑以下一些标准:
1、该工具是否支持测试您的AUT(被测应用程序)正在使用的API / Web服务类型?如果您在AUT使用SOAP服务时所选的工具支持测试RESTful服务,则没有任何意义。
2、该工具是否支持您的AUT服务所需的授权方法?以下是您的API可以使用的一些授权方法:No Auth、Bearer Token、Basic auth、Digest Auth、NTLM Authentication、OAuth 1.0、OAuth 2.0、Hawk Authentication、AWS Signature。这是一项必不可少的任务,因为你无法在未经授权的情况下开始测试API。
3、该工具是否支持从WSDL,Swagger,WADL和其他服务规范中导入API / Web服务端点?这是一项可选功能。但是,如果您要测试数百个API,这一点非常重要。
选择合适的验证方法
当响应状态代码告诉请求状态时,响应主体内容就是API通过给定输入返回的内容。API响应内容因数据类型和大小而异。响应可以是纯文本,JSON数据结构,XML文档等。通常,有一些验证API响应正文内容的基本方法:
1、将整个响应正文内容与预期信息进行比较,此方法适用于具有静态内容的简单响应。日期时间,增加的ID等动态信息会在断言中引起麻烦。
2、比较响应的每个属性值,对于JSON或XML格式的响应,很容易获得给定键或属性的值。因此,此方法在验证动态内容或单个值而不是整个内容时很有用。
3、比较匹配与正则表达式,与验证单个属性值一起,此方法用于验证具有特定模式的数据响应以处理复杂的动态数据。
创建正面和负面的测试
API测试需要正向测试和反向测试,以确保API正常运行。由于API测试被视为一种灰盒测试,因此两种类型的测试均由输入和输出数据驱动。
正向测试:
验证API是否已接收输入并按要求中指定的那样返回预期的输出。验证是否按要求指定返回了响应状态代码,无论它返回的是2xx还是错误代码。用最小的必填字段和最大的字段指定输入。
反向测试:
当预期的输出不存在时,请验证API是否返回了适当的响应。执行异常输入验证测试。使用不同的授权级别验证API的行为。
现场测试流程
建议在测试过程中安排每天的API测试执行。由于API测试执行快速,稳定且足够小,因此很容易以最小的风险将更多测试添加到当前测试过程中。
测试过程完成后,每天都可以得到这些测试的结果。如果发生失败的测试,则可以立即检查输出并验证问题以找到适当的解决方案。
API自动化测试
API测试流程非常简单,只需三个主要步骤:发送带有必要输入数据的请求;获取具有输出数据的响应;验证响应是否按要求返回
API测试最重要的部分既不是发送请求也不是接收响应。它们是测试数据管理和验证。通常,测试一些第一个API非常简单。因此,API测试任务很容易被低估。在常规手段方法无法达到你的目的时,使用编程技能可以极大拓展API测试的边界。
喜欢这样文章的可以关注我,我会持续更新,你们的关注是我更新的动力!需要更多java学习资料的也可以私信我

原文地址:https://blog.51cto.com/14623707/2466249

时间: 2024-10-13 17:57:53

初学者的Api测试技巧!值得收藏!的相关文章

初学者的API测试技巧

API(应用程序编程接口)测试是一种直接在API级别执行验证的软件测试.它是集成测试的一部分,它确认API是否满足测试人员对功能.可靠性.性能和安全性的期望.与UI测试不同,API测试是在没有GUI层执行操作的. API测试技巧 Web API有两大类Web服务:SOAP和REST.SOAP(简单对象访问协议)是W3C标准定义的一种标准协议,用于发送和接收Web服务请求和响应.REST(表示状态传输)是使用HTTP的基于Web标准的体系结构.与基于SOAP的Web服务不同,没有针对RESTful

21个值得收藏的javas技巧

在本文中列出了21个值得收藏的Javascript技巧,在实际工作中,如果能适当运用,则大大提高工作效率. 1 Javascript数组转换为CSV格式 首先考虑如下的应用场景,有一个Javscript的字符型(或者数值型)数组,现在需要转换为以逗号分割的CSV格式文件.则我们可以使用如下的小技巧,代码如下: var fruits = ['apple', 'peaches', 'oranges', 'mangoes']; var str = fruits.valueOf(); 输出:apple,

21个值得收藏的Javascript技巧

在本文中列出了21个值得收藏的Javascript技巧,在实际工作中,如果能适当运用,则大大提高工作效率. 1  Javascript数组转换为CSV格式 首先考虑如下的应用场景,有一个Javscript的字符型(或者数值型)数组,现在需要转换为以逗号分割的CSV格式文件.则我们可以使用如下的小技巧,代码如下: 1 2 var fruits = ['apple', 'peaches', 'oranges', 'mangoes']; var str = fruits.valueOf(); 输出:a

【Java并发编程】并发编程大合集-值得收藏

http://blog.csdn.net/ns_code/article/details/17539599这个博主的关于java并发编程系列很不错,值得收藏. 为了方便各位网友学习以及方便自己复习之用,将Java并发编程系列内容系列内容按照由浅入深的学习顺序总结如下,点击相应的标题即可跳转到对应的文章    [Java并发编程]实现多线程的两种方法    [Java并发编程]线程的中断    [Java并发编程]正确挂起.恢复.终止线程    [Java并发编程]守护线程和线程阻塞    [Ja

创业的态度 值得收藏

本文来自First Round Review,他们准备的文章既讲故事,还同时向创业者提供可操作的建议,以助力打造优秀的公司.在最初创立的时候,Squarespace只是Anthony Casalena为自己搞的个人网站,在Wordpress和Drupal面前,它不值一提.今天,它已然崛起,累计融资达7850万美元.用了对的方法,解决了对的问题,它于是逐渐壮大成了今天的样子... Squarespace 的最初版本只是 Anthony Casalena 为自己搞的个人网站.这是一个普通的创业故事.

各种常用的JSON接口,开动你的大脑你就可以做出各种应用,值得收藏

各种常用的JSON接口,开动你的大脑你就可以做出各种应用,值得收藏 浏览:1412 发布日期:2014/01/27 分类:技术分享 这里为大家搜集了一些能够返回JSON格式的服务接口.部分需要用JSONP调用.其中一些接口提供用例参照:http://www.bejson.com/webInterface.php 天气接口气象局接口:http://m.weather.com.cn/data/101010100.html 解析 用例 音乐接口:虾米接口http://kuang.xiami.com/a

[翻译] API测试的最佳实践 - 介绍

API测试的最佳实践 - 介绍 在上一篇“是什么让API测试很叼”一文中,我们讨论API与其他形式的软件测试的差异.部分是因为API之间的通信压根就没考虑让你能读懂,纯粹是为了方便计算机之间的交互而设计的.另一部分是由于业务层面上有很多因素影响了API的性能和功能. 当然,值得庆幸的是,你可以参考一些已有的最佳实践,增加你维护API质量的几率.在本章节中,你将学到这些最佳实践.这些最佳实践也是有难易等级的,大体分两类,一类是白色腰带的,适合那些初学API测试的人,一类是黑带,适合有经验的API测

10个A/B测试技巧“引爆”电商邮件营销

关于A/B测试,全球领先的智能化营销服务机构webpower的定义是:在特定情况下将某个邮箱地址列表分为若干个部分分别发送,同时将收件人对于不同版本的反馈结果进行对比分析.通常测试变量有主题行.发件人名称.发送时间或电子邮件内容等元素.在电子邮件营销活动中,这种测试方式是非常有价值的,它的对比结果可以最直观的了解营销活动的成效,用于提高邮件的打开率.点击率和转化率. 假设你认为一个橙色的按钮会比绿色按钮更有效,验证这一结论需要你应用这两个按钮分别发送一个A/B测试的邮件活动,然后看哪个按钮获得最

[翻译] API测试最佳实践 - 组织你的测试

组织你的测试 适用级别:初学者 在最底层,一个测试步骤(Test Step)用来验证一个单独的操作.组合若干测试步骤到测试用例,允许你验证那些被分隔出来的一个一个的功能,这些功能是应用程序所需要的.接下来,若干个测试用例可以组成一个测试套件(Test Suite),验证其中一个交付物的完整功能,这是用户想要的.最后,组合若干测试套件到一个测试工程(Test Project),就能验证一个完整产品的功能了. 词语工程(Project)和套件(Suite)某些情况下可以互换使用,但是意思都差不多,包