• 8
  • 9
分享

一、准备

1、postman工具

2、搭建被测系统服务

3、fiddler抓包工具

说明:本此实战测试是在完成前台界面开发后进行的,接口是通过fiddler抓包获取的。(如果没有完成系统前台开发,以项目组输入的接口为准进行测试也是一样的原理)

二、完成后

先看一下完成后的情况:

①设置环境变量,可区分是线上环境、测试环境、开发环境等不同的环境(可将变化的变量存放在此,如:ip、port、用户信息、token等)。

②新建要测试的接口:请求方式支持get、post、put、delete等

③保存新建的接口,便于下次继续使用,如:切换环境后接口确认及版本升级后回归测试。

1.jpg

三、具体操作-以登录接口为例

1、设置环境变量

2.0.jpg

3.0.jpg

2、新建接口请求

4.0.jpg

④为当前接口使用到的环境变量

⑤为接口地址,其中{{baseurl}}和{{port}}为④环境变量中设置的key值

①为消息头设置:如果不清楚具体有哪些内容,可以直接把用fiddler抓包到的所有的消息头都拷贝过来(我是拷贝过来后在调试脚本过程中把没有用到的信息又全部都删除了,所以只有1个,而不是下图刚拷贝过来的8个)

5.0.jpg

6.0.jpg

②为body:body中value也为④环境变量中设置的key值

7.0.jpg

③为tests,完成tests编写后操作send发送请求;查看tests结果

8.0.jpg

tests内容的目的是判断响应的结果是否准确,具体内容可以按照下面的代码块这样编写
//判断响应结果是否是200
pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});
//判断响应结果是否包含
pm.test("Body matches string", function () {
    pm.expect(pm.response.text()).to.include("登录成功");
});
pm.test("Body matches string", function () {
    pm.expect(pm.response.text()).to.include("xxxx");
});

9.0.jpg

上图为登录接口返回的body内容,在编写tests是会用到这个。

4、保存接口:便于下次继续使用

10.0.jpg

四、其它使用场景

1、token/cookie传递

涉及到登录后才能进行的操作就需要在请求头中添加上cookie信息,下面以get接口为例实操如何进行传递。

第一步:将返回的内容转化为json格式,并且取到token内容添加到环境变量中。具体做法为,在login的tests中加入下面的代码。(环境变量中的token值就会实时更新,也保证了cookie的时效性)

//将返回的内容转化为json格式,并且取到token内容添加到环境变量中
var data = JSON.parse(responseBody);
postman.setEnvironmentVariable("token", data.token);

第二步:在要使用到cookie的接口的header中加入Cookie:user-jwt-token={{token}}

11.0.jpg

使用fiddle抓包到的消息头为:

12.0.jpg

2、多接口批量执行

13.png

查看上图最右侧的运行结果,可获得具体失败的接口及是接口中哪个判断或断言失败的信息。

14.png

3、复杂场景跳转

15.png

如:在执行完登录接口后直接跳转到customers接口,在login接口的tests里面就可以加入下面的代码:
//跳转到products接口(使用场景:按照条件跳过不必要的接口)
//setNextRequest() 函数不管在 Tests 脚本中何处被调用,它都只在当前脚本最后才被真正执行
//指定的跳转接口必须属于同一个集合中
//postman.setNextRequest() 只在运行集合测试的时候生效,也就是说我们单独运行 (Send) 接口Request1 时,函数是不起作用的
postman.setNextRequest("customers")
//postman.setNextRequest("login bf")

4、区分环境进行运行

前置条件:存在多套环境

16.png

单个接口运行环境选择见上图,批量运行时运行环境选择见下图:

17.png

5、console调试

打开方式:Alt+Ctrl+C

18.png

打开后页面如下图所示:

19.png

在接口请求的Pre-request Script 中填写

//默认只能发送get请求
pm.sendRequest("https://postman-echo.com/get", function (err, response) {
    console.log(response.json());
});

填写后点击“send”运行,查看运行当前接口在console中展示

20.png


作者:信号a

