Ella_Wu

坚持你应该坚持的

Postman基础篇 - 特殊接口测试

​“上篇给大家介绍了使用Postman对几种普通类型的接口请求。但接口类型很多,除了快速上手的那些基本接口外,还有一些特殊的接口,比如签名接口校验、携带cookie和token的接口等等。今天就接着介绍几个特殊的接口请求~ 

 

 

01

 

签名接口

 

    在写开放的API接口时,为了保证数据在通信时的安全性,可以采用参数签名的方式来进行相关验证。

    那么在Postman中怎么校验这种类型的接口呢?举例如下:

    签名接口的相关参数

        url:http://www.neeo.cc:6002/pinter/com/userInfo

        类型:POST

        参数:

       {"phoneNum":"1234","optCode":"testfan","timestamp":"12..2","sign":"Md5(手机号+盐+时间戳)"}

    以上信息显示接口类型为POST,参数类型为json,根据上篇文章可知参数需要填写在body的raw类型中。具体如下:

    

参数中需要用到几个固定字段,这需要我们在接口请求之前定义好。在Pre-request Script中将对应字段定义并赋值(js编码),具体如下:    

字段赋值后使用md5加密,并将定义好的值set到全局变量中,同时在json参数中引用这几个全局变量,此时点击send按钮,接口就可以正常返回:

    同时可以查看全局变量是否显示在列表中,如下:

   

 ok,经过一系列的操作,我们就将这个签名接口调通了🤗。

 

02

 

 

携带Cookie的接口

 

    首先简单解释一下Cookie有啥用~

    HTTP协议本身是无状态的,无状态就代表服务器没有办法判断用户身份。Cookie实际上是一小段的文本信息(key-value格式)。客户端向服务器发起请求,如果服务器需要记录该用户状态,就使用response向客户端浏览器发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器通过该Cookie来辨认请求用户的状态、身份等。

    说完Cookie的作用,再来看postman如何处理需要携带cookie的接口。    

    先举例一个场景,用户需要登录某网站,登录成功,返回一个cookie,然后用户需要携带cookie在进行进一步操作,比如查询余额等。

我们测试这种类型的接口时,有两种方式:

  • 第一种,就是我们使用浏览器登录,获取cookie值,然后手动携带。

  • 第二种,就是借助postman帮我们自动的管理cookie值。

     

    先来看第一种方式,查询余额接口必须依赖登录成功返回的Cookie

    1、登录接口的相关参数:

     url:http://www.neeo.cc:6002/pinter/bank/api/login

    类型:POST    参数:userName=admin&password=1234

   

2、查询余额接口相关参数:

     url:http://www.neeo.cc:6002/pinter/bank/api/query

    类型:GET    参数:userName=admin

    首先,我们需要在浏览器中访问http://www.neeo.cc:6002/pinter/bank/page/login连接, 输入admin&1234进行登录,登录成功后,我们获取到了cookie值。

    不要关闭网页,并保持登录状态。此时我们使用Postman做查询余额接口的请求,在请求中使用获取到的cookie值(testfan-id=1542a882-7355-47b5-91b0-f8cf052c8560),如下:

 

   手动携带cookie的方式就完成了,但是这种手动方式携带的Cookie在网页关闭之后就立刻失效了,每次请求都需要手动做登录操作并复制获取到的Cookie值,相对会比较麻烦。

    我们来看第二种,在postman中,新建一个登录的接口,请求成功之后再请求查询余额的接口。

    此时再请求查询余额接口就不用携带cookie了,直接访问即可,如下图:

    是不是比第一种简单多了~ 

    我们查看此次接口请求的cookies栏,发现其中是有值的,那么这个值是怎么来的呢?

    这里自动携带cookie的原因就在于我们在请求查询余额接口之前,先请求了登录接口。在登录接口请求成功之后,会在本地的MANAGE COOKIES中保存该地址的cookie,如下图:

    此时,postman就自动的帮我们管理了该地址的cookie。当我们再次请求同一个域名 的url时,就会自动将cookie携带到请求当中,不用我们每次都手动填写。而且这种方式也不是一次性的,可以在一段时间内供多个接口请求使用。

    上面这个窗口中同样支持手动添加cookie,如果有需要也可以手动填写哦~

 

 

