那些具有使用API经验的人将听说过并熟悉无处不在的API测试和开发工具。但是,Nutanix Developer Portal上有很多内容专门针对那些刚开始使用Nutanix REST API的内容,包括设置您的第一个请求。今天的文章将介绍如何设置测试环境,以使该测试变得快速,容易。
这有点不费吹灰之力。如果尚未安装,请访问 https://getpostman.com ,下载最适合您的操作系统的版本(我使用Ubuntu Linux 19.04和Cinnamon Desktop Environment)并安装它。 不必担心现在就自定义安装或设置-我们将稍後进行一些介绍。
在这里,我将介绍安装Postman後所做的一些基本更改。 要获得这些设置,请单击“邮递员设置”图标(看起来像扳手),然後选择“设置”。
Postman “Settings” option
完成所有操作後,以下是我的常规标签。
Postman 设置 – 常规标签
因为我们都是某种类型的开发人员,所以我假设某种程度的组织和秩序对我们所有人而言都是第二自然。 考虑到这一点,创建一个Postman Collection来组织我们的事情是有意义的。
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工作区中可用的变量。 在此示例中,我仅定义它们可用於特定集合的位置。
设置请求时,使用上面定义的变量很简单。 需要引用变量的地方,语法如下:{{variable}}。 查看下面的请求,请注意,没有直接输入Prism Central IP地址,而是通过变量引用添加了该地址。 用户名和密码也做了同样的事情。
使用 Postman 变数代替手动输入 Prism Central IP 地址
使用 Postman 变数代替手动输入用户名和密码
下面的第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)
如果没有看到其中的一些内容,那麽这样的文章是不完整的。考虑到这一点,我提供了一个 Postman 集合,其中包含一些示例 Nutanix REST API 请求(v1,v2.0和v3)。让我们将其导入。
此阶段没有“确定”按钮,因此,如果一切顺利,您将在 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地址,从而自动保存自己。 从更高的层次上讲,您还已经开始以合乎逻辑和吸引人的方式收集请求。
希望这篇简短的文章对您有所帮助。
感谢您的阅读,祝您有美好的一天!
<<: [D30] : 一个Queue+Docker在Local的实作(4/4)
今天决定花些时间来加一些指标性的UI。所谓指标性的UI就是多数FPDC都会看的到的UI,简单来说就是...
CSS背景属性 可以给页面元素添加背景样式 背景属性可设置背景颜色、背景图片、背景平舖、背景图片位置...
「DOM API 定义了 JavaScript 存取、改变 HTML 架构、内容、样式的方法,甚至...
题号:43 标题:Multiply Strings 难度:Medium Given two non-...
延续之前的浏览列的实作,这次要增加登入跟注册纽,其实我也还在想这个网站是否需要注册功能,毕竟是私人社...