PostMan笔记(三)自动化测试

这篇具有很好参考价值的文章主要介绍了PostMan笔记(三)自动化测试。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 简介

Postman是一款功能强大的API开发工具,也是一款流行的自动化测试工具。它提供了多种测试功能,包括测试脚本、预请求脚本和测试集合等。

1.1 测试脚本

测试脚本是Postman中用于自动化测试的核心部分。它可以使用JavaScript语言编写,通过发送API请求、获取响应并解析响应,验证API是否正常工作。

测试脚本可以访问请求和响应对象,以及Postman的全局变量和环境变量。可以使用一系列预定义的函数和方法,例如pm.test()、pm.expect()和pm.sendRequest()等。

 1.2 预请求脚本

预请求脚本是在请求被发送之前运行的脚本。它可以用于设置请求头、参数和身份验证,以确保请求被正确设置。它可以访问请求对象和Postman的全局变量和环境变量。

预请求脚本是可选的,但它们对于确保请求的正确性非常有用。

1.3 测试集合

测试集合是一组API测试的集合。可以将测试脚本和预请求脚本组合在一起,以创建测试集合。测试集合可以运行一系列的测试脚本,并报告测试结果。

测试集合可以使用Postman的测试运行器进行执行。测试运行器提供了多个选项,例如选择环境和设置运行参数。它还可以生成报告,以帮助您识别API中的错误和缺陷。

1.4 持续集成

Postman可以与持续集成(CI)工具集成,例如Jenkins、Travis CI和CircleCI等。这样,可以将API测试自动化为CI/CD管道的一部分,以确保代码更改不会破坏API的功能。

通过与CI工具集成,可以自动运行测试集合,并在测试失败时通知开发人员。

总之,Postman提供了强大的API测试自动化功能,包括测试脚本、预请求脚本、测试集合和持续集成。这些功能可以帮助开发人员在开发和部署API时提高测试效率和测试覆盖率。

2.测试脚本功能

2.1 测试脚本的种类

(1)全局测试脚本

全局测试脚本可以在整个Postman应用程序中使用。在Postman中,选择“Settings”菜单,然后选择“General”选项卡。在“General”选项卡中,可以设置全局测试脚本。全局测试脚本可以用于设置所有请求共有的测试脚本。在测试脚本中,可以编写JavaScript代码进行断言、验证、数据处理等操作。

(2)请求测试脚本

请求测试脚本只适用于当前请求。在Postman中,选择一个请求并选择“Tests”选项卡。在测试编辑器中,可以编写请求测试脚本。请求测试脚本可以用于设置当前请求特有的测试脚本。

2.2 测试脚本的使用用例

使用测试脚本功能可以通过编写JavaScript代码来自动化测试API的响应和验证。以下是使用测试脚本的步骤:

1. 打开Postman并创建一个新的请求。

2. 选择“Tests”选项卡,打开测试编辑器。

3. 在测试编辑器中,可以使用JavaScript编写测试脚本。例如,下面是一个使用pm.test()函数验证响应状态码的示例:

    pm.test("Status code is 200", function () {
      pm.response.to.have.status(200);
    });

发起请求的接口及响应码:

postman自动化测试,postman,笔记,测试工具,预脚本,测试脚本

根据响应状态码不同, pm.response.to.have.status(状态码) 会执行对应的脚本,在 Test Results 打印设定的脚本内容。

postman自动化测试,postman,笔记,测试工具,预脚本,测试脚本

4. 可以使用pm.expect()函数进行其他类型的验证。例如,下面是一个使用pm.expect()函数验证响应JSON中是否包含特定的属性:

    pm.test("Response has property 'data'", function () {
      var jsonData = pm.response.json();
      pm.expect(jsonData).to.have.property('data');
    });

发起请求,接口返回的有 data 属性,

postman自动化测试,postman,笔记,测试工具,预脚本,测试脚本

符合脚本中包含特定属性的要求,Test Results打印设定的脚本内容

