• 3
  • 3
分享

一、安装

1.免费官网链接:https://www.getpostman.com/postman,下载好后双击.exe程序安装即可

2.注意事项:建议安装在非系统盘,即C盘以外的盘,路径最好用全英文路径

3.打开chrome->更多工具->拓展程序->加载本地已解压的postman至chrome中

4.打开postman,注册并登录,也可以跳过注册页,不登录也可以直接使用

二、postman使用

1.基本功能:

图1.png

导入项目:https://www.getpostman.com/collections/c8f98a1120357e0d4a5a

环境变量url:http://postmanexample.bayes.cafe

1)Collections:在Postman中,Collection类似文件夹,可以把同一个项目的请求放在一个Collection里方便管理和分享,Collection里面也可以再建文件夹。如果做API文档的话,可以每个API对应一条请求,如果要把各种输入都测到的话,就需要每条测试一条请求了。

2)上面的黑字注册是请求的名字,如果有Requestdescription的话会显示在这下面。下面的蓝字是保存起来的请求结果,点击可以载入某次请求的参数和返回值。保存请求的按钮在15

3)选择HTTPMethod(get/post/put/delete...)

4)请求URL,两层大括号表示这是一个环境变量,可以在16的位置选择当前的environment,环境变量就会被替换成该environment里variable的值

5)点击可以设置URL参数的key和value

6)点击发送请求

7)点击保存请求到Collection

8)设置鉴权参数,可以用OAuth之类的

9)自定义HTTPHeader,有些因为Chrome原因不能自定义的需要另外装一个插件Interceptor,在16上面一行的卫星那里

10)设置Requestbody,13那里显示的就是body的内容

11)在发起请求之前执行的脚本,例如requestbody里的那两个random变量,就是每次请求之前临时生成的。

12)在收到response之后执行的测试,测试的结果会显示在17的位置

13)有四种形式可以选择,form-data主要用于上传文件。x-www-form-urlencoded是表单常用的格式。raw可以用来上传JSON数据

14)返回数据的格式,Pretty可以看到格式化后的JSON,Raw就是未经处理的数据,Preview可以预览HTML页面

15)点击这里把请求保存到2的位置

16)设置environmentvariables和globalvariables,点击右边的x可以快速查看当前的变量。(一个项目如果需要测试好几个环境的情况,就可以对不同环境分别设置对应的环境变量)

17)测试执行的结果,一共几个测试,通过几个。

2.测试工具:

测试工具主要包括三部分,在发起请求之前运行的Pre-request,在收到应答之后运行的Test,和一次运行所有请求的CollectionRunner

1)pre-request

Pre-request的编写界面如下:

图2.png

Pre-request和Test用的语言都是JavaScript,Postman在一个沙盒里执行代码,提供给用户的库和函数可以在这里查看。而常用的功能都可以通过右边的CodeSnippets实现,点击就可以插入到代码区域

可以看到Pre-request里常用的功能有四种,清除全局变量、清除环境变量、设置全局变量以及设置环境变量。

①这条请求的pre-request就是在注册之前生成一个字符串作为随机用户名

postman.setEnvironmentVariable("random_username",("0000"+(Math.random()*Math.pow(36,4)<<0).toString(36)).slice(-4));

②其他用法还包括在发起请求之前获取当前的时间戳放在参数里:

postman.setEnvironmentVariable("unixtime_now",Math.round(newDate().getTime()/1000));

2)Test

Test的编写界面如下:

图3.png

①和Pre-request相比,Test的Snippets就丰富多了,例如检查状态码、检查响应串、验证JSON、检查header、限制应答时间

②如果需要将服务器响应的数据保存下来,用在后面的请求里,也需要在这一步做

③在图中的Test里,我首先检查了状态码为200,然后解析返回的JSON,把环境变量里的token设为JSON里的token

3)CollectionRunner

