Postman和Newman:API测试工具的介绍与基本操作指南

更新:10-29 神话故事 我要投稿 纠错 投诉

今天给各位分享Postman和Newman:API测试工具的介绍与基本操作指南的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

简单分析:

优势

易于上手

提供录音插件,提高Case写入速度

官方文档齐全,用户众多

ETC。

不足的

可扩展性差

无法与数据库结合

不开源

案例验证手段较少

使用简单:

官方地址:https://www.getpostman.com/

邮递员安装

对于Windows系统,需要先安装Chrome浏览器,然后在应用商店中找到Postman插件,点击直接安装:https://chrome.google.com/webstore/detail/postman/fhbjgbiflinjbdggehcddcbncdddomop?hl=cn

粘贴_图像.png

测试GET 类型API

本节摘录:http://www.jianshu.com/p/61cfcb436ee4

以豆瓣图书搜索API为例

粘贴_图像.png

该接口的方法是get。 Postman默认获取。在url栏中输入待测试的接口。

获取请求

接口文档中q和tag其中之一是必填项,所以需要在这里配置参数。单击url 右侧的params 并输入参数。

单击发送按钮发送请求。下面您可以看到返回的响应、响应状态代码和响应时间。

响应也可以通过不同的方式查看,也可以看到cookies和headers信息

每次不同的参数或设置,左边的历史记录会帮助我们记录一个接口测试历史记录,以便下次再次调用。

测试POST 类型API

以Postman提供的接口为例

选择请求方式为POST,输入接口地址。由于大多数post请求都是json形式,所以可以打开Body选项,选择JSON(application/json)形式,输入请求的json。其余操作与GET接口相同。

邮政

可变设置

编写的API往往需要在多个环境中执行,而Postman提供了两种类型的变量:环境变量和全局变量,很好地解决了这个问题。

环境变量的有效范围仅在您选择的环境中,全局变量在所有环境中使用。

环境变量

该API可能需要在拨号环境下运行,因此该API请求的服务器地址不能被硬编码。希望可以配置一下。创建环境变量的方法有很多种。

提前手动创建环境变量

添加ENV.gif

代码自动创建环境变量

自动创建环境变量可以分两种情况创建,但创建方法是一样的,都是使用postman提供的方法:

postman.setEnvironmentVariable("键", "值");

在发起请求之前创建:

在Pre-request Script 标签中添加代码:

autoENV1.gif

发出请求后创建:

在测试标签中添加以下内容

粘贴_图像.png

全局变量

所有变量的创建与环境变量类似。它们也可以提前手动或通过代码创建。

预先手工创建

全局变量设置.gif

通过代码创建

2.1 发起请求前创建

在Pre-request Script 标签中添加代码:

postman.setGlobalVariable("key","value");

2.2 发起请求后创建

在测试标签中添加以下内容:

postman.setGlobalVariable("key","value");

变量引用

只需在需要的地方添加{{variable name}}

随机数

除了提供环境变量和全局变量之外,PostMan还提供了三种类型的随机数。

{{$指导}}

:添加V4风格的GUID

{{$时间戳}}

:将当前时间戳设置为最接近的秒

{{$randomInt}}

:添加0到1000之间的随机整数

测试

本节摘录:http://www.jianshu.com/p/61cfcb436ee4

Postman可以在测试中使用自己的脚本来测试接口。点击tests选项卡后,可以看到右侧有一个snippets栏,其中包含postman内置的测试脚本,用于辅助测试接口。

选择其中一个脚本,修改参数,然后再次单击“发送”。此时,响应测试中出现1/1,表示测试已执行并通过。绿色通过表示验证已通过。

红色失败表示测试失败。您可以为一个接口编写多个脚本以进行多个测试。

内置脚本说明:

1. 清除全局变量。对应脚本:postman.clearGlobalVariable("variable_key");参数:要清除的变量的key。 2. 清除环境变量。清除环境变量。对应脚本: postman.clearEnvironmentVariable("variable_key") ;参数:key3.response 需要清除的环境变量内容响应body:包含字符串对应脚本:tests["Body matches string"]=responseBody.has("string_you_want_to_search");参数:预期内容4. 将响应转换为xml 格式响应主体:将XML 主体转换为aJSONObject 格式。对应脚本:varjsonObject=xml2Json(responseBody);参数:(默认不需要设置参数,就是接口的response)需要转换的xml5.response等于期望的内容。响应体:等于一个字符串。对应脚本:tests["Body正确"]=responseBody==="response_body_string";参数:期望的response6.json解析key的值进行验证响应body:JSONvalue检查对应脚本:tests["Args key contains argument pass as urlparameter"]="test"inresponseJSON.args参数:test替换测试值,args替换已测试key7。检查响应的头信息是否有被测试的字段Response headers:Content-Type header check 对应脚本:tests["Content-Type is present "]=postman.getResponseHeader("Content-Type");参数:预期header8。响应时间判断响应时间小于200ms 对应脚本:tests["响应时间小于200ms"]=responseTime200;参数:响应时间9. 设置全局变量设置全局变量对应脚本:postman.setGlobalVariable("variable_key","variable_value");参数:全局变量的key值10.设置环境变量Setan环境变量对应脚本:postman.setEnvironmentVariable("variable_key","variable_value ");参数:环境变量的键值11、判断状态码Status code:Code is200 对应脚本:tests["Status code is 200"]=responseCode.code !=400;参数:Status code 12、检查code name是否包含内容Status code:Code name has string 对应脚本:tests["Status code name has string"]=responseCode.name.has("Created");参数:期望的code name包含字符串13.成功的post请求状态码:成功的POST请求对应的脚本:tests["成功的POST请求"]=responseCode.code===201||响应代码.code===202;14。使用Tiny Validator 进行JSONdata 对应脚本: varschema={"items": {"type": "boolean"} };vardata1=[true,false];vardata2=[true,123];console.log(tv4.error);测试["有效数据1"]=tv4.validate(data1, schema);测试["有效数据2"]=tv4.validate(data2, schema);参数:可以修改items中的键值对,对应验证json的参数

使用Runner 函数和外部数据

Postman工具自带了Runner功能,可以批量运行脚本。您还可以使用外部CSV 或json 文件在运行时指定数据。

例如,现在创建以下两个外部数据,第一个保存为.json 文件,第二个保存为.csv 文件。

json.png

csv.png

创建以下GET 请求API 并在单独的文件夹中管理它。接口请求中的{{host}}用于获取上一步创建的两个文件夹中的数据。 {{}}中的名称对应json文件的键值和csv文件中的第一行值。

粘贴_图像.png

点击Runner按钮,打开Runner界面:

粘贴_图像.png

在新打开的窗口中选择要创建的文件夹名称,选择要运行的环境、运行次数并在Data File中选择新创建的外部json或csv文件,选择文件类型,点击开始Test,开始一一读取外部文件中的数据并运行。

粘贴_图像.png

邮递员拦截器

Interceptor可以直接从浏览器获取请求并保存在Postman的History中。该插件可以大大缩短API配置的时间。同样,Interceptor也有一个功能可以让Postman和Chrome浏览器共享Chrome cookie。

安装拦截器

Interceptor也是Chrome的一个插件,所以你也可以从Chrome在线商店找到插件:https://chrome.google.com/webstore/detail/postman-interceptor/aicmkgpgakddgnaphhhpliifpcfhicfo/support?hl=cn,点击安装直接地。安装完成后,您将在Chrome插件中找到如下标志。

粘贴_图像.png

使用拦截器

打开Interceptor插件,设置要抓取的网站的请求。

粘贴_图像.png

同时在Postman上打开Interceptor

粘贴_图像.png

这时,当你在Chrome浏览器上访问一些百度相关的域名时,它们就会被Postman自动抓取并显示在Postman的历史记录中。

粘贴_图像.png

纽曼

官方帮助文档地址:https://www.npmjs.com/package/newman

纽曼安装

嗯,它需要安装,因为它不是音乐播放器! Newman是为Postman而生的,专门用来运行Postman编写的脚本。纽曼安装步骤:

需要安装nodejs并配置环境

打开控制台并运行: npm install -g newman

粘贴_图像.png

验证安装是否成功,运行:newman --version

粘贴_图像.png

纽曼执行脚本

Newman在3.0版本之后做了比较大的改动,但是运行命令变得越来越简单如下:

纽曼运行[选项]

run后面是要执行的json文件或者URL(json和URL都是postman导出生成的),后面是一些参数,比如环境变量、测试报告、接口请求超时时间等。最后这里是两个完整的参考示例:

示例1,通过newman运行postman导出的test1.json文件,生成各种测试报告(json、junit的xml、html):

newmanrunc:test1.json--reporterscli,html,json,junit--reporter-json-exportjsonOut.json--reporter-junit-exportxmlOut.xml--reporter-html-exporthtmlOut.html

示例2,运行https://www.getpostman.com/collections/cb0cea0af1467c8008fb(由postman生成)中的所有API并使用env.json作为环境变量,globals.json作为全局变量,并使用external data.csv作为外部数据,最后接口请求超时设置为5S。

纽曼运行https://www.getpostman.com/collections/cb0cea0af1467c8008fb --environment env.json --iteration-data data.csv --globals globals.json --timeout-request 5000

詹金斯联合收割机