postman自动化测试,postman,笔记,测试工具,预脚本,测试脚本

 5. 在测试脚本中,还可以使用Postman的全局变量和环境变量。例如,可以使用环境变量中的值来验证响应JSON中的属性:

    pm.test("Response has correct name", function () {
      var jsonData = pm.response.json();
      pm.expect(jsonData.name).to.equal(pm.environment.get("expected_name"));
    });

设定脚本

postman自动化测试,postman,笔记,测试工具,预脚本,测试脚本

请求接口后,验证环境变量执行脚本内容

postman自动化测试,postman,笔记,测试工具,预脚本,测试脚本

6. 编写完成测试脚本后,点击“Send”按钮发送请求并运行测试脚本。
7. 在测试结果面板中,可以查看测试的结果。如果测试失败,可以查看错误信息并进行修复。

总之,使用测试脚本功能可以自动化测试API的响应和验证,以提高测试效率和测试覆盖率。

3. 预请求脚本

3.1 预请求脚本的种类

在Postman中,预请求脚本有两种类型:全局预请求脚本和请求预请求脚本。它们的区别在于它们所在的作用域。

(1)全局预请求脚本

全局预请求脚本可以在整个Postman应用程序中使用。在Postman中,选择“Settings”菜单,然后选择“General”选项卡。在“General”选项卡中,可以设置全局预请求脚本。全局预请求脚本可以用于设置所有请求共有的参数、验证等操作。

(2)请求预请求脚本

请求预请求脚本只适用于当前请求。在Postman中,选择一个请求并选择“Pre-request Scripts”选项卡。在预请求编辑器中,可以编写请求预请求脚本。请求预请求脚本可以用于设置当前请求特有的参数、验证等操作。

总之,全局预请求脚本可以在整个Postman应用程序中使用,而请求预请求脚本只适用于当前请求。在编写预请求脚本时,需要根据请求的特定情况编写相应的预请求脚本。

3.2 预请求脚本使用用例

预请求脚本(Pre-request Scripts)是Postman中一个功能强大的工具,可以在发送实际请求之前运行JavaScript代码。预请求脚本可以用于设置请求头、参数、验证等操作。以下是使用预请求脚本的步骤:

(1)打开Postman并创建一个新的请求。

(2)选择“Pre-request Scripts”选项卡,打开预请求编辑器。

(3)在预请求编辑器中,可以使用JavaScript编写预请求脚本。例如,下面是一个使用pm.environment.set()函数设置环境变量的示例:

pm.environment.set("api_key", "my_api_key");

postman自动化测试,postman,笔记,测试工具,预脚本,测试脚本

 (4)可以在预请求脚本中使用Postman的全局变量和环境变量。例如,可以使用全局变量来设置请求头:

pm.request.headers.add({
  key: 'Authorization',
  value: 'Bearer ' + pm.globals.get('access_token')
});

(5)在预请求脚本中还可以使用Postman的其他函数,例如pm.variables.set()、pm.expect()等。例如,可以使用pm.expect()函数验证请求参数:

pm.expect(pm.request.url.query.has("id")).to.be.true;

(6)编写完成预请求脚本后,点击“Send”按钮发送请求。Postman将在发送实际请求之前运行预请求脚本。

总之,使用预请求脚本可以在发送实际请求之前运行JavaScript代码,以设置请求头、参数、验证等操作。在编写预请求脚本时,需要根据请求的特定情况编写相应的预请求脚本。

3.3 怎么使用预请求脚本和SpringBoot接口做测试

要使用预请求脚本和Spring Boot接口进行测试,可以按照以下步骤操作:

(1)打开Postman,创建一个新的请求,并选择请求方法(例如GET、POST、PUT等)。

(2)在请求的“Pre-request Scripts”选项卡中编写预请求脚本。在预请求脚本中,可以设置请求头、请求参数等信息。例如,下面是一个设置Authorization请求头的示例代码:

pm.request.headers.add({
    key: 'Authorization',
    value: 'Bearer ' + pm.environment.get('access_token')
});

(3)在请求的“Body”选项卡中设置请求体。根据请求的类型,可以选择“form-data”、“x-www-form-urlencoded”、“raw”等格式。