当编写了很多测试之后,就可以使用CollectionRunner来自动运行整个Collection了,入口就在主界面最上面一行的Runner。选好Collection、Environment,如果有需要还可以载入JSON和CSV作为数据源。点击StartTestRun,就可以看到结果了。

图4.png

这里可以看到一共发起了5次请求,每个请求各有一个Test,全部Pass。(虽然最后一个请求的返回是403,但是这个请求的期望返回值就是403,所以也是Pass的)

三、示例

流程:用户可以注册并登录,然后在系统里新建充值卡,并给这张卡充值

1.注册

生成一个随机字符串作为用户名和昵称

postman.setEnvironmentVariable("random_username",("0000"+(Math.random()*Math.pow(36,4)<<0).toString(36)).slice(-4));

发起请求

POST/index.php/usersHTTP/1.1
Host:postmanexample.bayes.cafe
Cache-Control:no-cache
Postman-Token:76791813-aac2-71fb-cad4-3e737f37c4d0
Content-Type:application/x-www-form-urlencoded
username=2mjk&password=123456&nickname=2mjk

运行测试、检查结果

tests["Statuscodeis201"]=responseCode.code===201;

2.登录

直接用刚才生成的环境变量发起请求

POST/index.php/authenticationHTTP/1.1
Host:postmanexample.bayes.cafe
Cache-Control:no-cache
Postman-Token:aac7d0ac-e0e3-ecf2-39da-b8dca672e3d7
Content-Type:application/x-www-form-urlencoded
username=2mjk&password=123456

运行测试、检查结果,并将返回的token记录下来

tests["Statuscodeis200"]=responseCode.code===200;
vardata=JSON.parse(responseBody);
postman.setEnvironmentVariable("token",data.token);

3.添加一张卡

先生成一个卡号和卡名

postman.setEnvironmentVariable("random_cardno",Math.round(Math.random()*9999999));
postman.setEnvironmentVariable("random_cardname",("0000"+(Math.random()*Math.pow(36,4)<<0).toString(36)).slice(-4));

然后发起请求,这里调用了刚才获取到的Token,放在header的自定义字段里作为鉴权(SAE不能用Authorization这个字段,不清楚原因)

POST/index.php/cardsHTTP/1.1
Host:postmanexample.bayes.cafe
X-Authorization:d4c4a0b7b36c73e7a13b7e24a596093b
Cache-Control:no-cache
Postman-Token:d44d573f-f17a-366c-2cd7-1d5b8b709233
Content-Type:application/x-www-form-urlencoded
cardno=1385526&desc=2mo8

运行测试

tests["Statuscodeis200"]=responseCode.code===200;

4.查询刚才生成的卡

发起请求,调用了刚才生成的卡号

GET/index.php/cards/1385526HTTP/1.1
Host:postmanexample.bayes.cafe
Cache-Control:no-cache
Postman-Token:1e5aca57-c3bb-7404-2791-c639cd60b5c8

运行验证,和刚才生成的卡名对比,并记录新卡的ID

vardata=JSON.parse(responseBody);
tests["checkcardname"]=data.desc===environment.random_cardname;
postman.setEnvironmentVariable("new_card_id",data.id);

5.充值

发起请求,使用了刚才获得的新卡ID

POST/index.php/depositHTTP/1.1
Host:postmanexample.bayes.cafe
X-Authorization:d4c4a0b7b36c73e7a13b7e24a596093b
Cache-Control:no-cache
Postman-Token:388c95e0-b5ce-9bbf-5816-084db7523384
Content-Type:application/x-www-form-urlencoded
cardid=1&amount=10

运行验证(由于是新建的用户,没有余额,无法给卡片充值,故返回403Forbidden)

tests["Statuscodeis403"]=responseCode.code===403;


作者:简单安安静

