• 5
  • 6
分享

       Part 1

       现在很多公司的项目都使用前后端分离的开发模式,这样不仅仅能提高开发效率,还能方便维护。在进行前后端分离开发时,后端的开发人员完成系统接口开发后,需要与前端人员对接,测试调试接口,验证接口的正确性可用性,这就需要前后端的开发人员的开发进度保持一致,但是就算是这样也提高了测试的难度,不利于及时完成功能模块的测试。所以后端开发人员,在独立开发完成某个接口后,需要自己先进行测试,这样不仅能提高开发的效率,而且还能减少送测时的bug。我们都知道前后端分离的开发模式就是前端页面的某个功能调用后台的对应的功能接口,然后后台再将具体的数据返回给前台即可。所以后端测试的时候只需要模拟该请求即可,这时候就需要使用接口测试工具。目前市场上有很多优秀且完善的接口测试工具,比如SoapUI,Postman等,这些都能够高效的帮助后端开发人员独立进行接口测试。我们公司使用的是Postman接口测试工具,,这也是目前使用较多,比较主流的接口测试工具。这篇文章就详细的介绍下Postman以及如何使用它。

       Part 2

       Postman的下载安装比较简单,直接去官网:https://www.postman.com/postman/下载,一般使用免费版即可满足基本接口测试,也可以根据个人或者公司的项目实际情况考虑是否需要专业版或者其他。

图1.png

       下载完成后,直接双击Postman-win64-5.5.2-Setup.exe应用程序,即可进行安装。

       安装完成后,会出现下面的页面,可以注册一个账号,也可以关闭下面的页面跳过注册账号。

图2.png

       进入postman主页面以后,会默认出现创建新项目的弹窗。

图3.png

       接下来再看看具体的主页面的功能和说明:

图4.png

       接下来正式进行测试。在之前的一篇文章:SpringBoot开发Restful风格的接口实现CRUD功能,这里我们还以这个项目的接口为实例,来进行接口测试的演示。

       首先我们创建一个collection,方便以后查找测试记录。

图5.png

       Authorization是验证是否拥有从服务器访问所需数据的权限。当发送请求时,通常必须包含参数,以确保请求具有访问和返回所需数据的权限。Postman提供了授权类型,可以轻松地在Postman本地应用程序中处理身份验证协议。

图7.png

图8.png

       以上两个在创建集合和接口的时候都有,一个是对集合有效,一个是对某个具体的接口,作用一样。

       具体说明:

       1、Inherit auth from parent (从父类继承身份验证)

       向集合或文件夹添加授权。假设我们在集合中添加了一个文件夹。在授权选项卡下,默认的授权类型将被设置为“从父类继承auth”。“从父”设置的“继承auth”指示默认情况下,该文件夹中的每个请求都使用父类的授权类型。

       2、No Auth

       默认情况下,“No Auth”出现在下拉菜单列表中。当不需要授权参数发送请求时,使用“No Auth”。

       3、Basic Auth

       是基础的验证,所以会比较简单 会直接把用户名、密码的信息放在请求的 Header 中

       4、Digest Auth

       要比Basic Auth复杂的多。使用当前填写的值生成authorization header。所以在生成header之前要确保设置的正确性。如果当前的header已经存在,postman会移除之前的header。

       5、OAuth 1.0

       postman的OAuth helper让我们签署支持OAuth。1.0基于身份验证的请求。OAuth不用获取access token,我们需要去API提供者获取的。OAuth 1.0可以在header或者查询参数中设置value。

       6、OAuth 2.0

       postman支持获得OAuth 2.0 token并添加到requests中。

       7、Bearer Token

       Bearer Token是安全令牌。任何带有Bearer Token的用户都可以使用它来访问数据资源,而无需使用加密密钥。

图9.png

甜甜2.png

       Pre-request Script是集合中请求发送之前需要执行的代码片段。请求参数中包含一个随机数或者请求header中包括一个时间戳,或者我们的请求参数需要加密。也是在collection和具体的接口都有,作用一样。

图10.png

       比如上面的Pre-request Script脚本就是获取时间戳,并设置为环境变量。

