从分层测试的角度来说,接口测试是必备技能。所以接口测试是非常值得开发人员去进行掌握的。工欲善其事,必先利其器。常见的接口测试工具很多,如:jmeter,soapui,postman等。我个人使用过jmeter以及postman。我个人认为postman还是更为强大的,它不仅可以调试简单的css、html、脚本等简单的网页基本信息,它还可以发送几乎所有类型的HTTP请求!Postman在调试HTTP请求方面可以说是性价比最高的接口测试产品之一。
postman适用于不同的操作系统,还支持postman浏览器扩展程序、postman chrome应用程序等。但是浏览器插件目前Google已经停止更新了。关于postman下载相信难不倒各位程序猿,贴下官网下载地址:
https://www.getpostman.com/apps
安装postman后,我们先看看postman打开后的界面:
对功能栏做下基本的说明:
左侧History:最近测试历史记录
左侧Collections:脚本集
主界面:选择Http请求方法,输入请求API地址,在body填写请求参数主界面
send:发送请求主界面
save:保存请求主界面
Cookies code:Cookie管理
对Postman界面工具进行简单介绍,下一步介绍如何使用Postman测试HTTP请求。
GET 请求
点击url后面的Params,输入参数及value,可输入多个,会将 参数绑定到url后面GET可以不填请求头。
可以看到响应体为html。常见的响应体有三种:
1.JSON
2.HTML
3.XML
正常情况下,我们自定义接口都是返回JSON格式的响应体,比如下图我自己写的一个小接口:
POST请求
POST请求测试的时候主要分成四种参数提交方式:
1.表单提交
2.JSON提交
3.XML提交
4.二进制提交
表单提交又分成两种方式:
1.multipart/form-data
2.x-www-form-urlencoded
表单提交分为两种方式,那两者之间的区别是什么呢?这两种方式之间主要有两种区别:
1.multipart/form-data:既可以上传文件等二进制数据,也可以上传表单键值对,只是最后会转化为一条信息;
2.x-www-form-urlencoded:只能上传键值对,并且键值对都是间隔分开的。
我们先来看下multipart/form-data方式,可以上传文件:
可以看到我使用multipart/form-data方式提交参数,上传了一张图片以及四个正常键值对参数。一般情况下涉及上传功能我们会采用multipart/form-data方式提交数据。
接着我们来看下x-www-form-urlencoded方式提交数据:
如果正常的键值对传参就可以使用x-www-form-urlencoded方式提交数据。但是最常用的post提交数据方式是application/json,一般前端通过ajax提交json参数到后端然后后端返回json格式的响应体给前端。接下来我们来看看JSON方式的参数提交,首先body选择row选项,然后书写要提交的json对象数据,提交方式选择JSON(application/json):
可以看到通过JSON方式提交数据接口正常返回数据了。因为很多情况下接口会限制只允许接收JSON数据,这时候我们就只能使用JSON格式提交数据才能正确获得接口响应。
POST请求三:xml提交
XML提交请求数据比较少见,但是如微信支付回调等接口返回值都要求是xml格式的。这个时候就得使用xml格式去提交数据。
binary提交
使用这种提交方式可以提交二进制文件数据,我正式开发没用过这种提交方式,文件上传我个人比较喜欢form-data方式。
管理用例—Collections
Collections集合:也就是将多个接口请求可以放在一起,并管理起来。通常我们可以将一个项目的接口放在同一个Collection,这样方便查找及统一处理数据。
第一步, 创建Collections,点击右上角+号可以创建一个集合组:
第二步,在Collections里添加请求
在右侧准备好接口请求的所有数据,并验证后,点击save按钮。
保存好之后就可以在这里看到啦,之后要再次调用时可以点击这里就可以快速调用了,对于同一个项目需要重复测试的接口就可以将接口添加到集合组中
而且对于collections 我们可以针对不同的请求方式做分组,创建不同文件夹将对应的请求加入不同文件夹
身份验证Authentication
1、Basic Auth
是基础的验证,会直接把用户名、密码的信息放在请求的 Header 中,输入用户名和密码,点击 Update Request 生成 authorization header
2、Digest Auth
Digest Auth为摘要认证,消息摘要式身份认证是在基本身份认证上面扩展了安全性,服务器为每一个连接生成一个唯一的随机数,客户端用这个随机数对密码进行MD5加密,然后返回服务器,服务器也用这个随机数对密码进行加密,然后和客户端传送过来的加密数据进行比较,如果一致就返回结果。使用当前填写的值生成authorization header。所以在生成header之前要确保设置的正确性。如果当前的header已经存在,postman会移除之前的header。
3、OAuth 1.0
postman的OAuth helper支持OAuth 1.0,是基于身份验证的请求。OAuth不用获取access token,你需要去API提供者获取的。OAuth 1.0可以在header或者查询参数中设置value。
4、OAuth 2.0
postman支持获得OAuth 2.0 token并添加到requests中。这种授权方式很常见,在各种第三方登录都是用OAuth 2.0授权,详情可以看我之前的关于第三方登录系列的文章
设置变量
首先在postman使用变量意义何在呢?变量允许你在不同的地方重复使用这个值,如果你有多个API使用相同的域名,你可以保存这个域名作为一个变量,代理重复使用这个变量。借助于postman Script脚本作用,你可以设置一个变量的值,变量主要有以下四种作用域:
1. Global 全局
2. Enviroment 环境变量
3. Local 局部
4. Data 数据
如果一个变量同时处于两个不同的作用域,那么拥有较高级别的作用域优先,作用域优先级从高到低为:
Data---- > Local ---- > Enviroment ---- > Global
我们将url前缀设置成全局变量:
进入设置全局变量:
然后将我们访问接口前缀改成{{变量名}},用法其实和Vue的变量使用方法一致:
对于Postman的入门使用就介绍到这里,其实Postman还有更多很强大的功能,比如可以通过collection来支持构建请求工作流,自动化测试,请求的导入导出,持续集成等功能,可以串行测试接口,而且内置NodeJS运行时环境,可以执行JS脚本。其实可以自己在使用中去慢慢研究这些功能。
如果喜欢我的文章,欢迎关注我的个人公众号:周先生自留地
网友评论