零基础rest-client使用说明

前言:年初刚刚接触API测试时随手总结的一篇文章,里面除了rest-client这个工具本身还有一些对API的浅薄理解,希望可以帮助像我一样的小白,有不合理的地方也希望大家能指正。

Author:吴劭锟

Date:2018/1/19

Rest-client是一款在GitHub上很好用的测试RESTful API的自动化工具,但它作为中国人开发的工具并没有中文版的文档,英文版的文档也主要偏重对界面的介绍,对于我等没接触过前端概念的小白来说只看这些还是拿不准应该怎么用,下面是我研究并使用一天后的经验,希望能对没用过的人有帮助。

安装教程和界面的介绍参见Rest-client在GitHub网址,本文主要介绍用法:https://github.com/wisdomtool/rest-client

作为一款自动化测试工具,最主要的功能就是生成自动化用例并完成自动化测试。与所有自动化用例一样,Rest-client中同样需要输入参数(变量)、预期结果和自动化测试执行界面,这三个功能基本上对应工具中的Request、Response和History三个菜单

零基础rest-client使用说明

Request菜单

Request菜单是需要用户填写输入参数的,这些参数需要到执行测试的网页中获取,目前我使用chrome自带的调试工具来获取。下面以创建一个打开阿里云首页的自动化用例为例:

在chrome网页任意处点鼠标右键,选择检查(N),打开调试工具。菜单栏选择Network——XRH,并在浏览器地址连中输入阿里云主页URL,敲回车。页面跳转后出现在NAME栏中的就是该页面上的RESTful API,选择一个API名称会显示详细信息。

零基础rest-client使用说明

开启chrome调试工具

零基础rest-client使用说明

General中的Request URL和Request Method是RESTful API的核心,需要在Rest-client的Request菜单中配置。

零基础rest-client使用说明

Request Header中的参数虽然很多,但只需要添加accept和authorization两项,分别以健值对的形式在Rest-client中创建。

零基础rest-client使用说明

零基础rest-client使用说明

目前还没遇到需要配置Cookie的地方,我对Cookie也不熟,这里就不介绍了。

需要注意的是,只有当Method为GET时Request Body中才不需要填写参数,否则需要到调试工具Headers栏最下方Request Payload获取参数作为消息体填入Request Body中。

零基础rest-client使用说明

零基础rest-client使用说明

完成Request配置后,点击URL右侧的Start绿色按钮生成结果,界面自动跳转到Response——Raw Text界面。这个界面会显示这次测试输入参数和结果的详细情况。

零基础rest-client使用说明

这里有个概念需要明确,与一般的自动化用例不同,在Rest-client工具的自动化测试用例中并没有填写预期值的地方,预期值就是Request中配置的参数生成的第一次结果,以后每次执行用例都会以这些参数生成结果,并用这些结果与第一次的结果比较作为判断用例成功失败的方式。所以第一次生成结果信息后要与网页上的Response Headers和Response菜单下的内容(Response Body)比较,确定这些是你的预期值。

Raw Text界面中的结果同样可以在Response下的Body和Header中检查。

零基础rest-client使用说明

零基础rest-client使用说明

最后,可以到History菜单中查看完成的用例,并进行给用例起名、删除用例或调整用例位置等操作。

零基础rest-client使用说明

完成的用例集可以以文件的形式导出,等下次需要执行时导入就行了。

 

执行测试用例很简单,直接在菜单中选择Test→Start Test就行了。Rest-client工具另一个优点就是可以自动生成网页版的测试报告,包括比较直观的成功率扇形统计图和说明失败原因的表格。

零基础rest-client使用说明

目前我对工具的研究基本上就这么多,另外GitHub上提到好像还有生成RESTful API文档的功能,需要的同学可以试试,最后附上几篇不错的介绍RESTful API文章的链接。

 

REST服务开发实战   https://kb.cnblogs.com/page/91827/

REST 架构该怎么生动地理解  https://www.zhihu.com/question/27785028

HTTP Header 详解  https://kb.cnblogs.com/page/92320/