目录
PostMan的安装
发送一个请求
Collections
开始API测试
测试脚本位置
一些简单的语法
在测试脚本中发送请求
如何处理大量重复的断言逻辑
变量的使用
global
environment
一个简单的示例:
参考资料
首页 web前端 js教程 使用PostMan进行自动化测试

使用PostMan进行自动化测试

Apr 03, 2018 am 09:14 AM
postman 测试 自动化

最近在进行一个老项目的升级,第一步是先将node版本从4.x升级到8.x,担心升级会出现问题,所以需要将服务的接口进行验证;
如果手动输入各种URL,人肉check,一个两个还行,整个服务。。大几十个接口,未免太浪费时间了-.-;
因为是一个纯接口服务的项目,所以打算针对对应的API进行一波自动化测试;
所以就开始寻找对应的工具,突然发现,平时使用的PostMan貌似也是支持写测试用例的-.-,所以就照着文档怼了一波;
一下午的时间,很是激动,之前使用PostMan仅限于修改Header,添加Body发送请求,从来没有考虑过拿PostMan来进行测试,一下午的使用,感觉发现了新大陆。

PostMan的安装

貌似下载和使用PostMan必须要翻墙-.-
因为现在提供两种形态的App:

  1. chrome的插件 (已经快要被废弃了,推荐使用独立App)

  2. 独立的App

而且在使用时需要登录账号,我这边是直接登录的Google账号-。-貌似有其它方式,但是我并没有去尝试。

独立App版云盘地址(Mac版本,今天刚下载的6.0.10,需要的请自取):
链接:https://pan.baidu.com/s/18CDp...  密码:mrpf

下载完毕解压后直接运行即可,然后就是注册账号之类的,目测账号这一块主要是用于后续的小组分享需要(可以直接将你的调用记录分享给其他人)。

发送一个请求

这是PostMan最基础的一个用法,用来发送一个请求。
可以设置HeaderBody等信息。
使用PostMan进行自动化测试

Collections

我们可以将每次发送的请求进行保存,方便下次请求该接口时,直接调用即可,
如果保存请求的话,会被保存到一个Collections里去,类似一个集合。
PostMan提供了方法,能够一键运行整个Collections中所有的请求。
使用PostMan进行自动化测试
使用PostMan进行自动化测试

然后我们就可以在需要的时候,直接运行集合中所有的请求了。
使用PostMan进行自动化测试

保存请求记录的时候,在下边选择对应的Collection即可
使用PostMan进行自动化测试

开始API测试

测试脚本位置

使用PostMan进行自动化测试
PostMan针对请求编写的测试脚本,在这个位置,采用的是JavaScript语法,右侧是一些预先配置的代码片段。
以及我们可以在Pre-request Script中编写脚本,用于在发送请求前执行。

一些简单的语法

PostMan也提供了一种断言,来帮助做一些验证。

tests['Status code is 200'] = responseCode.code === 200

tests['Data length >= 10'] = JSON.parse(responseBody).data.length >= 10
登录后复制

赋值为true即表示通过,false为失败。
tests的直接赋值作用比较局限,如果在脚本中进行一些其他异步操作,则需要用到pm.test了。

setTimeout(() => {
  pm.test("test check", function () {
    pm.expect(false).to.be.true
  })
})
登录后复制

只用上边的tests赋值+pm.test/pm.expect已经能够满足我们的需求了,其余的一些只是在这之上的语法糖而已。
各种语法示例

在测试脚本中发送请求

我们可以在拿到一个API返回结果后,根据该结果发送一些新的请求,然后添加断言。

let responseJSON = JSON.parse(responseBody)

// 获取关注的第一个用户,并请求他的用户信息
pm.sendRequest(responseJSON[0].url, function (err, response) {
  let responseJSON = response.json()

  pm.test('has email', function () {
    pm.expect(responseJSON.email).is.be.true // 如果用户email不存在,断言则会失败
  })
});
登录后复制

如果我们有一些动态接口要进行测试,可以尝试这种写法。
一级接口返回List
二级接口根据ListID进行获取对应信息。

如何处理大量重复的断言逻辑

