接口测试之:Postman工具进阶教程。

x33g5p2x  于2021-11-20 转载在 其他  
字(5.3k)|赞(0)|评价(0)|浏览(271)

1、引言

了解小鱼的人都知道, 小鱼喜欢使用工具,但是不喜欢去写工具教程,
毕竟这种工具教程:一度娘,千千万
但是,最近小鱼在面试过程中,也发现一个很奇怪的现象
只打开过Postman工具,就说过自己很了解Postman,
使用的有多牛多牛,然而,我问了基本的几个问题,就露馅了!
小鱼的面试特点:简历中你能写,小鱼就能聊(由浅入深的聊);
不管是框架级,工具级,代码级还是流程级

为了能让各位求职者,跟面试官关于postman的使用,能扯上半个小时,
小鱼还是决定,把Postman的进阶教程整理汇总并share出来。

如果不是最近测试开发候选人的技术能力让我有些吃惊,
不然我真的不会去整理这篇博文。
因为关注小鱼博客的人,都知道,小鱼最近要推出 全链路压测专栏系列博文。
这也是小鱼默默的规划了两个月的产物。
因为全链路压测专栏规划的是33篇,所以,也是持续更新的专栏。

言归正传,咱们今天这篇,来讲Postman的进阶使用。

2、Postman详细教程

2.1 选择Postman的理由

市面上接口测试工具那么多,为什么偏偏对Postman情有独钟?
无非以下几个原因:

  • 简单易用 : 要使用Postman,你只需登录自己的账户,只要在电脑上安装了Postman应用程序,就可以方便地随时随地访问文件。
  • 使用集合 : Postman允许用户为他们的API调用创建集合。每个集合可以创建子文件夹和多个请求。这有助于组织测试结构。
  • 多人协作 : 可以导入或导出集合和环境,从而方便共享文件。直接使用链接还可以用于共享集合。
  • 创建环境 : 创建多个环境有助于减少测试重复(DEV/QA/STG/UAT/PROD),因为可以为不同的环境使用相同的集合。这是参数化发生的地方,将在后续介绍。
  • 创建测试 : 测试检查点(如验证HTTP响应状态是否成功)可以添加到每个API调用中,这有助于确保测试覆盖率。
  • 自动化测试 : 通过使用集合Runner或Newman,可以在多个迭代中运行测试,节省了重复测试的时间。
  • 调试 : Postman控制台有助于检查已检索到的数据,从而易于调试测试。
  • 持续集成:通过其支持持续集成的能力,可以维护开发实践。

2.2 安装

在使用工具前,第一步就是安装。
所以,Postman 也需要安装
这里说一下:Postman的起家,是Chrome浏览器的一个插件,由于使用的人越来越多,所以,后来索性就开发成一个接口工具。

  • 网址:https://www.postman.com/downloads/
  • 安装步骤:一直默认安装即可(也可以自定义安装)
  • 登录:注册账号并登录(账号免费注册)

登录后界面如下

2.3 工作区功能介绍

  • New:在这里创建新的请求、集合或环境;还可以创建更高级的文档、Mock Server 和 Monitor以及API。
  • Import:这用于导入集合或环境。有一些选项,例如从文件,文件夹导入,链接或粘贴原始文本。
  • Runner:可以通过Collection Runner执行自动化测试。后续介绍。
  • Open New:打开一个新的标签,Postman窗口或Runner窗口。
  • My Workspace : 可以单独或以团队的形式创建新的工作区。
  • Invite : 通过邀请团队成员在工作空间上进行协同工作。
  • History: 所有请求的历史记录,这样可以很容易地跟踪你所做的操作。
  • Collections : 通过创建集合来组织你的测试套件。每个集合可能有子文件夹和多个请求。请求或文件夹也可以被复制。
  • Request tab : 这将显示您正在处理的请求的标题。默认对于没有标题的请求会显示“Untitled Request”。
  • HTTP Request - 单击它将显示不同请求的下拉列表,例如 GET, POST, COPY, DELETE, etc. 在测试中,最常用的请求是GET和POST。
  • Request URL - 也称为端点,显示API的URL。.
  • Save - 如果对请求进行了更改,必须单击save,这样新更改才不会丢失或覆盖。
  • Params - 在这里将编写请求所需的参数,比如Key - Value。
  • Authorization - 为了访问api,需要适当的授权。它可以是Username、Password、Token等形式。
  • Headers - 请求头信息
  • Body - 请求体信息,一般在POST中才会使用到
  • Pre-request Script - 请求之前 先执行脚本,使用设置环境的预请求脚本来确保在正确的环境中运行测试。
  • Tests - 这些脚本是在请求期间执行的。进行测试非常重要,因为它设置检查点来验证响应状态是否正常、检索的数据是否符合预期以及其他测试。
  • Settings - 最新版本的有设置,一般用不到。

