超强工具:使用Json Server配置动态数据

发表于:2021-8-12 09:36

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:胡军英    来源:51Testing软件测试网原创

  应用场景
  测试用例一遍一遍的执行,没有新意了,没有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的版本号。

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

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

  运行Json Server
  确认安装无误后,执行命令: json-server --watch db.json。
  从运行的界面上可以得知:
  ·第一次运行由于没有db.json, json server 会自动创建一个默认的db.json文件,这个就是我们的数据库文件。
  ·json server 当前启动服务器端口是3000。
  ·Resources: 当前可以被访问的数据URL,与db.json是对应的。

  通过浏览器访问Json server
  打开浏览器,输入 当前启动的Json server 地址: http://localhost:3000 会打开对应的Json server的主页。
  下面两部分内容在Resources 章节需要我们注意:
  1.当前可以被访问的数据路径参数,与db.json是对应的。
  2.当前被访问数据可支持的方法:get、post、put、patch、delete、options (这点是我最喜欢的,有了这些方法的支持,我们的数据就活了起来)。

  了解db.json
  1.验正访问路径参数:现在为了验证数据访问路径是否正确。去到node 的安装目录。
  此时,这里会有一个db.json文件。打开此文件,通过对比,我们可以确认Resources显示的路径参数与db.json文件里完全吻合。

  2.添加路径参数:现在我们手动添加一个新的访问路径参数newPath 在db.json文件末尾,添加完成后,保存文件。
  刷新一下json server 主页,在Resources下会多一条路径参数。
  同时您也可能会注意到json  server 启动的命令行窗口,json server不需要重新启动,会自动的re-load 修改过的db.json(注意,文件格式如果写错了,db.json 装载会出错)。

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

  集成Rest Assured
  利用put 方法修改数据
  如示例中,我们利用Rest assured 的put方法,在原有的newPath的数据结构中,添加一个新key“updateTime”,同时赋于一个动态的当前时间。
  然后,再利用Rest assured 的get方法,读取被更新后的数据,验证key “updateTime”显示在
  新返回的数据结构中。代码如图所示,这里就不赘述了。

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

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

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

  总结
  综上所述,我们已经搭建了一个非常灵活的、轻量级的Json server,这样以后就可以非常轻松自如地把测试数据放在这个服务器上,在写自动化测试脚本时,同时利用自动化代码进行动态更新、准备测试数据,以备测试执行步骤实时有效地输入我们需要的数据。
  摆脱单一不变的静态数据准备、耗时耗力的文本数据更新维护工作。
  大胆地发挥一下你的想像,不仅仅只是为API测试服务,它可以应用在很多测试场景之下,特别是在多环境应用程序的配置文件,都可以结合一定规则与业务逻辑让Json server为你的自动化测试事半功倍。

      版权声明:本文出自51Testing会员投稿,51Testing软件测试网及相关内容提供者拥有内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号