Cypress 如何进行 API 的数据请求?

Cypress 是一个现代化前端测试框架,可以用于自动化 web 应用程序的测试。Cypress 能够模拟用户操作后端 API 并获取数据,对于前端开发和测试来说,这是一个非常有用的功能。本文将向您介绍如何在 Cypress 中进行 API 数据请求,并提供示例代码和实战经验。

环境

在开始编写代码之前,需要确保您已经安装了 Cypress 并在本地环境中建立了一个项目。如果您还没有安装,请前往 Cypress 官方网站 下载并查看安装指南。

Cypress API

Cypress 为我们提供了请求 http 的 API,需要使用 cy.request命令。这个命令的作用是本地执行一个 HTTP 请求并返回一个包含所有响应数据的对象。我们只需要调用此命令并传入必要的参数即可。例如:

----------------------------------------------------------

请注意,在这个简单示例中,我们只是 GET 了一个 URL ,此时 Cypress 会同步执行此请求和处理响应的异步任务。如果您需要在 Cypress 测试中进行其他操作,例如 UI 测试,需要使用 cypress 组件(见下文)将此命令包装在异步块中。

如果需要指定响应体的类型,例如 JSON 或 XML 数据,请使用cy.request的配置对象作为参数,例如:

------------
    ------- -------
    ---- ---------
    -------- -
        --------------- ------------------
    --
    ----- -
        ------ ---- ------
        ---------- -----
    -
--

这个示例中,我们尝试提交一个带有标题和完成状态的新待办事项,并指定 header 以正确处理请求。这个请求将返回一个成功的响应,其中包含新创建的待办事项 ID。我们可以使用此 ID 进行其他请求或操作。

组件测试

一般来讲,我们需要在测试 UI 组件的同时开发和运行图像测试。Cypress 的“cy.request”命令可以轻松完成此任务,只需使用 Cypress 的 component 包装即可。

例如,在运行 e2e 测试时,我们可以使用“cy.request”与印尼 API 交互以确保所需的位置和其列表与后端数据保持一致。在此示例中,我们将印度尼西亚克鲁比市的位置与服务端进行同步。

------ - ---------------------- - ---- ---------
------ - ------------- - ---- ----------------

-------------- ---- ---------- -- -- -
    ----- ------------ - -
        --------- -
            ----- ----------- ------ -------- ----- -----------
            ---- --------
            ---- ---------
        --
        --------- -
            ----------- -----
            ---------- -------------------------------------------------
            ----- -------------- ---- ---- ------
            ---- -----
            ---------- --------
            ------------------ ------
            ----------------- -----
        --
    --

    ------------------ --- ---------- -- -- -
        -- ---- --- --- ------- ----- ---- ---- --- -- ------ -------
        -------------------- ---------------------------------

        ------------------ ------ ----- ---- ---------- --------- ----- --------- ---- ---

        ------------------------------------------------------

        ------------------
            -- -- -------------------------------------
            - ---- ------------ ------- ------- ------------- - --- - - --
        --------- -- -
            --------------
                -----------------
                -
                    --------- -
                        --------- --------------------------
                        ---------- --------------------------
                    --
                    --------- -
                        ----- ---------------------------
                        ------- --------------------------------
                    --
                --
            --
        ---
    ---
---

在此示例中,我们使用了一个包装函数,将需访问的 URL、方法和 JSON 数据作为参数进行了归一化处理。在运行 wrappedRequest 时,assertion 中我们只需要测试此函数或 API 的输出即可。

结论

在 Cypress 中进行 API 数据请求是非常有用的,可以帮助我们在开发和测试过程中获取和分析前端数据。在本文中,我们操作了“cy.request”命令和 Cypress 组件,向您介绍了如何在 Cypress 中运行 API 数据请求和测试。希望这篇文章对您有所帮助,您可以将它作为您的参考资料,以便在今后的测试工作中用到。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6732ebad0bc820c5823f851e