图11.png

图12.png

       tests脚本是用做测试结果断言,支持js语法。是在完成API访问并得到其response回应之后运行的脚本,一般用于获取response的内容,用于之后的其他操作。Test脚本需要在某个指定的函数pm.test(…)中执行才会被识别,且作为test脚本运行,比如:

pm.test("这里是测试描述",function(){
    //需要执行的代码
});

       第一个参数是测试描述(会在测试结果栏显示),

       第二个参数是一个函数,具体执行代码都在这个函数中运行。pm对象是Postman的主要对象,所有的内置函数,数据调用等,都需要通过它来实现。

       在创建collection的时候还有个valiables标签,这是用来创建变量值的:

图13.png

       变量允许我们在多个地方重复使用值,这样可以让我们的代码更高效(不用重复工作)。此外,可以更改一次变量值,就能改变其他代码中的所有相关联的值。

       比如有3个使用相同域名的API端点your-domain.com。我们可以在该网站保存为一个变量,而不是重复的值,可以使用在请求构建器中使用{{domain}}/endpoint1和{{domain}}/endpoint2。那么,如果我们的域更改为another-domain.com,则只需要更改此值一次就可以了。

       介绍完以上的概念,我们正式进行测试。由于这里使用的是以前的代码,所以如果有不清楚的可以阅读:SpringBoot开发Restful风格的接口实现CRUD功能,并且项目源码已经同步至github。

       postman支持很多的http请求,具体的如下图所示。 请求类型可以模拟Form表单文本提交,Form表单文件提交,raw原始数据提交,二进制文件提交。对于原始数据类型raw还支持不同文件格式,包括JSON,TXT,HTML等多种文件格式。这里我们具体演示如何测试post、get、delete、put请求,其他的请求也类似。

图14.png

图15.png

       首先来验证get请求

图16.png

       测试根据姓名查询数据:

图17.png

       接下来来验证delete请求

图18.png

       数据库中id为3的数据已经被删除了:

图19.png

       测试put请求:

图20.png

       数据库中id为2的数据已被更新:

图21.png

       测试post请求:

图22.png

       数据库中新增了id为3的数据:

图23.png

图24.png

       Part 3

       Mock Server就是一个服务器,即针对某个特定的接口,返回我们自定义的返回值的工具。通常在需要调用第三方服务的开发或在前后端分离的开发中,前后端开发人员可以约定接口的名称、请求参数、返回结果等等,在后端人员未完成接口开发工作的情况下,前端利用Mocke Server模拟出对应接口,拿到返回数据来调试,无需等后端开发人员完成工作。即我们可以理解前面的http请求的调试时模拟前端访问后端的代码,测试后端代码逻辑是否正确(前端没有开发好,后端开发人员自测),而Mocke Server则是模拟假设后端返回了前端需要的数据,测试前端的功能(后端没有开发好,前端自测)。

       假设我们需要前后端开发某个功能模块但是后端接口没有开发好,这时候我们可以搭建一个Mocke Server来自测前端的逻辑是否正确。假设请求的接口是:

/localhost:8080/do/user/usrall

       返回的数据样例:

{
    "code": 200,
    "msg": "请求成功",
    "data": [{
            "name": "张三",
            "age": 24,
            "email":"123@qq.com",
        },
        {
            "name": "李四",
            "age": 26,
            "email":"258@qq.com",
        }
    ]
}

       点击New,然后选择Mocke Server,然后填写请求的地址,以及response body。接着写一个自定义的Mocke Server的名字,点击create创建Mocke Server,即可获得一个URL:

图25.png

图26.png

       配置完成之后,postman会生成一个mock server的地址,我这里生成的URL是:

https://3dd39ca6-40bd-41ae-a045-ed80d1e5gac01.mock.pstmn.io

       接着点击run按钮启动Mock Server。在浏览器中输入刚刚生成的URL+自己的请求接口,发送请求,查看返回的数据验证是否成功即可。


作者:江夏、

