自动化测试工程师正生活在一个大变革的时代,API测试是任何严谨的自动化测试策略所必须的。
测试人员需要停止将所有精力集中在难以维护的UI自动化测试上。
敏捷测试和持续集成测试(CI/CD)困扰了标准的测试自动化实践,导致测试工程师重新思考如何实现自动化。
如果您想在测试自动化工作中取得成功,那么就需要了解API和API测试。
这是一本很长的指南,下面是我们将要介绍的内容的概述:
1.什么是API测试?
2.为什么API测试很重要
3.什么是API测试金字塔
4.什么是API负载测试
5.如何选择API测试工具
6.如何测试Web服务
7.Web服务测试术语
8.什么是HTTP
9.什么是RESTAPI
大家可以暂时忘掉GUI自动化测试。今天的自动化工程师需要从GUI的底层深入到API层。
API测试之所以重要有很多原因:
更多测试覆盖率
执行速度
持续集成和交付需要快速反馈
物联网(IOT)
在我们进入API测试工具和技术之前,让我们快速看看什么是API?
1.什么是API测试?应用程序编程接口(API)是作为软件组件接口的规范。虽然大多数功能测试都涉及到测试网页或.NET表单等用户界面,但API测试会绕过用户界面并通过调用应用程序的API直接与应用程序通信。
API测试允许用户测试无头技术(HeadlessTesting),如JMS、HTTP数据库和Web服务。
例如,许多现代web应用程序的业务逻辑都存在于后端中,我们需要通过API来调用后台逻辑。当与前端交互时,正在对这些支持的微服务进行呼叫。因此,api允许应用程序的不同部分相互通信。
什么是无头测试大多数无头测试包括绕过GUI,将请求直接发送到应用程序的后端或服务,并在验证响应的同时接收响应,以确保事情按您期望的那样工作
上面的例子通常被称为客户机/服务器关系。客户端通过请求资源来发出请求,而请求出去寻找将满足请求的服务器。服务器定位所需资源,然后将响应发送回客户端。
2.为什么API测试很重要?随着敏捷开发成为大多数组织的标准,我们开发软件和自动化测试的方式发生了巨大的变化。在敏捷开发之前,自动化的大部分时间都是在图形用户界面(GUI)上完成的。这是像Selenium和UFT/QTP这样的工具可以处理的部分。
但是如果你已经做了很长时间的自动化测试,你就会知道这些类型的测试是多么耗时、脆弱和难以维护。
很多自动化测试书都是关于组织如何投入时间和精力来创建GUI测试自动化框架的,但随着时间的推移,这些框架的可靠性却变得令人沮丧,以至于人们不再使用它,软件变成了货架上的东西。
而且,用户界面的GUI自动化测试往往需要很长时间才能运行完成。对于某些敏捷实践(如连续构建CICD),当开发人员提交新代码时,从GUI回归测试套件接收反馈所需的时间是不可接受的。
API快速反馈在这种情况下,需要更快的反馈。
bug发现得越早越好,因为开发人员立即知道他们所做的代码更改破坏了构建,需要查看。在测试驱动流程中,用户需要大量的测试集才能快速、频繁地运行,并且必须能够将它们集成到开发生命周期中。
别误会-GUI测试仍然非常重要;它是唯一真正测试用户在生产过程中如何体验应用程序的测试类型。某些缺陷只能由GUI测试捕获。换句话说,尽管GUI很重要,但它不应该是用户