那些具有使用API经验的人将听说过并熟悉无处不在的API测试和开发工具。但是,Nutanix Developer Portal上有很多内容专门针对那些刚开始使用Nutanix REST API的内容,包括设置您的第一个请求。今天的文章将介绍如何设置测试环境,以使该测试变得快速,容易。
Step 1 – 安装 Postman
这有点不费吹灰之力。如果尚未安装,请访问 https://getpostman.com ,下载最适合您的操作系统的版本(我使用Ubuntu Linux 19.04和Cinnamon Desktop Environment)并安装它。 不必担心现在就自定义安装或设置-我们将稍后进行一些介绍。
Step 2 – 基础设定
在这里,我将介绍安装Postman后所做的一些基本更改。 要获得这些设置,请单击“邮递员设置”图标(看起来像扳手),然后选择“设置”。
Postman “Settings” option
完成所有操作后,以下是我的常规标籤。
Postman 设置 – 常规标籤
Step 3 – 创建 Collection
因为我们都是某种类型的开发人员,所以我假设某种程度的组织和秩序对我们所有人而言都是第二自然。 考虑到这一点,创建一个Postman Collection来组织我们的事情是有意义的。
在Postman UI的左侧,单击“新建收藏集”。 给集合起一个名字,例如Nutanix REST API Testing。现在忽略“授权”选项卡; 我们很快会再谈。转至“变量”标籤,我们将开始确保工作流程尽可能高效。Step 4.1 – 环境变数
Postman最简单但也是最好的功能之一就是使用变量的能力。 为何如此有用的一个很好的例子是Prism Central“ vs” Prism Element。 在测试各种Nutanix REST API请求时,通常会在Prism Central和Prism Element之间进行切换,对多个请求使用相同的凭据,并在多个位置使用相同的实体UUID。 每次手动输入这些值,然后在值更改时根本不需要更改每个实例。 作为附带说明,Postman还可以获取您保存的API请求,将其导出,并允许您与同事共享请求集合。 在这种情况下,您可能不想共享特定的环境设置,但仍然允许您的同事一次只输入一次信息。 解决所有这些问题的方法是使用Postman变量。
如您所料,第一件事就是我们没有定义变数。
未定义变数的 Postman Collection
在本文中,我将完全按照上文所述进行操作。 Prism Central和Prism Element IP地址都将经常使用,但是都将使用相同的凭据。 除了安全性最佳实践,在测试过程中这并不少见。 请注意,Postman绝对可以管理全局变量,即每个集合以及整个Postman工作区中可用的变量。 在此示例中,我仅定义它们可用于特定集合的位置。
点击添加新变量链接,然后输入变量名称为pc_ip。 初始值将与共享集合的任何人共享,如果每个人都使用相同的变量值,则该初始值会很好。 当前值未在任何地方同步,仅在本地可用。 在为pc_ip设置初始值时,请注意“当前值”也将设置为相同的值。然后,针对该集合需要的其他变量重複此过程,如下表所示。Step 4.2 – 使用变数
设置请求时,使用上面定义的变量很简单。 需要引用变量的地方,语法如下:{{variable}}。 查看下面的请求,请注意,没有直接输入Prism Central IP地址,而是通过变量引用添加了该地址。 用户名和密码也做了同样的事情。
使用 Postman 变数代替手动输入 Prism Central IP 地址
使用 Postman 变数代替手动输入用户名和密码
Step 5 – Pre-request Scripts
下面的第5步留在这里,仅供请求前脚本参考。当前版本的 Postman 确实支持JSON请求有效载荷内的变量替换。
默认情况下,Postman似乎在POST请求的正文中不允许使用{{variable}}语法。我敢肯定那是不正确的,但是由于某种原因,发送带有这样的变量的请求,这样只会导致在该变量的位置不发送任何内容。但是,要使该工作正常进行,需要以预请求脚本的形式进行一些前功。
这是POST请求的简单JSON负载:
{ "spec":{ "name": "{{vm_name}}", "resources":{ } }, "api_version":"3.1.0", "metadata":{ "kind":"vm" }}
{{vm_name}} 变数不会像您期望的那样被替换。但是,转到“ Pre-req”选项卡并将其添加为请求前脚本可以解决此问题。
var vm_name = pm.variables.get("vm_name");postman.setEnvironmentVariable("vm_name", vm_name)
Step 6 – 输入 Sample Collection
如果没有看到其中的一些内容,那么这样的文章是不完整的。考虑到这一点,我提供了一个 Postman 集合,其中包含一些示例 Nutanix REST API 请求(v1,v2.0和v3)。让我们将其导入。
前往NutanixDevs Github并下载Nutanix REST API Testing.postman_collection.json。切换到邮递员,然后在主界面的左上角附近,点击导入按钮。选择选择文件(或将文件拖放到UI中),然后浏览到您刚刚下载的JSON文件。此阶段没有“确定”按钮,因此,如果一切顺利,您将在 Postman UI 的右下角看到类似这样的消息。
成功导入 Postman Sample Collection
并且,在集合的左侧,您会看到许多示例API请求。 对于此屏幕截图,我扩展了新集合中的每个分支。
输入的 Postman Sample Collection
该集合具有许多为您预先配置的功能。
授权已设置为使用集合範围变量已将所有请求设置为继承父项(即集合)的授权添加了变量列表,以演示如何在请求中使用它们(以下屏幕截图)
用于样本API请求的预定义集合範围变量
不过,您会从第4步中回想起,任何变量的“当前值”仅是局部变量,不会随集合一起导出。这就是为什么只有几个变量具有当前设置的值的原因。再深入一点,您会看到确实设置了值的变量是可能在整个环境中使用的变量。例如,{{username}}可以在测试阶段共享,并且无论您身在何处,CentOS 8 ISO的URI都可能有效。 CentOS 8图片镜像的“免责声明”位于澳大利亚,因为这就是我的住所。您可能想要通过从CentOS网站获取适当/更接近的镜像URI来更改此设置。 ?
除此之外,您所需要做的就是用对您的环境有意义的值填充变量。
如果您决定查看stats请求示例,请确保查看标题为“通过API获取VM性能指标”的文章,因为它详细介绍了该过程的工作方式以及start_time_in_usecs之类的含义。
近一步的相关内容
如果您的工作站/ PC /笔记本电脑/ VM以前从未真正用作开发环境,那么现在是查看我们的开发设置实验室的好时机! 它专门为那些相对较新的开发人员编写,涵盖了推荐的工具,设置和一些自定义位,这些将有助于使您的开发工作更加顺畅。
开发人员设置实验室可在Nutanix开发人员门户网站实验室页面上找到。
总结
儘管Postman确实拥有比上述功能更多的功能,但是配置集合和一些变量可以使您开始进行更高效的测试。 例如,仅通过使用变量,就可以自动更改所有出现的API端点IP地址,从而自动保存自己。 从更高的层次上讲,您还已经开始以合乎逻辑和吸引人的方式收集请求。
希望这篇简短的文章对您有所帮助。
感谢您的阅读,祝您有美好的一天!