原文链接:https://blog.csdn.net/qq_41153943/article/details/107736588#comments_13181097

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 摘要:连续测试意味着您的所有测试一直在执行,从而提供有关应用程序质量和运行状况的连续反馈。为了实现连续测试,您必须首先采用正确的测试自动化策略。了解如何尽可能有效地引入所有不同类型的测试自动化实践,可以使您开始进行连续测试。作为进入市场战略的一部分,企业越来越关注客户体验,而客户体验的关键部分是他们以快速、无缝的方式遍历软件的能力。消费者比以往任何时候都更精通技术,对缺陷的容忍度也较低,因此遭受不良行为影响的应用程序可能会对您的品牌产生极大的负面影响。为了降低这些风险,组织将质量计划加倍,软件开发行业也将持续测试作为主流活动。什么是连续测试?持续测试是软件测试的一项原则,在该原则中,您的所有测...
            0 1 1378
            分享
          • 岗位JD【技术能力】能独立完成产品线中自动化测试工作,根据测试任务,搭建软件测试环境,编写测试脚本,输出报告;【项目管理】熟练开发测试工具、测试脚本,及迭代优化测试框架,使用合理方式进行自动化管理项目;【业务推动】对测试项目的结果负责,使用合理方式推动业务端测试的效率、开发质量;【规范制定】 熟悉CI系统,完善准入/准出标准,持续提升测试效率;【效率提升】根据业务特点,引入新的测试方法和工具,探索新技术。改进测试工具或测试方法,提高效率,培训测试人员并支持技术难题解决。3年以上测试工作经验,1年以上自动化测试经验或开发经验;至少熟悉一种脚本语言,如Shell、Python、java等;至少熟悉...
            12 13 4845
            分享
          •   苹果公司正在向苹果储蓄账户持有人发送推送通知,告知他们利率再次上调。Apple Card储蓄账户年利率从 4.35% 提高到了 4.50%。这是Apple Card储蓄账户自 12 月以来第三次上调年利率。第一次上调后,年利率从 4.15% 提高到 4.25%,第二次是在 1 月初,从 4.25% 提高到 4.35%。  苹果储蓄账户之前的利率上调使其与美国运通和发现的许多其他流行的高收益储蓄账户的年利率持平,而随着最新利率的上调,苹果储蓄账户也与高盛的年利率持平。  自 2023 年 4 月起,美国Apple Card持卡人可使用苹果公司的高收益储蓄账户,该账户是与高盛(Goldman ...
            0 0 709
            分享
          •   在中国游戏产业收入和用户规模双降的2022年,游戏人的日子并不好过。减员消息从年初传到年尾,无论是腾讯、网易这样的头部大厂,还是心动、叠纸等一众游戏新贵,都无一幸免。  由于绝大部分公司对减员避而不谈,实际情况不得而知。近日,伴随一众游戏上市公司披露年报,外界终于得以一窥过去一年游戏行业和相关从业者的真实生存境况。  在时代财经统计的17家披露员工人数变化的港股游戏上市公司中,有10家游戏公司存在减员情况。其中,减员超过10%的有6家,减员比例最高的蓝港互动一年之内砍掉近三分之一的员工。  而在扩张的7家游戏公司之内,仅有望尘科技、青瓷游戏两家刚刚上市,仍处在迅猛发展阶段,公司人员增长超过...
            0 0 650
            分享
          •   在测试行业里,“30岁”好像是测试人员伤不起的年龄。  首先是在招聘要求里,很多测试岗位都明确限制年龄在30岁以下。这就导致很多人想跳槽困难,离了职惨淡。  其次是来自职场后浪的压力。一群热血青年“来势汹汹”,拿着低薪水谦虚好学,用着新技术所向披靡,总会让人不得不感叹一句——“真的老了”!  最后必须要面对的还是“30岁”本身带来的职业瓶颈。比如说,体力下降程序写不动了、成家后,家庭琐事难免让人分心,等等。  在51Testing《2019—2020年度·软件测试现状调查报告中》就有数据显示,年龄在30+的测试人员,仅占行业的26%,而且大多数都是管理层,从事技术的少之又少。  身在测试职...
            14 14 2233
            分享
      • 51testing软件测试圈微信