目录
2.选择Tests后,在如下页面,可以选择自己的检查点,也可以自己在空白处编辑
5.查看预览结果(注意:这里可能会出现乱码现象,解决办法:将编码格式改为utf-8)
6.如果是正常状态,Test Results就会显示PASS,否则FAIL
一、postman简介
一般简单的get请求接口测试我么可以直接在浏览器里面进行调试,但是涉及到一些post接口,权限设置等就无法操作了,因此我们需要接口测试的相关工具介入啦!
postman是一个接口测试和http请求的工具,它主要针对的是HTTP请求。模拟浏览器发送请求,接受响应。使用postman可以模拟任何浏览器发出的请求,可以构造请求地址,请求方法,请求内容,cookies等,postman的响应内容包括完整的响应头,响应时间,响应大小,cookie等内容。
postman优点:
- 支持各种的请求类型:get、post、put、patch、delete等。
- 支持在线存储数据,通过账号可以进行迁移数据。
- 很方便的支持请求header和请求参数的设置。
- 支持不同的认证机制,包括Basic Auth、Digest Auth、OAuth1.0、OAuth2.0等。
- 响应数据是自动按照语法格式高亮的,包括HTML,JSON,XML。
二、postman使用介绍
使用postman前情提要:
1.postman工作原理
(1)输入请求,并单击send按钮;
(2)该请求由API服务器接收,并返回响应;
(3)响应由postman接收,接收响应内容在工具中可视化
2. 侧边栏、接口管理区
接口管理区可以进行查找、管理请求和集合操作
- “Collections”用来创建和管理集合。一般情况下,我们会将一组关系密切的请求放到一个集合中进行统一的管理
- “History”用来展示发送过的请求,通过postman应用程序发送的每一个请求都保存在Histroy选项卡中
3.构建器
postman的构建器(Biulder)是一种选项卡布局模式,用户可以在构建器中发送和管理API请求,其上半部分是请求构建器,下半部分是响应查看器。
- Cookies:管理与请求相关的Cookies
- Code 代码片段:打开test,看到snippets(生成代码片段)窗口。该特性允许生成与请求相关的代码片段,其支持20多种语言。
4.控制台
postman控制台可以展示操作的日志,点击控制台console,查看HTTP请求和运行日志,也可以clear清除日志信息。
5.响应区
响应内容(body):可以查看pretty(美化格式),raw(原始格式),preview(HTML预览格式)
响应 Cookies
响应头(headers)
测试结果(Test Results):对应请求中Tests中设置的断言
三、postman基本操作
1.GET请求
HTTP GET请求方法是从服务器检索数据。数据可在url地址中展示出来,GET 请求将参数拼接在URI后面并传递给服务器(参数的 Key 与 Value 之间有“=”号,value 不需要引号包裹,多个参数之间用“&”符号连接)
eg:get请求接口 https://postman-echo.com/get?param1=hello¶m2=world
param1和param2表示发送的参数,?后面接参数,&连接多个参数
2.POST请求
HTTP的POST请求方法是指将数据传输到服务器并产生响应,POST请求可以使用url String(url字符串)参数+body 将参数传递给服务器。
Postman Body数据类型说明:
- 使用param传递参数,body中无参数:https://postman-echo.com/post?param1=hello
- form-data 是web表单模拟了在网站上填写表单并提交,即可以上传键值对,也可以上传文件。当上传字段是文件时,会有Centen-type来说明文件类型。
eg1:请求url https://postman-echo.com/post?param1=hello,请求方式为POST,其中body为form-data类型,参数分别为param1=hello和param2=world
- x-www-form-urlencoded文本表单,只需输入键值对,postman会正确编码键和值。
eg2:请求url https://postman-echo.com/post?param1=hello,请求方式为POST,其中body为application/x-www-form-urlencoded类型,参数分别为param1=hello和param2=world
- raw类型请求体可以发送任何格式的文本数据,如Text、JSON、JavaScript、XML、HTML等。一般用来发送JSON格式的请求体,可以自定义raw请求体内容。
eg3:请求url: https://postman-echo.com/post,请求方式为 POST,其中 body为json类型,参数分别为param1=hello和 param2=world
- binary类型请求体允许用户发送不能输入的内容,如图像、音频、视频等文件及文本文件常用的两种类型的请求格式: x-www-form-urlencoded和 json格式
注意:做以上那个操作是一定不要忘记点击保存后再发送
3.PUT请求
HTTP PUT请求方法类似于HTTP POST。是将数据传输到服务器并引发响应。
4.DELETE请求
Http delete方法用于删除服务器上的资源
5.Postman脚本高级
在发送一个请求前,需要执行一些操作,这就需要用到 Pre-request Script预请求脚本。若在请求返回响应后,执行一些操作,这就需要用到Tests。
Tests:在收到响应之后,添加作为“Tests”选项卡下的测试脚本,用于请求返回后做一些处理或断言结果。Postman提供一个JavaScript执行环境,可以通过JS脚本来编写pre-request Script和 test Script。
Pre-request Script:添加预请求脚本,用于在发送请求前生成一些动态数据或做一些处理。
四、变量
1.变量类型
全局变量(Global Variable):整个postman中的请求都可以使用
环境变量(Environment Variable):在某个环境下使用
集合变量(Local Variable)项目变量:只在某个集合下使用
数据变量(Data Variable)普通变量:在某个代码段中使用。
作用域范围:全局变量>环境变量>集合变量>数据变量
其中,我们经常用的是环境变量
2.环境变量
环境变量是postman为自定义环境设置参数值,如果事先设置了相关内容,就不用每次请求都去输入某些值.直接引用设置的值,使我们的测试更方便。可直接通过切换环境来实现多个环境中的参数切换。环境变量指在不同环境,同一个变量值随着环境不同而变化。
eg:创建/修改环境变量:在 postman界面点击右上角眼睛图标,即可开始设置环境变量和全局变量。环境变量设置过程如下图所示:
然后在下拉框中就可以找到环境变量了
可以设置三种环境dev开发测试环境;test是测试环境,release是正式的生产环境。环境变量,根据不同的环境,值不一样。
3.管理环境变量
点击Postman窗口右上角的“Manage Environment”,除了可以创建和共享环境变量之外,还可以复制、导出和删除环境变量,也可以导入JSON文件环境变量。
选择当前环境变量:在 Postman 窗口右上角的下拉菜单,选择一个环境变量作为当前环境变量,或者输入环境变量名,会自动匹配相应的环境变量。一旦选择了一个环境变量,就可以再当前环境范围内访问变量。
除了以上通过图形化界面设置环境中的变量,也可以通过JS代码片段设置。
4.引用变量
postman 中环境变量,通过{(变量名}}来引用
5.导入/导出环境变量
点击“manager environments”
五、添加断言
1.简介
一般来说执行完测试,我们需要对测试结果来进行校验,判断结果是是否符合我们的预期,也就是断言。在接口测试中一般会根据响应状态码或者响应返回的数据来进行断言。即实际结果和断言设置的预期对比,如果一致,则测试用例通过,如果不一致,断言失败,用例失败。
2.选择Tests后,在如下页面,可以选择自己的检查点,也可以自己在空白处编辑
3.自行选择能用到的检查点
4.导入文件(这里注意要符合文件格式要求txt/csv)
5.查看预览结果(注意:这里可能会出现乱码现象,解决办法:将编码格式改为utf-8)
6.如果是正常状态,Test Results就会显示PASS,否则FAIL
经常设置的断言内容有:
- 响应状态码: 200
- 响应内容:返回的值与定义的一致响应时间:小于300ms
内置JS脚本说明:
清除一个全局变量Clear a global variable
- 对应脚本:postman.clearGlobalVariable("variable_key");
- 参数:需要清除的变量的key
清除一个环境变量Clear an environment variable
- 对应脚本:postman.clearEnvironmentVariable("variable_key")
- 参数:需要清除的环境变量的key
response包含内容Response body:Contains string
- 对应脚本:tests["Body matches string"] =responseBody.has("string_you_want_to_search")
- 参数:预期内容
响应时间判断 Response time is less than 200ms
- 对应脚本: tests["Response time is less than 200ms"] = responseTime < 200
- 参数:响应时间
设置全局变量Set an global variable
- 对应脚本:postman.setGlobalVariable("variable_key" , "variable_value")
- 参数:全局变量的键值
设置环境变量 Set an environment variable
- 对应脚本:postman.setEnvironmentVariable("variable_key" , "variable_value")
- 参数:环境变量的键值
判断状态码Status code:Code is 200
- 对应脚本:tests["Status code is 200"]= responseCode.code != 400
- 参数:状态码