针对单个API,去编写对应的断言脚本,这个是没有什么问题的。
但是如果是针对一个项目的所有API去编写,类似于判断statusCode这样的断言就会显得很溶于,所以PostMan也考虑到了这点。
在我们创建的Collection以及下层的文件夹中,我们可以直接编写针对这个目录下的所有请求的断言脚本。
使用PostMan进行自动化测试
使用PostMan进行自动化测试
这里的脚本会作用于目录下所有的请求。
这样我们就可以将一些通用性的断言挪到这里了,在每个请求的Tests下编写针对性的断言脚本。

变量的使用

PostMan提供了两种变量使用,一个是global,一个是environment

global

代码操作的方式:

pm.globals.set("variable_key", "variable_value") // set variable
pm.globals.get("variable_key") // get variable
pm.globals.unset("variable_key") // remove variable
登录后复制

通过GUI设置:
使用PostMan进行自动化测试
使用PostMan进行自动化测试

设置完后我们就可以这样使用了:
使用PostMan进行自动化测试

基本上在所有的可输入的地方,我们都能够使用这些变量。

environment

环境变量,这个是权重比global要高一些的变量,是针对某些环境来进行设置的值。
操作方式类似。

在使用代码操作的方式时,只需将globals替换为environment即可。
在发起一个请求,或者一键发送所有请求时,我们可以勾选对应的环境,来使用不同的变量。
使用PostMan进行自动化测试

在针对大量API测试时,拿environment来设置一个domain将是一个不错的选择。
这样在请求中我们只需这样写即可:

{{domain}}/res1
{{domain}}/res2

domain: https://api.github.com
登录后复制

一个简单的示例:

通过直接运行一个Collection,我们可以很直观的看到所有的接口验证情况。
使用PostMan进行自动化测试
使用PostMan进行自动化测试

参考资料

https://www.getpostman.com/do...

之前使用PostMan,最多就是模拟一下POST请求,最近刚好碰到类似的需求,发现原来PostMan还可以做的更多。
这篇只是使用PostMan进行API测试的最基础操作,还有一些功能目前我并没有用到,例如集成测试、生成API文档之类的。

接口相当于是获取和操作服务资源的方式,肯定属于产品的核心。
所以测试是必须的,在交付QA同学之前,自己进行一遍测试,想必一定能节省一部分的时间。

相关推荐:

chrome插件postman安装问题_html/css_WEB-ITnose

以上是使用PostMan进行自动化测试 的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
威尔R.E.P.O.有交叉游戏吗?
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

furmark怎么看?-furmark怎么算合格? furmark怎么看?-furmark怎么算合格? Mar 19, 2024 am 09:25 AM

furmark怎么看?1、在主界面中设置“运行模式”和“显示模式”,还能调整“测试模式”,点击“开始”按钮。2、等待片刻后,就会看到测试结果,包含了显卡各种参数。furmark怎么算合格?1、用furmark烤机,半个小时左右看一下结果,基本上在85度左右徘徊,峰值87度,室温19度。大号机箱,5个机箱风扇口,前置两个,上置两个,后置一个,不过只装了一个风扇。所有配件都没有超频。2、一般情况下,显卡的正常温度应该在“30-85℃”之间。3、就算是大夏天周围环境温度过高,正常温度也是“50-85℃

加入全新仙侠冒险!《诛仙2》'无为测试”预下载开启 加入全新仙侠冒险!《诛仙2》'无为测试”预下载开启 Apr 22, 2024 pm 12:50 PM

新派幻想仙侠MMORPG《诛仙2》“无为测试”即将于4月23日开启,在原著千年后的诛仙大陆,会发生怎样的全新仙侠冒险故事?六境仙侠大世界,全日制修仙学府,自由自在的修仙生活,仙界中的万般妙趣都在等待着仙友们亲自前往探索!“无为测试”预下载现已开启,仙友们可前往官网下载,开服前无法登录游戏服务器,激活码可在预下载安装完成后使用。《诛仙2》“无为测试”开放时间:4月23日10:00——5月6日23:59诛仙正统续作全新仙侠冒险篇章《诛仙2》以《诛仙》小说为蓝图,在继承原著世界观的基础上,将游戏背景设