03

 

携带token的接口

 

    对于token这个词,测试小伙伴应该都很熟悉吧~ 🥳

    Token跟cookie一样,都是服务端生成的一串字符串。作为客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码。

    最简单的token组成:uid(用户唯一的身份标识)、time(当前时间的时间戳)、sign(签名,由token的前几位+盐以哈希算法压缩成一定长的十六进制字符串,可以防止恶意第三方拼接token请求服务器)。

    Token的目的是为了减轻服务器的压力,减少频繁的查询数据库,使服务器更加健壮。在接口测试中,会频繁碰到携带token为参数的接口哦~

    那接下来我们就来研究一下postman如何处理需要携带token的接口。跟处理携带cookie的接口一样,我们测试这种类型的接口时,有两种方式:

    第一种,就是我们使用浏览器登录,获取token值,然后在请求查询余额的接口时将获取的值手动填写。 

1、从浏览器中获取token值

2、在请求接口时手动填写token值

    第一种方式就酱搞定!✿✿ヽ(°▽°)ノ✿

 

    接着看第二种方式,同样是借助postman帮我们自动管理token值。

    1、登录接口的相关参数:

     url:http://www.neeo.cc:6002/pinter/bank/api/login2

    类型:POST    参数:userName=admin&password=1234

   

2、查询余额接口相关参数:

     url:http://www.neeo.cc:6002/pinter/bank/api/query

    类型:GET    参数:userName=admin

    1、使用登录接口,登录成功之后从响应的json中提取token(tests中的内容会在接口执行完成之后调用,下一篇的断言中会详细介绍),然后将token保存到postman的环境变量中。

接口请求成功↑

 

token值set到全局变量中↑

 


    2、请求查询余额接口,在token参数值位置使用全局变量调用{{my_token}},点击send:

请求成功↑

    ok,酱完事了。

 

04

webservice类型的接口

 

    webservice类型接口简单来说,是通过xml进行交互的web请求,本质上也是一种HTTP请求。

    Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。是通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。

    可以通过soupui来测试,也可以通过jmeter来测试。常用webservice接口网站:

http://www.webxml.com.cn/zh_cn/index.aspx

    这个网站提供了很多webservice接口,我们可以直接调用测试,主页如下:

    点击WEB服务按钮,页面会显示可用的各类接口列表,我试了几个,找了一个结果显示比较简单的简体和繁体字转换的服务,如下:

    点击EndPoint后面的链接,会在页面中给出两个选择,这里选择简体转繁体。

输入我的名字后,点击“调用”按钮:

结果显示如下:

    这就说明这个接口是通的,我们将这个接口(EndPoint后面的链接)复制到postman中进行请求。

    可能会有小伙伴好奇两点:1、body中的数据是哪里来的;2、为啥结果显示的都是???

    其实在web的接口测试调用的页面已经在下面显示了该段数据,如下:

    TIP:在Postman中使用时,要记得将string中的值转换成你想要转换的值哦~~

    至于为啥接口响应的值中显示的都是???,那个是字符类型的原因,可以理解为乱码,并非响应出错哦~

    为防止有童鞋担心过程有问题,我又尝试了一下手机号归属地获取的接口。看下图,是能够正常获取的吧~

    至此,webservice的接口就完成调用啦~

    今天就给大家介绍这四种特殊的接口类型啦~ 颈椎快不行了,下次接着介绍Postman中断言和环境设置,我们下次再约咯~🤗

 

写在最后:    postman真的是一个很有用的软件,值得所有测试的小伙伴好好研究一下。今天有点晚,就先写这么多,有兴趣的小伙伴可以跟着练一下哦,工具和代码一样只要多用多练就熟了,加油哦~💕

     希望能够帮助看到这篇文章的小伙伴,要是觉得不错的话欢迎分享,有好的建议也随时欢迎大家指导!我是武爱华,之后有时间会在这里不定期更新,今天就先酱紫,爱你们,👋挥手一分钟,拜~

 

 

posted @ 2020-04-28 17:34  Ella_Wu  阅读(753)  评论(0编辑  收藏  举报