原文链接:https://blog.csdn.net/weixin_46662419/article/details/107220035#comments_13344354

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 一、前言相信不少,应该说绝大数的测试同学都遇到过这样的场景,上线出现了BUG,被质问:为什么没测出来!测试怎么测得?到底会不会测?这对测试来说是灵魂拷问级别不好回答的问题了。那么我们遇到类似这样的提问该如何回答、解决呢?二、如何回答和解决其实当遇到线上出现问题的时候,不管这个问题是谁的锅, 先以解决问题为主, 先复现问题, 再配合开发调试定位问题进行修复, 然后测试完成进行紧急的修复上线才是最应该做的事情!这个时候也不要进行任何甩锅的操作,也不要默不作声的不说话。可以回答说:我们会在这个问题修复上线后进行复盘,找出问题出现的原因,如果是测试团队的问题,我们会主动承担责任并作出总结,避免下次再犯...
            13 12 2372
            分享
          •   1、前言  大家好!我是Meng  前段时间,很荣幸被一合作伙伴邀请发表一篇文章,主题为"这些年,我所从事软件测试的一些感悟",正好趁着这个机会,我也好好总结一下。  2、测试培训  对于软件测试,在培训之前也不知道是干什么的,只知道有软件开发,之后才知道有软件测试这个行业。  刚开始也是在徘徊是做开发还是做测试,经过多次被测试机构的招生老师洗脑后,开始进行了软件测试培训之旅。那时候测试培训机构就那么几家,基本都是机构,个人的很少,培训机构是线下的,线上的也很少。培训价格方面也是过万了,跟现在的培训机构差不多,也就便宜了几千而已。  回头一想想,那时候教的内容,真的很少...
            0 0 1017
            分享
          •   测试面试话题1:敏捷开发与测试  以下是我个人总结的一些经验:  传统开发模式:V模式,瀑布模式。传统开发模式往往循规蹈矩,从需求,概要设计,详细设计,开发,单元测试,集成测试,系统测试,验收测试,上线发布,整个周期往往需要半年到一年,由于周期长,产品在开发过程中会存在需求变化,传统模式不适应需求的变化。为了解决这个问题,当前出现了敏捷模式。  敏捷分为敏捷开发和敏捷测试,特点和特征是:  1. 测试驱动开发和行为驱动测试  测试驱动开发是指开发先写单元测试,再写开发的代码,当单元测试跑通的时候,代码开发就完成了。  行为驱动测试是通过直接写user story,例如Cucumber框架,...
            0 0 1177
            分享
          •   内卷,是现在热度非常高的一个词汇,随着热度不断攀升,隐隐有了“万物皆可卷”的程度。究其来源,内卷这个词的出现,是伴随着996开始讨论的。很不幸,996、福报等等这些词的重灾区和源头就是计算机/互联网行业。那么作为行业中一个非常重要的分支,测试圈的情况怎么样呢?  软件测试圈的内卷是怎样的?  在谈起测试圈的内卷之前,我们必须先搞清楚我们常说的内卷是什么。  内卷,网络流行词,本意是指人类社会在一个发展阶段达到某种确定的形式后,停滞不前或无法转化为另一种高级模式的现象。当社会资源无法满足所有人的需求时,人们通过竞争来获取更多资源。  后经网络流传,用来指代非理性的内部竞争或“被自愿”竞争,现...
            13 13 1907
            分享
          • Linux操作系统的不断发展,给全世界的系统研究带来了一股新的活力。下面由学习啦小编为大家整理了Linux主流的操作系统的详细介绍,希望对大家有帮助!Linux主流的操作系统详细介绍如今,随着Linux的不断发展,Linux所支持的文件系统类型也在迅速扩充。伴随着Linux新版本的发行,出现了大量的文件系统可能性,其中每一个不同版本的Linux所支持的文件系统类型种类都有所不同,使得用户很难了解这些不同版本产品的特点和应用方式。再有,基于Linux开放源码的特性,越来越多大中型企业及政府也投入更多的资源来开发Linux.现今世界上,越来越多国家逐渐的把政府机构内部门的电脑转移到Linux上,加...
            0 0 929
            分享
      • 51testing软件测试圈微信