PHP 持续集成中的 Jenkins:构建和部署自动化大师 PHP 持续集成中的 Jenkins:构建和部署自动化大师 Feb 19, 2024 pm 06:51 PM

在现代软件开发中,持续集成(CI)已成为提高代码质量和开发效率的重要实践。其中,jenkins是一个成熟且功能强大的开源CI工具,特别适用于PHP应用程序。以下内容将深入探讨如何使用Jenkins实现php持续集成,并提供具体的示例代码和详细的步骤。Jenkins安装和配置首先,需要在服务器上安装Jenkins。通过其官网下载并安装最新版本即可。安装完成后,需要进行一些基本配置,包括设置管理员帐户、插件安装和作业配置。创建一个新作业在Jenkins仪表板上,点击"新建作业"按钮。选择"Frees

国产FPS新王炸!《三角洲行动》大战场超出预期 国产FPS新王炸!《三角洲行动》大战场超出预期 Mar 07, 2024 am 09:37 AM

《三角洲行动》于今日(3月7日)将开启一场名为“代号:ZERO”的大规模PC测试。而在上周末,这款游戏在上海举办了一次线下快闪体验活动,17173也有幸受邀参与其中。此次测试距离上一次仅仅相隔四个多月,这不禁让我们好奇,在这么短的时间内,《三角洲行动》将会带来哪些新的亮点与惊喜?四个多月前,我已先行在线下品鉴会和首测版本中体验了《三角洲行动》。当时,游戏仅开放了“危险行动”这一模式。然而,《三角洲行动》在当时的表现已然令人瞩目。在各大厂商纷纷涌向手游市场的背景下,如此一款与国际水准相媲美的FPS

苹果快捷指令自动化怎么删掉 苹果快捷指令自动化怎么删掉 Feb 20, 2024 pm 10:36 PM

苹果快捷指令自动化怎么删掉随着苹果推出iOS13新系统,用户可以利用快捷指令(AppleShortcuts)来自定义和自动化各种手机操作,极大程度提升了用户的手机使用体验。然而,有时候我们可能会需要删除一些不再需要的快捷指令。那么,苹果快捷指令自动化怎么删掉呢?方法一:通过快捷指令应用删除在iPhone或iPad上,打开“快捷指令”应用。在底部导航栏中选

如何在Maven中禁用测试案例? 如何在Maven中禁用测试案例? Feb 26, 2024 am 09:57 AM

Maven是一个开源的项目管理工具,常用于Java项目的构建、依赖管理及文档发布等任务。在使用Maven进行项目构建时,有时候我们希望在执行mvnpackage等命令时忽略测试阶段,这在某些情况下会提高构建速度,尤其是在需要快速构建原型或测试环境时。本文将详细介绍如何在Maven中忽略测试阶段,并附有具体的代码示例。为什么要忽略测试在项目开发过程中,通常会

PHP Jenkins 101:玩转 CI/CD 的不二法门 PHP Jenkins 101:玩转 CI/CD 的不二法门 Mar 09, 2024 am 10:28 AM

简介持续集成(CI)和持续部署(CD)是现代软件开发中的关键实践,它们可以帮助团队更快、更可靠地交付高质量的软件。jenkins是一个流行的开源CI/CD工具,它可以自动化构建、测试和部署流程。本文将介绍如何使用PHP与Jenkins一起设置CI/CD管道。设置Jenkins安装Jenkins:从Jenkins官网下载并安装Jenkins。创建项目:从Jenkins仪表板中创建一个新的项目,并将其命名为与您的php项目相匹配的名称。配置源代码管理:将您的PHP项目的git存储库配置为Jenkin

不同语言的函数测试与覆盖率有什么区别? 不同语言的函数测试与覆盖率有什么区别? Apr 27, 2024 am 11:30 AM

函数测试通过黑盒和白盒测试验证函数功能,而代码覆盖率衡量了测试用例覆盖的代码部分。不同语言(如Python和Java)的测试框架、覆盖率工具和特性不同。实战案例展示了如何使用Python的Unittest和Coverage以及Java的JUnit和JaCoCo进行函数测试和覆盖率评估。

See all articles