如何使用Docker容器和Postman测试您的应用程序

发布时间 2023-06-18 07:02:08作者: 晓风晓浪

让我们使用 Docker 容器和 Postman 测试我们的 API。

我们将测试使用 Node.js、Express 和 Postgres 创建的简单 CRUD 应用程序。

在这个例子中,我们将使用:

  • Postman:测试我们的API。

  • Newman:运行我们的 Postman 系列。

  • 玩转 Docker:部署我们的应用程序。

  • Docker:运行我们的应用程序。

分步程序

  1. 介绍

  2. 克隆存储库并修改 docker-compose.yml 文件

  3. 在本地运行和测试应用程序

  4. 部署我们的应用程序。

  5. 创建并导出 Postman 集合

  6. 使用容器测试应用程序

  7. 结论

(更多优质内容:java567.com)

0.?简介

我们将使用 Docker 和 Postman:

  • Docker:运行我们的应用程序。

  • 邮递员:测试一下。

?‍?邮递员

Postman 是一个流行的协作平台和 API(应用程序编程接口)客户端,允许开发人员设计、测试和记录 API。它提供了一个用户友好的界面,使用户能够请求 API 并检查响应并创建和管理 API 的自动化测试。

此外,Postman 允许团队共享请求集合并协作进行 API 开发和测试。

Postman 非常酷,但我们将在本文中通过将它与 Docker 一起使用来使其更加令人难以置信。

? 码头工人

Docker 是一个容器化平台,允许开发人员将应用程序及其依赖项打包到称为容器的独立单元中。

容器彼此隔离,并与底层主机系统隔离,使它们具有可移植性,并且易于跨不同环境部署。Docker 提供了一种简单且一致的方式来构建、分发和运行应用程序,这有助于简化开发过程并减少设置和管理复杂应用程序架构所需的时间和精力。

在本文中,我们将使用 docker 来运行我们的应用程序并使用 Postman 测试应用程序。

1. ? 克隆存储库

我们将使用我在另一个视频中创建的 JavaScript 项目。它是一个使用 Node.js、Express 和 Postgres 的简单 CRUD 应用程序。

 git clone https://github.com/FrancescoXX/crud-node-live.git

 

现在进入存储库

 cd crud-node-live

 

然后用你最喜欢的 IDE 打开这个文件夹。我正在使用 VSCode。

 code .

 

修改 docker-compose.yml 文件。

要测试此应用程序,您可以构建自己的映像或使用我创建并推送到 Dockerhub 的映像。

要使用我的,请删除build第 6 行的指令,因为我们将使用来自 Dockerhub 的现有图像

这是最终的docker-compose.yml文件(注意没有build说明)

 version: "3.9"
 
 services:
  node_app:
    container_name: node_app
    image: francescoxx/node_live_app
    ports:
      - "3000:3000"
    environment:
      - PG_DB=node_live_db
      - PG_USER=francesco
      - PG_PASSWORD=12345
      - PG_HOST=node_db
    depends_on:
      - node_db
 
  node_db:
    container_name: node_db
    image: postgres:12
    ports:
      - "5432:5432"
    environment:
      - POSTGRES_DB=node_live_db
      - POSTGRES_USER=francesco
      - POSTGRES_PASSWORD=12345
    volumes:
      - node_db_data:/var/lib/postgresql/data
 
 volumes:
  node_db_data: {}

 

2. ? 在本地运行和测试应用程序

在本地运行应用程序

让我们在本地运行这两个 Docker 服务(容器)。

运行 Postgres 容器:

 docker compose up -d node_db

 

运行节点应用程序:

 docker compose up -d node_app

 

并检查它们是否都已启动并正在运行:

 docker ps -a

 

输出应与此类似:

 

在本地测试应用程序

在此示例中,我们将仅测试两个端点:

使用 Postman,我们可以GET向localhost:3000

 

我们可以GET请求localhost:3000/users

 

我们没有任何用户,所以我们得到一个空数组。

现在我们已准备好部署此服务并使用容器对其进行测试。

3. ? 部署应用

您可以使用任何容器服务,例如 AWS、Azure 或 Google Cloud 平台。

重要的部分是要有一个最终的公共 IP 地址,以便使用 Postman 对其进行测试。

我将使用免费且易于使用的 Play with Docker。

玩转 Docker

访问此链接: https: //labs.play-with-docker.com/并单击Start

 

这将创建一个 4 小时的会话,您可以在其中创建和测试您的容器。

点击+ Add new instance

 

在右侧,您应该会看到一个终端和实例。这个实例有一个公共地址。

 

部署应用程序

部署应用程序非常容易。

我们需要复制 docker-compose.yml 文件并将其粘贴到操场上。

您可以使用 ssh 执行此操作,也可以将文件拖放到 playground 上。

 

通过键入检查 docker-compose 文件是否存在

 ls

 

 

现在让我们运行我们之前在本地运行的相同的两个命令:

 docker compose up -d node_db
 docker compose up -d node_app

 

让我们检查一下

 docker ps -a

 

请注意,现在有 2 个端口打开:3000和5432

 

如果单击3000旁边的OPEN PORT,您应该会看到应用程序在公共 IP 上运行(如果您使用任何云提供商,请检查公共 IP)

 

让我们举个例子

4. ?️邮差收藏

打开 Postman,如果您还没有创建一个新的公共空间,可以随意命名。

就我而言,我创建了一个名为public-francesco

现在通过单击创建一个新集合Create Collection

 

重命名为postman-docker

 

GET request在应用程序的公共 IP 地址添加一个新的,SAVE它(右上角)

 

复制它(右键单击第一个请求)并命名新的Get All Users

这个请求将是一个GET request to <public-server-ip>:/users

 

⚠️记得保存要求

您可以通过直接在 Postman 中运行来测试此 Collection:

 

 

我们现在准备导出这个集合并使用容器对其进行测试

6. ? 使用容器测试应用程序

我们将使用 Newman,它是 Postman 的命令行收集运行程序。它允许您直接从命令行运行和测试 Postman 集合。它在构建时考虑了可扩展性,因此您可以轻松地将它与您的持续集成服务器和构建系统集成。

导出 Postman 集合

现在将此集合导出为 JSON 文件。您可以通过单击集合名称右侧的三个点,然后单击Export

 

另存为node-collection(无扩展名)

 

现在是时候运行这个集合了。

使用 Newman 运行 Postman Collection

⚠️ 对于 Windows 用户:使用命令提示符或 Powershell

导航到文件node-collection所在的文件夹

 

并运行此命令:

 docker run -v <postman-collection-path>:/etc/newman -t postman/newman run node-collection

 

替换<postman-collection-path>为文件所在文件夹的路径node-collection。

就我而言,它是/c/workspace/postman-collection-test

 

您将获得请求列表。

7.?结论

我们做到了!我们使用以下方法测试了该应用程序:

  • 邮递员集合

  • 新人

  • 码头工人

(更多优质内容:java567.com)