原文链接:https://www.cnblogs.com/annie1226/p/10765435.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   据《华尔街日报》报道,Meta 将于本周早些时候推出 Threads 的网络版,这是公司为 X(前身为 Twitter)量身打造的竞争产物。有趣的是,网页版的Threads自这一短消息社交平台服务开始以来一直缺失,令人沮丧。  Meta 首席执行官马克-扎克伯格(Mark Zuckerberg)在本月早些时候表示,公司正在努力增加这一功能,同时改进搜索功能(其实就是搜索功能--现在,你只能在该平台上搜索用户名),"未来几周内"就会准备就绪。  不过,《华尔街日报》称,消息人士透露,该功能的"推出计划尚未最终确定,可能会有变化"。莫塞里上周在 Thre...
            0 0 1005
            分享
          •   从事软件测试工作已经半年多了,刚入职的时候还是一个缺乏实际经验的小白,而现在拿到需求之后也能比较快速地熟悉业务并顺利开展测试,虽然不能说掌握了很多技能,但是相比之前也是有不少收获的,在这个过程中我总结了一点自己的心得,主要是觉得自己刚入行时做得不够好的一些方面吧。  在工作中要学会主动  记得我刚来的时候,对一切都不太熟悉,尤其是测试的系统,这个时候师傅会让我自己去熟悉。  在操作系统的过程中会遇到不理解的地方,当时因为刚来比较害羞,不太敢去问师傅,结果等师傅第二天问我系统熟悉得怎么样的时候,我说有地方不太懂,师傅说:“你怎么不当时直接问我呢?下次有问题记得要主动问我哦。工作中大家其实都很...
            0 0 956
            分享
          •   测试工程师这个岗位对于有些人来说,可能月薪过万很容易,可对于有些人来说,仿佛已经达到瓶颈,任凭工作再卖力每月也只是四五千的薪资,月入过万对于这些人来说就是可望不可即,那么这些人怎么才能冲破瓶颈,拿到满意的薪资呢?这篇文章就为大家解答一下。  其实对于一个技术岗位而言,最快的晋升方法就是提升我们的技术等级,下面小编就根据不同的技术等级为大家罗列出薪资,从事相关领域的小伙伴可以自行代入,这里的薪资参照区间以西安为主。  手工测试工程师,(月薪8k左右)  主要技能:测试分析+用例设计+测试执行  在测试行业,手工测试属于初级阶段,类似于游戏王者荣耀里面的青铜段位,一般这个段位基本上都是刚接手游...
            0 0 1289
            分享
          •   51Testing软件测试网正在收集测试行业问卷结果,如果你也想为测试行业的前景助力,就点击下方的链接提交答案吧,还有精美礼品等你拿(测试课程五选二)。链接:http://vote.51testing.com/  本人在今年互联网大环境如此严峻的情况下,作为一个刚毕业不到一年的初级测试,赶在“金九银十”依然拿到了一些面试机会,并且成功拿下4家公司的offer,其中不乏互联网大厂,而且最高总包给到了接近double(无炫耀的意思 〒▽〒)~  确定好要签的offer后,我决定来复盘一下这波求职的成功原因,也给身处迷茫期的测试朋友提供一个参考,同时抛砖引玉~  其实我认为最根本的原因是我迅速完...
            0 0 1420
            分享
          •   各位朋友大家好,大家应该都是被这么奇葩的标题吸引点击进来的吧,既然来了,那就跟我一起读下去吧,保证你这几分钟没有浪费(即使浪费了也能给你不一样的想法),废话不多说,大家坐稳,系好安全带,开始发车喽!!!  灵感来源  首先我先简单的做下自我介绍,我其实是一名比较菜的前端开发,或者不安于现状(网页开发),平时比较喜欢搞点稀奇古怪的开发工具,或者学点跨端开发(electron),开发个chrome插件,喜欢学习开发之外的技能, 自动化测试等等,再经历了一阵瞎折腾之后,依旧碌碌无为,没啥大成就,高不成低不就的继续做着养活自己的工作。都是为了这碎银几两。  突然有一天灵光乍现,做ete测...
            0 0 234
            分享
      • 51testing软件测试圈微信