(4)在请求的“Tests”选项卡中编写测试脚本。在测试脚本中,可以使用断言函数进行测试结果验证。例如,下面是一个使用pm.expect()函数验证请求结果的示例代码:

pm.test("Response should be 200 OK", function () {
    pm.response.to.have.status(200);
});

(5)发送请求,并查看测试结果。如果测试结果符合预期,则说明接口测试成功。

需要注意的是,预请求脚本和测试脚本都是基于JavaScript编写的。在编写脚本时,需要注意语法和API的使用。此外,需要根据Spring Boot接口的具体情况编写相应的预请求脚本和测试脚本,以确保测试的准确性和可靠性。

4. 测试集合功能

使用测试集合功能可以将多个测试脚本组合在一起,并且可以在单个操作中运行所有测试。以下是使用测试集合功能的步骤:

(1)在Postman中,创建多个请求并设置它们的测试脚本。

(2)在左侧导航栏中,选择“New Collection”创建一个新的测试集合。将所有相关的请求添加到测试集合中,以便它们可以一起进行测试。postman自动化测试,postman,笔记,测试工具,预脚本,测试脚本

(3)在测试集合的“Tests”选项卡中编写测试集合脚本。测试集合脚本可以用于设置所有请求共有的测试脚本。在测试集合脚本中,可以使用JavaScript编写测试脚本和断言函数,对请求结果进行验证。例如,下面是一个测试集合脚本示例,用于验证所有请求的响应时间是否小于200ms:

// Verify that all requests have a response time less than 200ms
pm.test("Response time is less than 200ms", function () {
    pm.expect(pm.response.responseTime).to.be.below(200);
});

(4)保存测试集合并运行测试。在运行测试之前,可以选择一个环境来设置变量和环境参数。测试结果将在Postman的“Tests Results”选项卡中显示。如果所有测试通过,则测试集合将标记为“Pass”。

通过使用测试集合功能,可以将多个测试脚本组合在一起,以便在单个操作中运行所有测试,并且可以更容易地管理和维护测试用例。

5. 持续集成功能

5.1 Postman的持续集成有什么功能?具体怎么使用

Postman的持续集成(Continuous Integration,CI)功能主要包括以下三个部分:

(1)Postman API:Postman API可以与CI工具进行集成,实现自动化测试和持续集成。通过Postman API,可以运行Postman测试集合并获取测试结果。

(2)Newman命令行工具:Newman是Postman的命令行工具,可以在CI工具中使用。通过Newman,可以在命令行中运行Postman测试集合,并将测试结果输出为JUnit XML格式或HTML格式。

(3)Postman代理:Postman代理可以在CI工具中使用,以便在CI工具中设置环境变量和授权头。代理可以确保环境变量和授权头在测试过程中正确地设置。

使用Postman的持续集成功能,可以将Postman测试集合与CI工具集成在一起,实现自动化测试和持续集成。以下是一般的使用步骤:

  1. 将Postman测试集合导出为JSON文件,并将其上传到代码仓库中。

  2. 在CI工具中配置Postman的自动化测试。例如,可以使用Jenkins或Travis CI等工具。配置中需要包括测试集合的路径和环境变量。

  3. 在CI工具中运行Postman测试集合。可以使用Newman命令行工具来运行测试集合,并输出测试结果。例如,在Jenkins中可以使用以下命令运行测试集合:

    newman run my-collection.json -e my-environment.json -r junit,html
    
  4. 分析测试结果并根据需要进行修复和调整。如果测试结果中包含失败的测试用例,则需要修复代码并重新提交到代码仓库中。

使用Postman的持续集成功能可以加快软件开发的速度,并提高代码的质量和稳定性。

5.2 持续集成用例

假设我们有一个Spring Boot应用程序,该应用程序提供了一个REST API,用于获取用户的详细信息。我们想要使用Postman持续集成来测试该API,并在代码仓库中进行自动化测试和持续集成。

(1)创建一个新的Postman测试集合,并添加一个测试用例,以测试Spring Boot应用程序的REST API。测试用例可以使用Postman的请求构建器来创建,包括请求URL、请求方法、请求头、请求体等。

