使用PostMan进行自动化测试
最近在进行一个老项目的升级,第一步是先将node版本从4.x
升级到8.x
,担心升级会出现问题,所以需要将服务的接口进行验证;
如果手动输入各种URL,人肉check,一个两个还行,整个服务。。大几十个接口,未免太浪费时间了-.-;
因为是一个纯接口服务的项目,所以打算针对对应的API进行一波自动化测试;
所以就开始寻找对应的工具,突然发现,平时使用的PostMan
貌似也是支持写测试用例的-.-,所以就照着文档怼了一波;
一下午的时间,很是激动,之前使用PostMan
仅限于修改Header
,添加Body
发送请求,从来没有考虑过拿PostMan
来进行测试,一下午的使用,感觉发现了新大陆。
PostMan的安装
貌似下载和使用PostMan
必须要翻墙-.-
因为现在提供两种形态的App:
chrome
的插件 (已经快要被废弃了,推荐使用独立App)独立的App
而且在使用时需要登录账号,我这边是直接登录的Google
账号-。-貌似有其它方式,但是我并没有去尝试。
独立App版云盘地址(Mac
版本,今天刚下载的6.0.10,需要的请自取):
链接:https://pan.baidu.com/s/18CDp... 密码:mrpf
下载完毕解压后直接运行即可,然后就是注册账号之类的,目测账号这一块主要是用于后续的小组分享需要(可以直接将你的调用记录分享给其他人)。
发送一个请求
这是PostMan
最基础的一个用法,用来发送一个请求。
可以设置Header
,Body
等信息。
Collections
我们可以将每次发送的请求进行保存,方便下次请求该接口时,直接调用即可,
如果保存请求的话,会被保存到一个Collections
里去,类似一个集合。PostMan
提供了方法,能够一键运行整个Collections
中所有的请求。
然后我们就可以在需要的时候,直接运行集合中所有的请求了。
保存请求记录的时候,在下边选择对应的Collection
即可
开始API测试
测试脚本位置
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
二级接口根据List
的ID
进行获取对应信息。
如何处理大量重复的断言逻辑
针对单个API,去编写对应的断言脚本,这个是没有什么问题的。
但是如果是针对一个项目的所有API
去编写,类似于判断statusCode
这样的断言就会显得很溶于,所以PostMan
也考虑到了这点。
在我们创建的Collection
以及下层的文件夹中,我们可以直接编写针对这个目录下的所有请求的断言脚本。
这里的脚本会作用于目录下所有的请求。
这样我们就可以将一些通用性的断言挪到这里了,在每个请求的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设置:
设置完后我们就可以这样使用了:
基本上在所有的可输入的地方,我们都能够使用这些变量。
environment
环境变量,这个是权重比global
要高一些的变量,是针对某些环境来进行设置的值。
操作方式类似。
在使用代码操作的方式时,只需将globals
替换为environment
即可。
在发起一个请求,或者一键发送所有请求时,我们可以勾选对应的环境,来使用不同的变量。
在针对大量API测试时,拿environment
来设置一个domain
将是一个不错的选择。
这样在请求中我们只需这样写即可:
{{domain}}/res1 {{domain}}/res2 domain: https://api.github.com
一个简单的示例:
通过直接运行一个Collection
,我们可以很直观的看到所有的接口验证情况。
参考资料
https://www.getpostman.com/do...
之前使用PostMan
,最多就是模拟一下POST
请求,最近刚好碰到类似的需求,发现原来PostMan
还可以做的更多。
这篇只是使用PostMan
进行API测试的最基础操作,还有一些功能目前我并没有用到,例如集成测试、生成API
文档之类的。
接口相当于是获取和操作服务资源的方式,肯定属于产品的核心。
所以测试是必须的,在交付QA同学之前,自己进行一遍测试,想必一定能节省一部分的时间。
相关推荐:
chrome插件postman安装问题_html/css_WEB-ITnose
以上是使用PostMan进行自动化测试 的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

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

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

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

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

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

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

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

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