资讯专栏INFORMATION COLUMN

动手造轮 | 一款Bash 脚本 +HTTP 请求工具 +JSON 解析工具组成的测试小工具

hyuan / 2918人阅读

摘要:数人云开源一款容器管理工具,开发过程中,为了保证的健壮性和稳定性,数人云开发团队自制了一套适合测试的小工具。于是一款简单的脚本请求工具解析工具组成的测试小工具雏形出现了。是一款命令行解析文本的工具,支持非常多的语法解析构造重组文本。

数人云开源一款容器管理工具Crane,Crane开发过程中,为了保证API的健壮性和稳定性, 数人云开发团队自制了一套适合Crane API测试的小工具。它也适用于其他接口测试,小数发现很多朋友对它感兴趣,就勤劳地搬运过来,希望能为大家提供一个参考和思路。

针对Crane团队只向外输出API的特点, 选择测试工具是秉着以下原则的:

第一, 功能不要太复杂,学习曲线不能太陡, 功能够用就行;

第二, 可编程要好, 最好不要有界面,程序员友好。

于是一款简单的Bash脚本+HTTP 请求工具+JSON解析工具组成的测试小工具雏形出现了。

下面给大家展现这款工具的构成

Bash脚本: 测试工具的粘合剂, 不是Java也不是Python, 用Bash简单易用,功能强大。
Httpie: 一款类似curl的http工具, 不过比curl简单的多, 尤其是想发个JSON请求时候, 更简单。
jq: jq是一款命令行解析JSON文本的工具, 支持非常多的语法解析构造重组JSON文本。

下面依次给大家介绍一下httpie和jq的基本用法

1. 例子说明如何使用httpie

httpie在terminal下的命令是http, 先来几个简单的例子给演示一下用法。

http get http://httpbin.org/get header:header-content

其中, http是命令, get是请求method, http://httpbin.org 是请求地址, httpbin是一个http的测试服务; 用冒号相连的参数代表着HTTP请求头, 用等号连接为请求body中的JSON键和值。 httpie默认的请求为json请求, 所以不用过多指明,header已经加上了Content-Type:application/json。

http post http://httpbin.org/post header:header-content json-key=json-value

http支持很多命令行选项, 介绍一个有意思的是 --check-status, check-status是把http response的非200值设置成进程的exit code, 比如:

如上所示, 请求一个不存在的地址时候进程退出符号变成了4。 我们将大量使用这个feature来判断返回值。

2. 例子说明如何使用jq

下面我们用几个例子介绍一下jq的用法。

上图演示如何提取一个json的key。

如何提取一个嵌套的key。

提取数组中的元素。

篇幅关系我们不过多展示jq的高级功能, 除了基本的解析和构造以外,jq支持大量的filter, 如有兴趣可参考https://stedolan.github.io/jq...。

3. Crane测试工具的几个场景 场景一: 我期望测试API的HTTP测试的返回状态比如200, 404, 500

首先bash造了几个基本的函数来输出错误, 和判断状态

使用方法

场景二: 登录过程测试

更多的测试例子可参考https://github.com/Dataman-Cl... 。

至此,一款可用的测试工具出炉了, 虽然简单,不过功能恰到好处,非常适合我们的场景, 再也不怕API出错发现不了了。 聪明的同事们把这工具配到了jenkins和单元测试一起执行, 出错了还能得到邮件通知, 酷极了。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/26756.html

相关文章

  • Python自动化必会技能-Excel文件读取

    摘要:重点在自动化测试过程中,经常需要使用文件来存储测试用例,那么在表格内设计好了测试用例数据后,如何通过自动化读取呢此时就需要测试小姐姐动手写代码了本文主要介绍通过来读取表格数据。 ...

    187J3X1 评论0 收藏0
  • ❤️熬夜7天肝出5万字【禅道/缺陷报告/测试报告/接口测试及用例/Fildder】超详细总结❤️

    目录 一、禅道 一、测试工具背景 二、测试管理工具 三、测试工具介绍 四、禅道介绍 五、禅道操作 7. 创建发布 8. 测试团队 二、缺陷报告 三、测试报告 一、概要 二、测试过程 三、缺陷分析 四、测试总结 四、接口测试以及用例编写 五、Fiddler 好文推荐 一、禅道 一、测试工具背景 当测试环境搭建完成后,测试人员将在自己搭建的环境上执行测试用例,开展测试工作。测试人员在执行测试用例的过...

    oujie 评论0 收藏0
  • 自己动手实现dubbo接口测试工具

    摘要:一前言框架对于开发来说并不陌生,通常新增一个接口,我们可以直接用测试。但是工作中有时遇到一些接口的实现会获取上下文中的信息,如果需要测试的话就只能另外编写代码设置上下文,调用接口实现,相对来说会比较麻烦。 一、前言 dubbo框架对于java开发来说并不陌生,通常新增一个dubbo接口,我们可以直接用telnet测试。但是工作中有时遇到一些dubbo接口的实现会获取上下文中的信息,如果...

    fox_soyoung 评论0 收藏0
  • 全栈开发自学路线

    摘要:前言这里筑梦师是一名正在努力学习的开发工程师目前致力于全栈方向的学习希望可以和大家一起交流技术共同进步用简书记录下自己的学习历程个人学习方法分享本文目录更新说明目录学习方法学习态度全栈开发学习路线很长知识拓展很长在这里收取很多人的建议以后决 前言 这里筑梦师,是一名正在努力学习的iOS开发工程师,目前致力于全栈方向的学习,希望可以和大家一起交流技术,共同进步,用简书记录下自己的学习历程...

    wwolf 评论0 收藏0
  • 全栈开发自学路线

    摘要:前言这里筑梦师是一名正在努力学习的开发工程师目前致力于全栈方向的学习希望可以和大家一起交流技术共同进步用简书记录下自己的学习历程个人学习方法分享本文目录更新说明目录学习方法学习态度全栈开发学习路线很长知识拓展很长在这里收取很多人的建议以后决 前言 这里筑梦师,是一名正在努力学习的iOS开发工程师,目前致力于全栈方向的学习,希望可以和大家一起交流技术,共同进步,用简书记录下自己的学习历程...

    CoXie 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<