(2)在测试用例中添加测试脚本,以验证API返回的响应是否正确。例如,可以使用JavaScript编写一个测试脚本,检查API返回的用户详细信息是否正确。

pm.test("Response is OK", function () {
    pm.response.to.have.status(200);
});

pm.test("User name is correct", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.name).to.eql("John Doe");
});

pm.test("User age is correct", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.age).to.eql(30);
});

(3)将测试集合导出为JSON文件,并将其上传到代码仓库中。

(4)在CI工具中配置Postman的自动化测试。例如,在Jenkins中可以使用以下步骤:

  • 安装Node.js和Newman命令行工具。
  • 设置环境变量,以便Newman命令行工具可以在CI工具中正确运行。例如,在Jenkins中可以使用以下命令:
export PATH=$PATH:/usr/local/bin
  • 在Jenkins中创建一个新的构建任务,并添加以下构建步骤:
newman run my-collection.json -e my-environment.json -r junit,html

此命令将运行Postman测试集合,并使用my-environment.json文件中定义的环境变量。测试结果将输出为JUnit XML格式和HTML格式。

(5)运行CI工具中的构建任务,以运行Postman测试集合并获取测试结果。如果测试结果中包含失败的测试用例,则需要修复代码并重新提交到代码仓库中。

使用Postman持续集成可以加快软件开发的速度,并提高代码的质量和稳定性。通过使用Postman的自动化测试和持续集成功能,我们可以在代码仓库中进行自动化测试,并确保代码变更不会破坏现有的功能。

6. 断言

6.1 什么是断言

在自动化测试中,断言是一种用于验证测试结果的技术。它是一种检查条件是否满足的机制,如果条件不满足,则测试失败。断言通常用于自动化测试框架中,以确保测试的可靠性和一致性。

在Postman中,可以使用JavaScript编写测试脚本,并使用断言来验证API的响应是否正确。以下是一些常用的断言:

  • pm.expect(value).to.eql(expectedValue):检查value和expectedValue是否相等。

  • pm.expect(value).to.be.above(expectedValue):检查value是否大于expectedValue。

  • pm.expect(value).to.be.below(expectedValue):检查value是否小于expectedValue。

  • pm.expect(value).to.be.ok:检查value是否为真。

  • pm.expect(value).to.have.property(propertyName, expectedValue):检查对象value是否具有属性propertyName,并且该属性的值是否等于expectedValue。

  • pm.expect(value).to.have.length(expectedLength):检查数组value的长度是否等于expectedLength。

  • pm.expect(value).to.match(pattern):检查value是否与指定的正则表达式pattern匹配。

  • pm.expect(value).to.be.oneOf(expectedValues):检查value是否与expectedValues中的任何一个值相等。

可以根据需要使用这些断言,验证API的响应是否正确。在编写测试脚本时,应该根据API的特性和预期结果选择合适的断言,以确保测试结果的可靠性和一致性。

6.2 断言的使用方式

在Postman中使用断言非常简单。您可以按照以下步骤使用断言:

  1. 首先,打开Postman并选择要测试的API。

  2. 然后,在请求的"Tests"选项卡下,可以添加测试脚本。

  3. 在测试脚本中,您可以使用JavaScript编写断言来验证API的响应是否符合预期。

以下是一个简单的示例,展示如何使用断言来验证API的响应是否为JSON格式:

// 获取响应内容
const responseBody = pm.response.json();

// 验证响应是否为JSON格式
pm.test("响应应该是JSON格式", function () {
    pm.expect(responseBody).to.be.an("object");
});

在上面的示例中,我们首先使用pm.response.json()获取API的响应内容,然后使用pm.test()pm.expect()来编写断言。在pm.expect()中,我们使用to.be.an()断言来验证响应是否为JavaScript对象。

除了to.be.an()之外,Postman还提供了许多其他的断言,例如to.eql()to.have.status()等等。您可以根据需要选择合适的断言来验证API的响应是否符合预期。文章来源地址https://www.toymoban.com/news/detail-756378.html