日常生活中做界面自动化的时候,最终都免不了要通过Jenkins来构建。现在Newman提供了控制台命令执行方式,通过Jenkins构建起来就容易多了。

第1 步:在Jenkins 机器上安装Newman

第2步:设置Jenkins环境并创建新的自由式作业

第三步:构建,选择执行Windows批处理命令,输入newman运行命令

粘贴_图像.png

步骤4:由于上述命令中的构建会生成JUnit xml报告,因此可以在构建后使用Publish JUnit测试结果报告插件来生成测试报告。

粘贴_图像.png

更新于8/31/2018

最近我发现Postman已经从chrome商店下架了。原因猜测是因为chrome计划取消chrome应用程序。现在postman只能安装桌面版。所以桌面版的捕捉方式发生了变化。今天顺便简单说一下桌面版是如何捕获浏览器请求的。

单击代理,打开代理设置,设置代理端口和捕获保存位置。设置截图的5555端口并将其保存到历史记录中。

图片.png

设置IE或系统代理。以win 10系统为例,打开IE,设置代理。 (不使用时记得关闭IE或系统代理)windows上设置代理请参考:https://www.howtogeek.com/tips/how-to-set-your-proxy-settings-in-windows-8.1 /

图片.png

图片.png

好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!

用户评论

坠入深海i

终于找到一篇讲 Postman + Newman 的教程了!最近想学习自动化测试,这两个工具看起来很有用。

    有19位网友表示赞同!

为爱放弃

以前只听说过 Postman,不知道 Newman 是干啥的,这篇文章介绍清楚了,挺好理解的。

    有9位网友表示赞同!

花花世界总是那么虚伪﹌

想试试把 API 接口的测试脚本化一下,这款工具应该很管用吧?

    有18位网友表示赞同!

几妆痕

做开发的时候经常会用到 API接口测试,这个教程真是太棒了!

    有17位网友表示赞同!

瑾澜

简单易学啊,看这篇文章很快就入门了。我现在就可以开始实践了!

    有13位网友表示赞同!

强辩

Newman 可以把 Postman 的测试场景保存起来自动化跑,那是不是可以每天定时进行测试呢?

    有20位网友表示赞同!

来自火星的我

对于学习自动化测试这个方向的新手来说,这篇介绍非常适合入门。

    有5位网友表示赞同!

浅嫣婉语

之前一直觉得编程和 API测试离我很远,现在看这篇文章好像不是那么遥远了!

    有7位网友表示赞同!

走过海棠暮

想找一个简单又实用的工具来做API接口测试,这篇文章刚好满足我的需求!

    有12位网友表示赞同!

盲从于你

以前都是手动测试 API 接口,太耗时间了,以后试试 Newman 自动化一下吧。

    有20位网友表示赞同!

愁杀

Postman 用起来很方便,有了 Newman 就更方便了,双管齐下真是厉害!

    有7位网友表示赞同!

Hello爱情风

终于不用每天手动测试了,Newman 能帮我节省很多时间啊!

    有17位网友表示赞同!

灼痛

这篇文章介绍得非常全面,包含了 Postman 和 Newman 的基础知识以及一些简单使用案例。

    有8位网友表示赞同!

败类

学习了一下 Postman 和 Newman 的使用方法,感觉很有潜力可以用来提高工作效率!

    有15位网友表示赞同!

三年约

这篇文章让我对 API 自动化测试有了更深的了解,感谢作者的分享!

    有19位网友表示赞同!

失心疯i

以后做项目的时候,一定要学会用这些工具来测试接口,相信会让我在开发过程中更加节省时间和精力。

    有6位网友表示赞同!

作业是老师的私生子

这篇教程很适合用来记录学习 Postman 和 Newman 的笔记,方便以后回顾。

    有20位网友表示赞同!

水波映月

希望作者以后能继续分享更多关于 API 测试相关的文章,我也想学到更多的知识!

    有12位网友表示赞同!

余温散尽ぺ

感谢作者!这篇文章让我能够快速入门使用 Postman + Newman。

    有16位网友表示赞同!

【Postman和Newman:API测试工具的介绍与基本操作指南】相关文章:

1.蛤蟆讨媳妇【哈尼族民间故事】

2.米颠拜石

3.王羲之临池学书

4.清代敢于创新的“浓墨宰相”——刘墉

5.“巧取豪夺”的由来--米芾逸事

6.荒唐洁癖 惜砚如身(米芾逸事)

7.拜石为兄--米芾逸事

8.郑板桥轶事十则

9.王献之被公主抢亲后的悲惨人生

10.史上真实张三丰:在棺材中竟神奇复活

上一篇:探寻《六祖坛经》中的经典画面 下一篇:探索二次元文化:揭秘刷爆网络社区的十大热门梗,你了解多少?