• 14
  • 14
分享
  • 超强工具:使用Json Server配置动态数据——软件测试圈
  • 曼倩诙谐 2021-08-31 09:53:04 字数 2430 阅读 1755 收藏 14

  应用场景

  测试用例一遍一遍的执行,没有新意了,没有Bug了。突然来了一位小白,同样的用例就“逮”着了一只Bug。一回放,原来手误,输入了不同的测试数据,误打误撞。

  这也证明了测试数据在测试执行中起到的关键作用。输入的数据不同,得到的结果就不一样。Bug是与你擦肩而过,还是不期而遇呢?有时候还真的就在你手指轻弹、输入数据的一瞬间。

  今天的强调无非是想给大家介绍一款好用的API Mock 服务器 工具,以便大家在测试中更加方便地配置自己的动态数据。

  温馨提示

  如果您要按着示例一起做,请务必配置如下工具。

  结尾的用例主要是结合Rest-Assured来介绍Json Server的基本功能,对于不了解Rest-Assured 的小伙伴请做些额外功课吧(可以参考我之前写的Rest-Assured的文章,有详细的配置与应用步骤)。

  ·IDE:IntelliJ IDEA

  ·语言:Java

  ·API 测试开发:Rest-Assured

  ·API 服务器:Json Server

  ·测试框架:TestNg

  ·项目类型:Maven

  知识重点:

  ·Json Server服务器安装、配置与应用

  ·API自动化测试:Rest-Assured

  配置 Json Server

  下载安装node js

  通过node 的官方网站https://nodejs.org/zh-cn/download/,下载对应的安装包或二进制文件。示例中我下载的是 Windows 64 位二进制文件 (.zip),解压以下运行命令 node -v 在对应的解压目录下,如果配置正确,你会得到当前node的版本号。

1-1.png

  安装 Json  Server

  在node 对应的安装目录下,执行命令:npm install -g json-server 确保你的网络是畅通的,安装进度会开始下载对应的文件。

1-2.png

  安装进度结束以后,执行命令: json-server  -v 通过检验安装版本来确保json-server 安装成功。

1-3.png

  运行Json Server

  确认安装无误后,执行命令: json-server --watch db.json。

  从运行的界面上可以得知:

  ·第一次运行由于没有db.json, json server 会自动创建一个默认的db.json文件,这个就是我们的数据库文件。

  ·json server 当前启动服务器端口是3000。

  ·Resources: 当前可以被访问的数据URL,与db.json是对应的。

1-4.png

  通过浏览器访问Json server

  打开浏览器,输入 当前启动的Json server 地址: http://localhost:3000 会打开对应的Json server的主页。

  下面两部分内容在Resources 章节需要我们注意:

  1.当前可以被访问的数据路径参数,与db.json是对应的。

  2.当前被访问数据可支持的方法:get、post、put、patch、delete、options (这点是我最喜欢的,有了这些方法的支持,我们的数据就活了起来)。

1-5.png

  了解db.json

  1.验正访问路径参数:现在为了验证数据访问路径是否正确。去到node 的安装目录。

  此时,这里会有一个db.json文件。打开此文件,通过对比,我们可以确认Resources显示的路径参数与db.json文件里完全吻合。

1-6.png

  2.添加路径参数:现在我们手动添加一个新的访问路径参数newPath 在db.json文件末尾,添加完成后,保存文件。

  刷新一下json server 主页,在Resources下会多一条路径参数。

  同时您也可能会注意到json  server 启动的命令行窗口,json server不需要重新启动,会自动的re-load 修改过的db.json(注意,文件格式如果写错了,db.json 装载会出错)。

1-7.png

  发送get请求

  在Json server 浏览器主页,点击Resource > /newPath,这相当于我们对Json server http://localhost:3000/newPath发送了一个get 请求,会得到Json server 的数据返回(验证一下是不是你刚才添加的数据)。

1-8.png

  集成Rest Assured

  利用put 方法修改数据

  如示例中,我们利用Rest assured 的put方法,在原有的newPath的数据结构中,添加一个新key“updateTime”,同时赋于一个动态的当前时间。

  然后,再利用Rest assured 的get方法,读取被更新后的数据,验证key “updateTime”显示在新返回的数据结构中。代码如图所示,这里就不赘述了。

1-9.png

  运行测试

  在IDE中运行刚才写好的用例,如果配置无误,用例运行成功。在对应的log里,可以看到put 方法请求的数据。

1-10.png

  通过浏览器,刷新一下http://localhost:3000/newPath页面,可以验证到刚才更新的数据。

1-11.png

  打开db.json 文件,newPath对应的数据结构也已经更新。

