目录
一、API测试步骤
- 测试数据
- 通过API测试工具,向服务端发送requests请求
- 服务端收到消息之后基于response响应
对API的测试往往是使用API测试工具,比如常见的命令行工具cURL、图形界面工具Postman或者SoapUI、API性能测试的JMeter等。
二、使用cURL命令行工具进行测试
首先,我们需要下载安装cURL,然后就可以通过以下命令发起Account API的调用。如下图
这行命令中参数的含义如下:
-
第一个参数“-i”,说明需要显示response的header信息;
-
第二个参数“-H”,用于设定request中的header;
-
第三个参数“-X”,用于指定执行的方法,这里使用了GET方法,其他常见的方法还有POST、PUT和DELETE等,如果不指定“-X”,那么默认的方法就是GET。
-
最后“ http://127.0.0.1:8080/account/ID008 ”,指明了被测API的endpoint以及具体的ID值是“ID008”。
当使用cURL进行API测试时,常用参数还有两个:
-
“-d”:用于设定http参数,http参数可以直接加在URL的query string,也可以用“-d”带入参数。参数之间可以用“”串接,或使用多个“-d”。
-
“-b”:当需要传递cookie时,用于指定cookie文件的路径。
需要注意的是这些参数都是大小写敏感的。
了解了这几个最常用的参数后,我再来分析一些最常用的cURL命令以及使用的场景,包括Session的场景和Cookie的场景。
2.1 Session场景
如果后端工程师使用session记录使用者登入信息,那么后端通常会传一个 session ID给前端。之后,前端在发给后端的requests的header中就需要设置此session ID,后端便会以此session ID识别出前端是属于具体哪个session,此时cURL的命令行如下所示:
2.2 Cookie场景
如果是使用cookie,在认证成功后,后端会返回cookie给前端,前端可以把该cookie保存成为文件,当需要再次使用该cookie时,再用“-b cookie_File” 的方式在request中植入cookie即可正常使用。具体的cURL的命令行如下所示:
三、使用Postman图形工具进行测试
Postman是目前使用最广泛的Http请求模拟工具之一,常常被用于Web Service API的测试。早期的Postman,是以Chrome浏览器的插件(plugin)形式存在的,最新版本的Postman已经是独立的应用了。
操作步骤:
- 发起API请求
- 添加参数验证
- 保存测试用例
- 执行测试用例
3.1 发起API请求
我们的目标是对Account API做测试,所以这里你需要选择Postmant的“Request”模块。进入相应界面后,你需要按下图的提示依次执行以下三步操作,发起Account API的调用。
- 在endpoint输入框中输入“http://127.0.0.1:8080/account/ID_008”;
- 选择“GET”方法;
- 点击“Send”按钮发起API调用。
完成以上步骤后,我们看到返回的response默认以JSON文件的形式显示在下面的Body中。
这样就完成了一次Account API的调用,是不是非常简单。但问题是,这只是一个API调用,并没有对调用结果进行自动化验证。接下来,我们就加上结果验证的部分,一起看看会有什么效果。
3.2 添加参数验证
在Postman中添加结果验证也非常方便,假定我们在Account API测试过程中有以下四个验证点:
- 请求的返回状态码(Status Code)应该是200;
- 请求的响应时间应该小于200 ms;
- 请求返回的response header中应该包含“Content-Type”参数;
- 请求返回的response body中,“type”的值应该是“friends”;
我们可以打开我们的test界面,然后在右下角的“SNIPPETS”中依次点击:
- “Status code: Code is 200”
- “Response time is less than 200 ms”
- “Response headers:Content-Type header check”
- “Response body: JSON value check”
完成以上操作后,“Tests”中会自动生成验证代码,接着只要按照具体的测试要求,对这些生成的代码进行一些小修改就可以了。
3.3保存测试用例
这个操作起来很简单,在我们postman工具的左侧,提供了Collection收集工具,我们可以点击Save As按钮可以建立我们的Collection,并将我们创建的测试用例保存进去。
3.4 执行测试用例
顾名思义,我们情面也提到了,就是准备好数据、发起请求的这个过程。在postman里面,点击send按钮即可。
四、总结
通常情况下,无论你采用什么API测试工具,基本的测试步骤往往都是三步,即准备测试数据(并不是所有的API测试都需要这一步)、通过API测试工具发起对被测API的request、验证返回结果的response。
扩展思考:
单个API测试是比较简单的,但在实际项目中,往往存在按时序的API调用以及异步API调用,这类API应当如何测试的?如何解决呢?