应用程序编程接口,通常称为 API,是软件开发生命周期的一个重要方面,不仅从开发的角度来看,而且从测试的角度来看。这些 API 促进不同系统之间的交互以交换数据。因此,彻底测试这些 API 以确保应用程序的无缝运行变得极其重要。
在本文中,我们将探索使用 Cypress 测试框架进行 API 测试,并了解如何自动化 API 来进行高效测试。我们将在本文中介绍以下几点 -
API 测试涉及向后端服务器发送 HTTP 请求(无论是 GET、POST、PUT、DELETE(或其他方法))并检索响应。一旦检索到响应,就会对其进行验证以确保已收到预期值。下面列出了 API 测试的一些关键方面
Cypress 是一种流行的前端测试工具,用于浏览器和端到端自动化测试。 Cypress 具有网络请求功能,这使其成为 API 测试的不错选择。 Cypress 为 API 测试提供的一些关键功能是 -
详细的文档 –Cypress 拥有详细记录的请求和断言,可以轻松获得运行支持。
Cypress 具有多种功能,可帮助您有效且高效地执行 API 测试。下面讨论一些功能 -
现在我们了解了 Cypress 如何帮助自动化我们的 API,让我们使用 Cypress 编写一个简单的 API 测试。但在此之前,您需要确保满足以下先决条件 -
在本文中,我们将介绍使用 GET、POST、PUT 和 DELETE 方法发送 HTTP 请求的简单场景。但在开始编写测试脚本之前,我们将设置环境。
柏树 API
2.接下来,打开 Visual Studio Code 编辑器并打开在步骤 #1 中创建的文件夹。
3.现在您已经打开了该文件夹,下一步是设置节点项目。为此,请在终端中使用命令 npm init -y,这将创建一个 package.json 文件。
4.现在,我们将使用命令 npx cypress install 从终端安装 Cypress(如果尚未安装)。
5.现在,我们将为测试创建配置文件,为此,我们将在终端中运行命令 npx cypress open。
6. Cypress 工具打开后,选择 E2E 测试。
7.单击下一个屏幕上的“继续”。
8.配置文件设置完成后,返回 Visual Studio Code 编辑器,您将看到配置文件已创建。
9.至此Cypress已经安装成功,环境也已经搭建完毕。我们现在将开始编写测试。
我们将使用一些虚拟 API 调用来演示 Cypress API 自动化。
在 Visual Studio Code 编辑器中,在 Cypress 目录下创建一个文件夹 e2e。在 e2e 文件夹下,您可以创建另一个名为 APITests 的文件夹。请注意,您可以根据需要选择文件夹名称。
现在我们将开始编写我们的第一个测试文件。我们将在 APITests 文件夹下创建一个文件。我们将其命名为 HttpGetRequest。该文件名的扩展名为 .cy.js,如下面的快照所示 -
现在我们开始编写主要代码。在此之前,让我们看一下请求的基本语法 -
cy.request(METHOD,url,body)
在使用 Cypress 发出的请求中,url 是必填参数,但 Method 和 body 等其他参数是可选的。您可以查看 Cypress 官方文档中的不同请求语法,以更好地了解我们如何以不同的方式使用它。
在我们的示例场景中,我们将使用 GET 方法来获取一些资源,因此我们将使用 Method 和 url 作为 cy.request 的参数。
cy.request('GET','https://dummy.restapiexample.com/api/v1/employees')
此命令将对服务器进行 API 调用。
接下来,我们将断言一些响应值,例如状态代码。
.its('状态')
.should('等于',200);
这行代码将验证响应状态代码并断言其值为 200。
让我们看看这段代码组合在一起后的样子:
描述('HTTPGet',()=>{
it('GET 请求',()=>{
cy.request('GET','https://dummy.restapiexample.com/api/v1/employees')
.its('状态')
.should('等于',200);
})
})
编写完 GET 请求的代码后,我们将执行相同的操作。要执行它,我们可以使用两种方式中的任何一种 -
要通过终端执行 Cypress 代码,请打开终端窗口并简单地传递命令:
npx cypress run –spec“文件路径”
在上面的命令中,文件路径是您要执行的文件的相对路径。下面的快照显示了 HTTPGetRequest 文件在我的系统上的执行情况 -
可以看到测试执行成功,我们的API测试已经通过了。
现在让我们尝试通过 Cypress Tool 执行相同的测试。
1.只需编写命令 npx cypress open 即可打开该工具。
您已经执行了第一个 Cypress API 自动化测试。我们现在将增强代码以执行其他几个 HTTP 方法。
执行 POST HTTP 请求的代码-
描述('HTTPGet',()=>{
it('POST 请求',()=>{
cy.request({
方法:'POST',
url: 'https://dummy.restapiexample.com/api/v1/create',
正文:{
"name":"测试帖子",
"工资":"1234",
"年龄":"23"
}
})
.its('状态')
.should('等于',200);
})
})
执行上述代码后,日志将显示执行结果,如下所示-
在接下来的演示中,我们将使用另一个假 API 集合,并了解 HTTP 请求方法如何为它们工作。
执行 PUT HTTP 请求的代码-
描述('HTTPPut',()=>{
it('PUT 请求',()=>{
cy.request({
方法: 'PUT',
url: 'https://jsonplaceholder.typicode.com/posts/1',
正文:{
id: 1,
title: '这是 PUT 更新',
body: '这是 PUT 更新正文',
用户 ID: 1,
}
})
.its('状态')
.should('等于',200) ;
})
})
上面代码的执行结果显示在下面-
执行删除 HTTP 请求的代码(请注意,我在上面使用的同一示例中附加了以下代码段)-
it('删除请求',()=>{
cy.request({
方法:'删除',
url: 'https://jsonplaceholder.typicode.com/posts/1',
})
.its('状态')
.should('等于',200) ;
})
由于 PUT 和 DELETE 请求都在同一个文件中,因此这两个方法都被执行,结果如下所示 -
所以,就是这样,您现在知道如何使用 Cypress 执行不同方法的基本 HTTP 请求。您现在可以继续尝试在您的项目中实施 Cypress API 测试,看看您能够如何轻松地以快速周转时间测试 API。
在了解了 API 和 Cypress 的 API 测试基础知识后,我们得出以下几点结论 -
来源:本文最初发表于 testgrid.io。
以上是掌握 Cypress API 测试:带有示例的综合指南的详细内容。更多信息请关注PHP中文网其他相关文章!