到了这里,关于PostMan笔记(三)自动化测试的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • postman接口自动化测试

      Postman除了前面介绍的一些功能,还有其他一些小功能在日常接口测试或许用得上。今天,我们就来盘点一下,如下所示: 1.数据驱动     想要批量执行接口用例,我们一般会将对应的接口用例放在同一个Collection中,然后再通过Runner批量执行。这种方式适用于接口用例

    2024年02月05日
    浏览(51)
  • postman自动化接口测试

      📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📢交流讨论:欢迎加入我们一起学习! 📢资源分享:耗时200+小时精选的「软件测试」资料包 📢 最困难的时候,也就是我们离成功不远的时候!   有一个项目要使用postman进行接口测试

    2024年02月02日
    浏览(69)
  • Postman —— 实现接口自动化测试!

    目录 postman使用 postman进行简单压力测试 1、新建一个fodder,在fodder下添加要进行压力测试的接口: 2、post接口测试,参数从txt导入 3、设置 Pre-request-Script 参数 4、设置test(便于观察测试结果) 5、保存请求,点击runner,按如下设置 6、设置Iteration 7、测试结果 参考: 返回目录

    2024年03月09日
    浏览(53)
  • Postman实现接口自动化测试

    功能测试从页面发起请求进行测试,接口测试可以借助工具或代码直接将数据发送到服务端进行测试。  功能测试和接口测试对应的时间 接口测试的流程  URL的组成 HTTP:超文本传输协议,基于请求与响应的应用层协议 作用:规定了客户端与服务器之间信息传递规范,是二者共

    2024年01月19日
    浏览(59)
  • Postman接口自动化测试实例

    在实际业务中,经常会出现让用户输入用户密码进行验证的场景。而为了安全,一般都会先请求后台服务器获取一个随机数做为盐值,然后将盐值和用户输入的密码通过前端的加密算法生成加密后串传给后台服务器,后台服务器接到到请求后,先获取校验原来的随机数是否有

    2024年02月11日
    浏览(56)
  • postman做接口自动化测试

    可能是目前最好用的web接口调试工具 无需注册(注册后可多终端同步用例) 免费(每年付费$60可用云服务,30天免费试用) 保存历史记录 支持录制请求 基于Chrome的V8引擎,支持JS脚本(基本支持ES6,浏览器相关对象和API和require() import等除外) 同样的代码和用例可用于自动化

    2024年02月03日
    浏览(55)
  • postman接口自动化测试框架实战!

    把人对软件的测试行为转化为由机器执行测试行为的一种实践。 例如GUI自动化测试,模拟人去操作软件界面,把人从简单重复的劳动中解放出来。 本质是用代码去测试另一段代码,属于一种软件开发工作,已经开发完成的用例还必须随着被测试对象的改变而更新,因此,还

    2024年02月11日
    浏览(56)
  • 接口自动化测试:Postman实战教程!

    (1)服务器端(server): 在使用别人的服务器上,例如微信APP客户端,服务端在腾讯的服务端上,微信上的账号信息,聊天记录均存储在服务端上;用户A发送1条信息到服务端上,服务端再把这条信息转发到用户B上。 服务器使用的语言分别为:Java、Python、PHP、Go、C、C++等等

    2024年04月28日
    浏览(36)
  • Postman实现WebUI自动化测试

    转载请注明出处❤️ 作者:测试蔡坨坨 原文链接:caituotuo.top/1db4fa44.html 你好,我是测试蔡坨坨。 看到这篇文章的标题,是不是有小伙伴会感到惊讶呢? Postman不是做接口测试的吗?为什么还能做UI自动化测试呢? 其实,只要你了解Selenium的运行原理,就可以理解为什么Post

    2024年04月09日
    浏览(81)
  • 使用Postman进行接口自动化测试

    我们先思考一下,如果需要达到自动化接口测试的效果,那么我们在基本的模拟请求上还需要做哪些呢? 以下我粗略概括为 3 个问题(欢迎更多补充与建议): 如何判断接口是否请求成功 如何进行接口批量、定期测试 如何处理依赖接口问题(比如商品下单的接口必须要求

    2024年01月18日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包