目录
一、Postman介绍:
用户在开发或者调试网络程序或者是网页B/S模式的程序的时候是需要一些方法来跟踪网页请求的,用户可以使用一些网络的监视工具比如著名的Firebug等网页调试工具。今天给大家介绍的这款网页调试工具不仅可以调试简单的css、html、脚本等简单的网页基本信息,它还可以发送几乎所有类型的HTTP请求!Postman在发送网络HTTP请求方面可以说是Chrome插件类产品中的代表产品之一。
二、Postman的操作环境:
postman适用于不同的操作系统,Postman Mac、Windows X32、Windows X64、Linux系统,还支持postman 浏览器扩展程序、postman chrome应用程序等。
Postman使用参考文档:
postman中文使用教程:
https://huajiakeji.com/web-development/2017-12/870.html
三、接口测试理论:
一.接口:
1.程序内部接口:方法与方法之间,模块与模块之间的交互,程序内部抛出的接口,比如bbs系统,有登录模块,发帖模块等等,那你要发帖就必须先登录,那么这两个模块就得有交互,它就会抛出一个接口供内部系统进行调用。
2.系统对外接口:比如你要从别的网站或服务器上获取资源和信息,别人肯定不会把数据库共享给你,他只能给你提供一个他们写好的方法来获取数据,你引用他提供的接口就能使用他写好的方法,从而达到数据共享的目的,比如说咱们的app,网址这些它在进行数据处理的时候都是通过接口进行调用的。
二.接口的分类:
1.web service接口,soap协议,请求报文和返回报文都是xml格式的,我们在测试的时候通过工具才能进行调用,测试。
2.http api接口,http协议,通过路径来区分调用方法,请求报文都是key-value形式的,返回报文一般都是json串,有get和post等方法,这也是最常用的两种请求方式。
三.接口测试:
1.接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
2.其实接口测试就和普通功能测试没什么区别,区别就是功能测试是在页面上点点点,在页面上输入值,提交数据看结果,而接口测试没有页面,通过接口规范文档上的调用地址,请求参数,拼接报文,然后发送请求,检查返回结果。
四.接口测试的必要性:
1.发现页面上发现不了的bug
2.检查系统的异常处理能力
3.检查系统的安全性,稳定性
4.前端随便变,接口测好了,后端不用变
五.接口测试流程:
1.需求评审,熟悉业务和需求
2.开发提供接口文档
3.编写接口测试用例
4.用例评审
5.提测后开始测试
6.提交测试报告
六.接口测试测什么:
1.单一接口的测试:接口的输入输出,数据合法性,异常处理
2.多接口组合测试:业务逻辑,业务场景
3. 结构检查
(1)检查返回值的结构是否正确,如是json类型还是xml类型的数据
(2)字段名称是否正确等
七.接口文档:
接口测试的重要依据
包括:接口说明、调用url、请求方法(get\post)、请求参数,参数类型,参数说明,返回参数说明
八.通用接口用例设计:
1.通过性验证:首先肯定要保证这个接口功能是好使的,也就是正常的通过性测试,按照接口上的参数,正常传入,是否可以返回正确的结果。
2.参数组合:现在有一个操作商品的接口,有个字段type,传1的时候代表修改商品,商品id、商品名称和价格有一个是必传的,这时候就要参数组合了。
3.接口安全
(1)绕过验证,比如购买了一个商品,它的价格是300元,那我在提交订单的时候,我把这个商品的价格改成-3元,后端如果没有做验证,那是不是我的余额还要增加?
(2)绕过身份权限,比如修改商品信息的接口,那必须得是卖家才能修改,那我传一个普通用户,能不能修改成功,我传一个其他卖家能不能成功?
(3)参数是否加密,比如说登录接口,用户名和密码是不是加密,如果不加密,别人拦截你的请求,就能获取到你的信息了,加密规则是否容易破解
(4)密码安全规则,密码的复杂程度校验
(5)异常验证:异常的,也就是我不按照你接口文档上的要求输入参数,来验证接口对异常情况的校验,必传非必传,参数类型,入参长度。
4.根据业务逻辑设计用例
列出测试点,造数据测试对应测试点
四、postman实际操作部分:
Get请求:
一个HTTP请求的四部分:URL、Method、Headers、Body,在Postman中都可以设置。
(1)点击图上1处的“+” , 创建一个新的请求
(2)选择图上2处的请求方式为GET
(3)在图上3处填写要请求的URL:http://localhost:8080/selectBook
(4)选择图上Params—>在Query Params下添加请求需要的参数(添加完之后参数会在URL栏处以key=value展示,多个参数以&连接;get请求一般不需要添加program、header等信息,但是在实际的企业级别是需要验证的,所以具体场景具体分析)
(5)点击“send"发送请求
(6)在图上处查看响应信息:
Post请求:
一、POST请求方式一:表单提交:
(1)在地址栏里输入请求url:http://localhost:8080/insertBook
(2)选择“POST”方式,
(3)点击body–>“application/x-www-form-urlencoded”,
(4)添加post参数:key:bookName , value:三国演义
(5)点击Send即可提交请求,然后在下面查看请求结果,并且可以以Pretty、Raw、Preview三种方式查看。如图:
二、POST请求方式二:json提交:
这种方式可以测试各种数据,包括list集合和array数组等复杂类型。
1.填写接口—>选择Headers,设置参数类型:
2.点击Body—>选择raw—>选择JSON(或者application/json),
3.然后在body中写自己想要的json参数内容(json内容要注意括号和分隔的逗号,这里容易出错,出错时文本有提示)
三、POST请求方式三:xml提交:
四、POST请求四:二进制文件提交:
五、知识点总结说明 :
一:Postman正确区分参数的几种类型
而body的类型可以有: form-data、x-www-form-urlencoded、raw、binary.
-
form-data
对应着http请求中的Content-Type为multipart/form-data.
它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件File。当上传的字段是文件时,会有Content-Type来表名文件类型;content-disposition,用来说明字段的一些信息;
因为multipart/form-data类型有boundary隔离,可以上传多个文件,也可以上传键值对,它采用了键值对的方式。 -
x-www-form-urlencoded
application/x-www-from-urlencoded,会将表单内的数据转换为键值对,比如,name=Java&age = 23 -
raw(支持各种原生的类型)
-
binary(二进制 )
通过上图可以看出,只能上传一个图片, 相当于Content-Type:application/octet-stream
六、Postman Collection的创建/使用/导出分享等
什么是Postman Collection?
Postman Collection是可让您将各个请求分组在一起。 您可以将这些请求组织到文件夹中。中文经常将collection翻译成收藏夹。如果再下文中看到这样的翻译不要觉得意外。Postman Collection会使你的工作效率更上一层楼。Postman Collection可以让单个的request分组在一起,这些request可以被进一步的管理到文件夹来更准确的反应你的API。request也可以在保存到收藏夹时存储response例子。你也可以给你的request增加名称或相关描述,使得开发者可以更轻松的使用你的API。
为什么创建Postman Collection?
以下是您应该创建collection的几个原因:
1.组织
您可以将请求分组到文件夹和集合中,以便您不必重复搜索历史记录。
2.文档
您可以为请求,文件夹和集合添加名称和描述。 在Postman中,您可以使用收集浏览器查看文档。 在Postman Pro中,您可以创建和发布漂亮的API文档页面。
3.测试套件
您可以将测试脚本附加到请求并构建集成测试套件。
4.有条件的工作流程
您可以使用脚本在API请求之间传递数据,并构建反映实际API用例的工作流。
如何创建Postman Collection?
您可以从以下位置创建新的集合:
侧边栏(sidebar)
新建按钮(New button)
启动屏幕(Launch screen)
1.Sidebar侧边栏创建collection的方法
在边栏中,选择“collection”并单击“collection”图标。如下图所示:
或者这样:
在CREATE A NEW COLLECTION模式中:
输入名称和可选说明。
选择一种授权类型。
在集合运行之前输入一个预先请求脚本来执行。
添加测试以在集合运行后执行。
将变量添加到集合及其请求。
点击创建按钮。
2.New button新按钮创建collection的方法:
在标题工具栏中,单击新建按钮。如下图所示:
在“新建”选项卡中,单击“Collection”。
在CREATE A NEW COLLECTION模式中:
输入名称和可选说明。
选择一种授权类型。
在集合运行之前输入一个预先请求脚本来执行。
添加测试以在集合运行后执行。
将变量添加到集合及其请求。
点击创建按钮。
创建collection后,您可以将请求保存到集合中并添加文件夹以实现更好的组织。
注意:在底部,您可以选择“在启动时显示此窗口”,以指示您是否希望每次打开邮递员时都显示“新建”选项卡。
如何操作管理Postman Collection?
1.Edit collection
在这里可以更改收藏夹的名称和对收藏夹添加描述信息。在这里你可以在这里编辑名称和描述,描述支持Markdown
2.Share Collection
收藏夹可以当做JSON文件下载,这允许你可以和其让人分享你的Postman内容。你可以以匿名的身份分享你的收藏夹但是建议你当你上传一个收藏夹时创建一个Postman的账户,以便更新你的收藏夹,你也可以公开它或者删除它。
如果你是一个使用Postman Cloud的团队中的一员,你可以分享你的收藏夹到整个团队或者只分享这个收藏夹的一部分。你可以在你的团队里分享你的收藏夹,你可能需要确保你的团队是在线的,你可以在你的团队页面看到一些计划的细节。如果你也在线,你可以点击Share按钮分享你的收藏夹
3.Delete Collection
删除一个收藏夹会同时删除这个收藏夹本地的分备份。但是不会删除你通过getpostman.com分享的收藏夹。
collection 管理精细化, 这里我们针对不同的请求方式做分组–>添加子文件夹–>add folder
文件夹是收藏夹的子集。你可以在一个收藏夹中创建很多文件夹。你可以直接添加一个request到一个文件夹里。文件夹同时也支持Markdown-based描述
现在你只能在收藏夹下面拥有一级文件夹。
4.Saving requests inside a collection
在这里你可以添加相关的Request描述,指定保存到的收藏夹或文件夹。点击Save按钮保存request到收藏夹。
注意:表单格式的request和二进制格式的request中包含的文件是不会被保存的收藏夹的。这是由于HTML5规范的限制。
5.拓展:
其他postman版本的选项:
1、Environment:环境切换
如果选择的Collection的请求中需要用到特定的环境,可以通过此选项切换
2、Iterations:迭代次数
按照设置的请求执行顺序,执行设置的迭代次数
3、Delay:设置请求之间的延时
收集运行中每个请求之间的间隔(以毫秒为单位)
4、Data:提供用于收集运行的数据文件
支持application/Json、text/csv文件格式,并且提供了数据预览功能,下一篇文章专门讲解参数化的使用。
5、save responses:保存响应结果
限制运行Collection时的响应日志记录,默认情况下,所有响应都会被记录,可以更改该设置以提高执行效率。更改方式可以有如下几种:
a、对于所有请求,将记录所有请求的响应。
b、对于失败的请求,将仅记录对至少一项测试失败的请求的响应。
c、对于没有请求,将不会记录任何响应。
6、keep variable values:保存运行中的变量
启用此选项将在运行结束时保存变量的值,并覆盖先前的值。
7、Save Cookies after collection run:运行collection之后保存cookie值
Collection中的请求可以在执行期间创建/更新cookie。该选项可以将cookie保存到cookie管理器,从而覆盖任何现有cookie。启用此选项会将会话的cookie保存到cookie管理器。
七、身份验证Authentication
1、Basic Auth
是基础的验证,所以会比较简单
会直接把用户名、密码的信息放在请求的 Header 中
2、Digest Auth
要比Basic Auth复杂的多。使用当前填写的值生成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中。