• 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

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 小屌丝:鱼哥,我想写一个接口订单并发性能,能不能给我讲一下小鱼:接口订单并发?我前篇文章不是写过常见并发框架然后你在追加一个创建订单和生成订单不就可以了?小屌丝:鱼哥,你说的可轻松,那你能不能来一个?小鱼:好吧,那我就以我某个项目为例,我们实际的看一下,都需要哪些步骤。小屌丝: 鱼哥,就你这一点,最招人稀罕。哈哈!小鱼:挖草了~~那么我们就来分析一下,订单并发性能,我们想要什么:    >>1.订单并发数    >>2.成功订单数    >>...
            1 0 17523
            分享
          • 一、高阶使用1.1 拦截网络请求网络拦截:无响应 pass中止 route.abort("aborted")放行 route.continue_()处理, 返回自定义的响应 route.fulfill()Playwright使用 router 方法,并且传递以下参数:url 要拦截地址表达式:n glob表达式n 正则表达式n 返回布尔值的函数handler ,拦截后进行执行的函数n 接受 router 参数中止响应,代码示例:自定义响应,代码示例:本来访问百度,自定义返回中访问到了金山文档首页。1.2 pytest 管理用例市面上的流行框架:unittest(标准库)、p...
            0 0 6942
            分享
          •   最近收到很多问题:诸如,女生适合做软件测试吗?软件测试靠谱吗?35岁转行到软件测试可以吗?大专学历做软件测试有人要吗?25岁转行到软件测试可以吗?等等。  大田说说自己的心里话:  1、做软件测试与性别没多大关系;  2、大专学历或以下,建议先提升学历,可以看到现在招聘市场都需要本科以上学历;  3、转行的,之前没做过软件测试的,最好先了解软件测试到底是做什么的,需要哪些必备技能,学完要多久,不让自己后悔;  4、不能说软件测试靠谱不靠谱,个人认为既然有开发必定有测试,当然,也不排除个别公司让开发也做测试工作。任何工作做好了都具备很强的不可替代性,所以别问软件测试靠不靠谱,问问自己靠不靠谱...
            0 0 644
            分享
          • 前言容器化这个词,对于互联网公司的运维人员来说是非常熟悉的。但我们测试开发的兄弟姐妹可能会有疑问:这个与测试有什么关系?其实不是有关系,而是回归到我们平时工作中遇到的困难,以及对于这些困难,我们提供了什么解决方案。不管从事开发工作也好,测试工作也罢,如果懂得容器化会对自己的工作有很大的增益。工欲善其事必先利其器,容器化(Docker)不管对于开发者来说,还是测试人员来说都是一把利器。比较重要的一点是可以帮忙公司降低cost,这对于老板们来说是非常有说服力的,以下给大家举两个例子,说明一下Docker的用处,都是女巫工作中遇到的典型案例,当然这远远不能全面说明Docker的好处,但是已经很能说明...
            10 10 1628
            分享
          • 运营反馈,老年用户的手机多设置为大字体,在使用我们app过程中,由于字体被放大,导致布局错乱,部分功能按键遮挡,无法正常使用。收到问题,着手解决,除了对界面布局进行改写,改为约束布局,对app字体大小也进行统一管理,然而这不是主要的,最主要的是避免系统更改app字体的大小。Android提供了相关的方法用来实现 public class DisplayUtil {         /**        &n...
            0 0 1114
            分享
      • 51testing软件测试圈微信