1-12.png

  总结

  综上所述,我们已经搭建了一个非常灵活的、轻量级的Json server,这样以后就可以非常轻松自如地把测试数据放在这个服务器上,在写自动化测试脚本时,同时利用自动化代码进行动态更新、准备测试数据,以备测试执行步骤实时有效地输入我们需要的数据。

  摆脱单一不变的静态数据准备、耗时耗力的文本数据更新维护工作。

  大胆地发挥一下你的想像,不仅仅只是为API测试服务,它可以应用在很多测试场景之下,特别是在多环境应用程序的配置文件,都可以结合一定规则与业务逻辑让Json server为你的自动化测试事半功倍。



作者:胡军英   

来源:51Testing软件测试网原创

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   乔梁在MTSC大会上分享了主题为《一致性是研效提升的必经之路》的演讲,演讲内容主要是如何提高软件研发效率。他从香农在信息论中的熵增定律出发,讲到像软件这样的复杂系统,必须尽可能减少不确定性因素的影响,努力提高软件研发的一致性,从而达到提高软件研发效率的目的。本文主要基于熵增定律,探讨该定律对软件测试行业是否存在指导作用。  首先,我们回顾一下什么是熵增定律。这原本是热力学中的概念,一个孤立系统总是趋向于熵增,最终达到熵的最大状态,也就是系统的最混乱无序状态。1948年,香农将热力学的熵,引入到信息论。  对于一个信息系统,如果没有外力作用,最终也会达到信息熵最大的状态,信息系统会越来越混乱...
            0 0 1395
            分享
          • 随着技术的进步,每家企业都将其业务从实体办公室转移到网站和Web应用程序,从而实现在线发展。这带来了一系列更新的测试技术,以迎合最终用户的最佳产品或服务。在启动任何软件,网站或应用程序之前,许多测试技术(例如跨浏览器测试,用户验收测试,回归测试)已变得显而易见,为了确保最佳的用户体验和稳定的功能,还需要一种测试技术是探索性测试。与其他测试技术不同,探索性测试没有测试人员必须遵循的一组固定方法,但是相反,测试人员拥有发现产品/服务随时间推移不断改进的完全自由。这更像是随着时间的推移以及网站或应用程序的开发而进行的持续改进。让我们更进一步地探究探究性测试到底是什么,它为何如此重要,如何进行探究性测...
            0 0 2882
            分享
          • Bug定位要求:基本要求:定位出bug是前端bug还是后端bug更高要求:bug所属模块、bug的代码级别(不要求)Bug定位的价值:找到BUG的本质(找到必现路径)提升开发修复BUG的效率提升自身的逻辑思维与技术能力Bug定位的时间安排:优先需要进行所有测试用例的执行,找到bug,并提交bug在不耽误执行进度的前提下,可以花费时间来尽可能定位出bugBug定位的技巧:1)逻辑分析分析所有可能,逐个排查找到最短复现路径例如:玩CF游戏,从高处落下,没有掉血的情况---bug定位:可能因素逐一列出:姿势、地势、高度...针对可能因素逐一进行分析,每次控制变量,只改变其中一个因素最终确定出影响因素...
            0 0 997
            分享
          • 一、什么是冒烟测试?冒烟测试,是对软件的基本功能进行测试,测试对象是每一个新编译的需要正式测试的软件版本,目的是确认软件的基本功能正常,保证软件系统能正常跑起来,可以进行后续的正常测试工作的进行,如果最基本的测试都有问题了,就直接打回开发部了,所以正式交付的测试版本,必须先通过冒烟测试的考验冒烟测试只是一个测试活动,并不是一个测试阶段。也就是说冒烟测试贯穿于测试的人一个阶段。单元测试、集成测试、 系统测试里都会有冒烟测试。二、什么时候进行冒烟测试测试是测试人员确认软件存在bug的过程,此过程中不可避免是需要开发人员要不停的修改bug,那么常常会发现一个功能的改动,导致下一轮系统测试出现问题。即...
            1 0 1912
            分享
          • 自动化测试是近几年比较火热的一个话题,想要在软件测试这个行业继续前行,就必须拥有核心竞争力,掌握自动化测试技术,是必不可少的一个技能。在《Google软件测试之道》一书中有介绍到:在Google,70%的自动化测试工作集中于单元测试,20%集中于接口测试,剩下10%才是UI测试。诚然,我们没有Google那么完善的机制和工程师文化,没必要一切照搬Google,但Google作为互联网2.0时代最耀眼的一个公司,它的技术发展方向,流程管理等可以说是不久的将来,我们也要到达的方向。选择适合自己的,落地应用,是当下我们应该做的。目前国内的互联网行业,大环境来说,还处在一个快速发展,需要流程化标准化的...
            1 3 2187
            分享
      • 51testing软件测试圈微信