2.4 接口类型请求

2.4.1 Get请求处理

Get请求用于从指定的URL获取信息,不会对端点进行任何更改。
在这里我们使用如下的URL作为演示:

https://jsonplaceholder.typicode.com/users

在Postman的工作区中:

  • 选择HTTP请求方式为GET
  • 在URL区域输入 链接
  • 点击 “Send”按钮
  • 你将看到下方返回200状态码
  • 在正文中应该有10个用户结果,表明您的测试已经成功运行。

2.4.2 Post请求处理

Post请求与Get请求不同,因为存在用户向端点添加数据的数据操作。使用之前GET 请求中相同数据,现在添加我们自己的用户。

  • 步骤1:创建一个新请求图片
  • 步骤2:在新请求中
    ①选择HTTP请求方式为GET
    ②在URL区域输入 链接:https://jsonplaceholder.typicode.com/users
    ③切换到Body选项

  • 步骤3:Body选项
    ①选中raw选项
    ②选择JSON

  • 步骤4:复制前面GET请求返回的json内容的第一节
    更改id为11,更改name以及uesrname和email
[
    {
        "id": 11,
        "name": "Krishna Rungta",
        "username": "Bret",
        "email": "Sincere@april.biz ",
        "address": {
            "street": "Kulas Light",
            "suite": "Apt. 556",
            "city": "Gwenborough",
            "zipcode": "92998-3874",
            "geo": {
                "lat": "-37.3159",
                "lng": "81.1496"
            }
        },
        "phone": "1-770-736-8031 x56442",
        "website": "hildegard.org",
        "company": {
            "name": "Romaguera-Crona",
            "catchPhrase": "Multi-layered client-server neural-net",
            "bs": "harness real-time e-markets"
        }
    }
]

  • 步骤5:发送请求
    ①完成上述的信息输入,点击Send按钮
    ②Status:应该是201,显示为创建成功
    ③在Body里返回数据

2.4.3 请求参数化

数据参数化是Postman最有用的特征之一。你可以将使用到的变量进行参数化,而不是使用不同的数据创建相同的请求,这样会事半功倍,简洁明了。
这些数据可以来自数据文件或环境变量。参数化有助于避免重复相同的测试,可用于自动化迭代测试。

参数通过使用双花括号创建:{{sample}}。
比如下面的请求:

创建一个参数化get请求

  • 步骤1: 创建一个参数化get请求
    ①将HTTP请求设置为GET
    ②输入URL:https://jsonplaceholder.typicode.com/users;将链接的域名部分替换为参数,例如{{url}}。请求url现在应该是{{url}}/users。
    ③点击Send按钮。
    应该没有响应,因为我们没有设置参数的源,如下图:

  • 步骤2:使用环境设置所需的参数
    ①使用环境设置所需的参数
    ②单击Edit将该变量设置为可在所有集合中使用的全局环境。

  • 步骤3:变量–variable
    ①将名称设置为url,该url为https://jsonplaceholder.typicode.com
    ②点击保存按钮

  • 步骤4:如果看到下面截图的样式,请单击Close

  • 步骤5:回到你的Get请求页面,然后单击发送Send按钮,Get请求应该就会返回结果了,如下图:

2.5 创建Postman Tests

Postman Tests在请求中添加JavaScript代码来协助验证结果,如:成功或失败状态、预期结果的比较等等。
通常从pm.test开始。它可以与断言相比较,验证其他工具中可用的命令。
接下来创建一个包含Tests的请求:

  • 步骤1: 创建一个Get请求
    ①切换到Tests选项,右边是代码片段选项。
    ②从右边的代码片段选项里面选中 “Status code: Code is 200”
    ③JS代码就自动出现在窗口中

  • 步骤2:点击发送请求按钮。测试结果就显示出来了,如下图:

  • 步骤3:回到Tests选项卡,让我们添加另一个测试。这次我们将比较预期结果和实际结果。
    在右边的SNIPPETS区域选择"Response body:JSON value check"选项,我们将检查Leanne Graham是否拥有userid 1。

  • 步骤4
    ①将代码中的“Your Test Name”替换为“Check if user with id1 is Leanne Graham”,以便测试名称确切描述我们想测试的内容。
    ②使用jsonData[0].name代替jsonData.value; 获取路径,在获取结果之前检查Body。因为Leanne Graham是userid 1,所以jsonData在第一个结果中,这个结果应该从0开始。如果你想获得第二个结果,那么对后续结果使用jsonData[1] 即可。
    ③在eql中,输入“Leanne Graham”
pm.test("Check if user with id1 is Leanne Graham", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData[0].name).to.eql("Leanne Graham");
});
  • 步骤5: 点击发送请求,可以看到你的请求之后测试结果中有两项显示测试通过。

2.6 创建测试集合

集合在组织测试套件中扮演着重要的角色。它可以被导入和导出,使得在团队之间共享集合变得很容易。在本教程中,我们将学习如何创建和执行集合。

  • 步骤1: 单击页面左上角的New按钮,如下图:

  • 步骤2:选择Collection(集合). 创建collection窗口弹出,如下图

  • 步骤3: 输入所需的集合名称和描述,然后单击create。

  • 步骤4:和前面的Get请求一样,点击保存。
  • 步骤5:测试集合
    ①选择Postman 测试集合(Test Collection)。
    ②点击保存Postman Test Collection

  • 步骤6: Postman test collection现在应该包含了一个请求
  • 步骤7:重复上述的Step4-5,继续创建请求,这样,测试集合就应该有2个请求了,如下图。

2.7 运行Collection Runner 测试集合

  • 步骤1: 单击页面顶部导入按钮旁边的Runner按钮,如下图。

  • 步骤2:Collection Runner页面应该出现如下所示。以下是对各个字段的描述

  • 步骤3: 做如下设置,运行你的测试集合

①选择Postman测试集合-集合迭代次数为3
②设置延迟为2500毫秒
③点击Start Run按钮

  • 步骤4: 单击Run按钮后将显示Run结果页。根据延迟的不同,你应该在测试执行的同时看到显示的结果。

①一旦测试完成,你就可以看到测试状态是通过还是失败,以及每个迭代的结果。
②你将看到Get请求的Pass状态;
③由于我们没有任何Post测试,所以应该会出现请求没有任何测试的消息。

可以出在请求中进行测试是多么重要,这样你就可以验证HTTP请求状态是否成功,以及是否创建或检索了数据。

3、总结

看到这,今天的分享,就快要结束了。
我们来回顾一下,今天主要的内容:

  • Postman的安装
  • 工作区功能介绍
  • 列举接口请求类型的处理方式
  • 请求参数化
  • 测试集合的创建
  • 测试集合的运行

一个整体的流程,大概就是这样。
完全掌握这些功能操作流程,也就能跟面试官扯上半个小时了。

当然,我们的目的,是为了完全的掌握,而不是为了应付面试官!

相关文章