postman
- postman是一个调用HTTP请求时的工具,它提供了友好的界面帮助分析,构造http请求,并分析响应数据
- 实际工作过程中,开发和测试基本上都有使用postman来进行接口调用调试工作
- 有一些其他流程的工具,也是模仿的postman的风格进行接口测试工具设计的
postman工作原理
- postman近似一个浏览器,他可以模拟浏览器,app等原生客户端向服务器发送请求,并获取接口的响应数据
- 具体的示例图如下:
postman入门
- postman的安装
-
- 官网下载postman,双击安装postman得安装包即可
-
-
- 双击后自动安装,安装完成之后就会转圈圈
-
-
-
- 首次进入,会有注册账号的页面,可以不注册任何账号,点击最下方的“Skip and go to the app”即可。或者关掉注册页面重新打开postman也可以
-
-
-
- 进入主界面左侧的几个模块
-
-
-
-
- Collections:用例集;
-
-
-
-
-
- APIS:使用postman工具来生成接口文档
-
-
-
-
-
- Environments:环境变量
-
-
-
-
-
- Mock Sever:用postman进行Mock服务
-
-
-
-
-
- Monitors:监控
-
-
-
-
-
- History:历史记录
-
-
-
- 添加用例集/请求的方式:
-
-
- 点击+ 或者选择File——new,如下图:
- 点击+ 或者选择File——new,如下图:
-
postman的基础用法
-
postman能够按照接口文档的规定,设置接口的请求方法、请求头和请求体来完成请求数据的构造
-
然后查看响应数据,完成响应数据的测试
-
GET请求方法,设置请求信息
-
Param中,headers表单,为请求头设置的地方,截图相见下方
-
非GET请求方式下,请求体的设置,重点需要掌握表单请求体和raw方式
-
raw中设置表单信息的话,使用的是字典/json数据
-
查看服务器的响应数据
-
用法总结:
-
- 根据接口文档,提取请求方法、UR L、请求头、请求体、依次输入请求信息,然后发送请求,查看响应数据
-
- 对比响应数据中的参数和接口文档是否一致,参数值和需求规定的业务逻辑是否一致
-
- url encode表单请求数据,需要设置url查询参数和请求体数据
-
- application/json请求数据
-
- multipart/form-data上传文件
-
- 查看响应数据
-
- 需要采用的数据类型,由公司开发部门规定
postman的高级用法
使用postman管理测试用例
- postman可以使用自带的用力集管理测试用例(Collection)
- Collection:类似于一个文件系统,下面可以添加文件、子文件、请求等
- 与操作系统的文件系统不同的是,他是postman内部的模拟文件系统,并不是真的文件存储系统
- 添加步骤:
-
- 第一步:添加用例集
-
- 第二步:用例集下面添加子文件
-
- 第三步:添加请求
- 第三步:添加请求
- 在工作中,如果有多个接口或者接口的测试用例,都可以通过request来进行管理
- 如果是业务场景测试或者模块,可以用文件夹或者用例集来管理
批量执行测试用例
-
作用:自动执行编写好的测试用例,实现自动化接口测试
-
postman可以使用自带的collection Runner(用例集运行器)来批量运行测试用例
-
操作步骤如下图:collection ——Runs——Run collection
-
点击之后,出现以下界面,可设置用例集的运行信息
-
导入外部文件的数据,一般适用于使用外部的数据来实现用例参数化的情况,这种情况下必须倒入外部参数信息
-
data 下面的“Advanced settings”展开后,有四个选项,默认可以不配置,如下图:
-
点击Run用例集合运行测试用例,即可批量运行测试用例,运行结果如下:
-
增加断言的路径为:api接口中的Tests选项的tab下
-
注意:断言设置之后,一定要保存
-
设置完之后,重新执行测试用例,步骤和测试结果如下:
-
执行完成之后,左键点击api名称(添加任务)即可看到请求的详细信息,如下图示:
-
备注:如果在创建用例集时,没有选择保存响应数据(Save reponses),是不会有下图中的响应数据的
-
在上传图片时,如果上传图片的空间与postman的工作空间不一致,可能会导致程序运行失败,因此,需要在设置中将poatman的工作空间进行调整,位置如下:
-
单个接口设置test之后请求,可以在下图中查看执行结果
postman断言
- 为了进行自动化测试,我们必须让计算机帮助我们判断实际结果与预期结果是否一致
- 可以通过断言,来让计算机运行时,帮助我们判断结果
- 断言:计算机自动判断两组数据关系是否为真时的过程
- 以下为各种断言的代码示例,其实在postman得test的右侧,选择响应的断言之后可直接生成
//以下断言中,test括起来的是断言描述信息
//{}中pm开头的是断言代码,代码中的预期结果可以修改
pm.test("断言:响应码等于200", function () {
pm.response.to.have.status(200);//200为预期结果
});
pm.test("断言:响应体字符串存在tassk_id", function () {
pm.expect(pm.response.text()).to.include("task_id");//task_id为预期结果
});
pm.test("断言:code等于0-", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.mes).to.eql("任务创建成功");//任务创建成功为预期结果
});
pm.test("多级断言:url是……", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.data.url).to.eql("https://video.weibo.com/show?fid=1034:4745151529287713");//url为预期结果
});
pm.test("断言:响应时间小于500ms", function () {
pm.expect(pm.response.responseTime).to.be.below(500);
});
pm.test("断言:响应体数据", function () {
pm.response.to.have.body("response_body_string");
});//response_body_string要填写返回的json信息,在这里跳过
pm.test("断言:响应头是否存在Content-Type", function () {
pm.response.to.have.header("Content-Type");//也可以断言响应头中的其他信息,修改即可
pm.response.to.have.header("X-Forwarded-Proto","https");//断言某个请求头参数的数值
});
- 执行结果如下:
环境变量和全局变量
-
postman提供GUI界面的变量管理窗口,可以管理全局变量和环境变量
-
全局变量:整个postman都能使用的变量
-
环境变量:选中环境之后,才会全局生效的变量
-
- 环境变量的作用:可以通过变量进行参数话,方便集中管理测试数据,同时化境变量还可以起到快速切换环境的作用
-
postman界面对于变量的管理主要分为2大块,UI界面数据块和代码块,位置详见下图
-
- UI界面数据有:URL、Params、Authorization、Headers、Body,即下图中画框的部分可以使用界面环境变量
-
- 代码块:Pre-request-scripts
-
- Tests
- Tests
-
UI界面使用数据块的方式:引用变量方法:{{变量名}}
-
代码块引用变量的方法,环境变量需要选择环境变量之后才能使用:
pm.globals.get("variable_key");//设置全局变量参数名
pm.globals.set("variable_key", "variable_value");//给全局变量的参数赋值
pm.environment.set("variable_key", "variable_value");//设置环境变量的参数名
pm.environment.get("variable_key");//给环境变量的参数赋值
//上面代码中variable_key为变量名,variable_value为变量值
-
设置环境变量的位置,左侧Environments,点击之后点击Creat Environment即可,或者点击已存在的Global,即可进入设置环境的界面
-
设置界面如下图示例:
-
在设置环境变量时,环境变量的优先级比全局变量的优先级高
-
当环境变量和全局变量的参数名完全相同时,优先使用环境变量设置的参数信息
-
环境变量一般情况下使用的场景有两种
-
- 1.替换api请求中的参数值(因为不同环境使用的参数不同,例如手机号)
-
- 2.替换api请求中的域名(因为不同环境使用的域名不同)
-
api参数使用环境变量的步骤
-
- 按照业务逻辑,先使用postman调用api的接口,所需信息使用后抓包或者接口文档获得
-
- 设置环境变量
-
-
- 对于测试api中,所有接口都使用的参数,放在Globals中(poatman)中
-
-
-
- 对于api接口自己使用的参数,例如域名(各个接口的不一致),需要放在自己创建的环境中
-
-
-
- 环境变量中,参数自己定义,不必要和接口文档保持一致,因为可能存在不同接口,参数相同的情况
- 环境变量中,参数自己定义,不必要和接口文档保持一致,因为可能存在不同接口,参数相同的情况
-
-
- 用环境变量中的变量替换api中请求体的数据
-
- 发送请求,对比结果
- 发送请求,对比结果
-
api调用时,请求域名的参数化
postman关联
- 关联:将多个接口联系起来的技术,就是关联
- 本质上就是关联数据,例如可以将上一个接口返回的部分响应数据,当作下一个接口的入参数据
- 关联的作用:解决接口之间的依赖关系和决定接口执行的顺序,关联多个接口,实现接口的组合测试,常用于业务场景
- 操作步骤:
-
- 调用上一个接口
-
- 在Tests中,编写提取上一个接口响应数据和保存数据至全局变量的代码,代码如下:
//提取json格式的响应数据
var jsonData = pm.response.json()
// 提取返回信息中的参数信息
var task_id= jsonData.data.task_id
//将提取出来的参数保存到全局变量
//第一个参数是全局变量的参数名,第二个参数时参数值
pm.globals.set("task_id",task_id)
//也可以将提取出来的图片保存到环境变量
//pm.environment.set("task_id",task_id)
-
- 调用前一个接口,将环上一个环境的参数添加进环境变量中
- 调用前一个接口,将环上一个环境的参数添加进环境变量中
-
- 在下一个接口中引用保存的数据,并发送请求
- 在下一个接口中引用保存的数据,并发送请求
postman请求前置脚本
- postman请求前置脚本:发送请求之前要执行的脚本
-
- 客户发出请求之后,其余的都是在postman内部执行
-
- postman内部要做的事情时:执行前置脚本,构造和发送请求数据,处理响应数据(断言)
- 请求前置脚本的作用:和代码一样,js可以做的事情,postman也能做
- js可以构造测试数据,设计接口请求,设计执行流程等等
- 请求前置脚本常见的作用:用来获取动态数据,签名接口数据,加密数据
-
- 动态数据:时间戳,随机数
-
- 对整个接口数据签名:防止数据被篡改
-
- 加密数据:防止数据被偷窥
- 请求前置脚本的位置:
- 加密代码如下:
//设置生成注册加密密码的代码
varsuth_code = "TPSHOP"+"123456";
var signedMds = CryptoJS.MD5(auth_code).toString();
console.log(signedMds);
//保存生成的MD5123456的验证码
pm.globals.set("signed",signedMds);
- 代码编写之后,需要对参数进行修改,主要针对密码和确认密码
postman参数化及生成测试报告
参数化与数据驱动
- 参数化,把数据用参数来替代,从而进行测试的过程。参数化是实现数据驱动测试的前置技术
- 数据驱动:将测试数据和测试脚本分离,用数据来驱动测试用例的执行,简单的说,就是一条数据对应一条测试用例
- postman实现数据驱动——支持的文件
-
- json,小规模测试用例,json可嵌套数据
-
-
- postman支持的json数据文件中,json数据文件的内容中,最外层必须使用中括号(列表)
-
-
-
- 中括号中的每一组数据必须是大括号(字典),逗号隔开
-
-
-
- 大括号中,就是我们常用的数据,即键值对的形式
-
-
- CSV,大量测试用例,CSV不支持
-
-
- 第一行必须是参数名,逗号隔开
-
-
-
- 除第一行之外,文件中的每一行数据,都是一组数据,每组数据的列数必须和参数列一致,即逗号的间隔必须一致
-
- postman导入驱动的位置如下图示例:
- 导入数据之后,会在data下新增一行,用于显示成功上传的文件,也可与看参数信息(Preview)
- 导入几行数据,执行次数(iterations)就显示为几
- 参数化文件的注意事项
-
- 首先,需要新建txt文件,然后修改文本文件的后缀名
-
- 如果是json文件,后缀名就是.json;如果是csv文件,后缀名就是.csv
-
- 设置好之后,最好使用notepad++打开文件,并设置一条数据,首次不要使用excel输入数据
-
- 保存之后,再使用excel打开,修改数据之后,在保存提示不兼容时,要选择是,不能选择否
-
- 需要注意编码问题,如果出现乱码,需要将文件编码改成utf-8(notepad中,encoding下,选择utf-8 即可)
- 导入外部参数数据之后,不能在postman主界面点击send发送请求,因为变量识别不到,外部关联的变量只有在postman的Runner中才能识别
- postman实现数据驱动——关联数据文件中的参数
-
- 请求参数区:用{{外部数据文件的参数名}}关联,和环境变量的使用方式相似
-
- 代码区域,请求前置脚本(Pre-requect-Script)和Tests脚本都可以用代码关联
-
- 代码:
data.外部数据文件中的参数名
- 代码:
- 如果在run的时候,存在外部传入的变量,即使外部文件中的参数和环境变量的参数相同,也会使用外部传入的参数
- 执行完成后的结果如下图:
- 如果在run的时候,需要将外部文件中的预期结果,断言的编写方式如下:
postman生成测试报告
- postman使用runner运行时,生成的测试报告只能在postman内部内部查看,并不能很好的传递给其他人
- 因此,可以生成一个HTML的报告,HTML容易传播,只要有浏览器就可以打开查看
- postman如果要生成HTML报告,需要使用newman工具生成
- newman 是使用node.js开发,专门为postman做的生成测试报告的工具插件
-
- 因此我们需要安装node.js newman和newman的插件:newman-repoer-html
- newman安装:
-
- 进入https://nodejs.org/en/下载插件,选择“Recommended for most User”的按钮下载
-
- 双击之后, 根据安装向导一步步的安装,一路下一步即可
-
- 如果在cmd(windows操作系统中)中,输入
node -v
的命令,如果可以显示版本号,说明安装成功
- 如果在cmd(windows操作系统中)中,输入
-
- 然后需要验证npm是否安装,命令为
npm -v
,如果可以显示版本号,说明安装成功
- 然后需要验证npm是否安装,命令为
-
- node.js安装好之后,要开始安装newman,在cmd中使用命令
npm install -g newman
即可
- node.js安装好之后,要开始安装newman,在cmd中使用命令
-
- 然后需要安装newman插件,在cmd命令中输入
npm install -g newman-reporter-html
即可
- 然后需要安装newman插件,在cmd命令中输入
-
- 验证newman是否安装完成的方式是:
new -v
,如果可以显示版本号,说明安装成功
- 验证newman是否安装完成的方式是:
-
- newman-reporter-html的检查方式是:在npm的安装路径下(环境变量中确认),点击node_modules,查看是否存在newman-reporter-html文件夹
- newman安装好主机后,需要先导出用例集,导出方式为:
-
- 选择用例集右侧的三个点——Export——使用推荐的导出即可,具体方式如下:
- 选择用例集右侧的三个点——Export——使用推荐的导出即可,具体方式如下:
- 导出环境文件(如果断言的时候用到环境的话):
- newman的命令介绍:
-
- newman run 用例集.json 运行用例集
-
- newman -e 环境变量.json 指定运行环境
-
- newman -d 数据文件.json 指定运行数据
-
- newman -r html 生成html报告
-
- newman -r reporter -html -export report.html 指定html报告名称是report.html
- 运行案例:
- 以上命令运行在cmd中执行,数据文件、用例集、环境变量等,都必须使用路径准确到文件名
jemter
- Jemter采用Java语言开发,是一款用来进行互联网接口自动化测试和性能测试的工具
Jemter的安装
-
首先要安装JDK,下载网址
-
下载后,使用新手指引安装(Windows);将下载的dmg文件拖拽到应用中即可(MAC)
-
安装jdk之后,需要安装jemter,地址
-
验证jdk是否安装,需要在cmd(windows)或者(应用-其他-终端)中输入
java -version
,看到版本号说明可用 -
配置环境变量:(windows)
-
- 此电脑——属性——高级系统设置——高级下的环境变量——系统变量——新建——输入“JAVA_HOME”和jdk的安装目录——确定保存
-
- 新建——输入“JRE_HOME”和jre的安装目录(一般在jdk中)——确定保存
-
- path中,将jdk和jre的路径输入
- path中,将jdk和jre的路径输入
-
配置好环境变量,cmd窗口需要重启输入命令才能确认
-
将安装包下载后,解压,双击jemter.bat(Windows)或者双击jemter.sh(MAC)即可
-
配置jemter的环境变量,和jdk的环境变量配置一样,需要新建“JEMTER_HOME”,并设置相关参数(jemter的安装目录)和在path中设置jemter的安装目录
-
MAC配置环境变量,需要在应用-其他-终端中打开配置文件:
open .bash_profile
-
- 在配置文件中输入以下代码:其中jdk和jmeter需要改为自己的路径
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home
export JMETER_HOME=//Users/fyc/Desktop/Work/apache-jmeter-5.5
# 冒号前代表JDK目录下的bin目录,冒号后代表当前目录
export PATH=$JAVA_HOME/bin:$PATH:.:$JMETER_HOME/bin:$PATH
-
- 也可以使用以下配置环境的代码
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home
PATH=$JAVA_HOME/bin:$PATH:.
CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.
export JAVA_HOME
export PATH
export CLASSPATH
export JMETER_HOME=//Users/fyc/Desktop/Work/apache-jmeter-5.5
export PATH=$JAVA_HOME/bin:$PATH:.:$JMETER_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$JMETER_HOME/lib/logkit-2.0.jar
-
- 配置完成之后,要使用
source ~/.bash_profile
使配置文件生效
- 配置完成之后,要使用
-
- 然后使用
echo $JAVA_HOME
和echo $JMETER_HOME
来确认生效,如下图
- 然后使用
-
- 之后就可以直接输入jmeter打开软件了
-
- 【备注】终端只要关闭,jmeter每次打开都需要先执行
source ~/.bash_profile
使配置文件生效,才能输入jmeter命令。打开软件,否则会找不到
- 【备注】终端只要关闭,jmeter每次打开都需要先执行
Jemter的目录结构
- backups:jemter自动备份的数据,可以在其中寻找与一些忘记保存的数据
- bin:jemter可执行文件目录,启动jemter时,就是启动bin目录下的apachejemter.jar,jemter.bat/jemter.sh文件
- docs:jemter的接口文档,二次开发的开发工程师需要学习查看
- extras:jemter的第三方功能,里面继承了试用ant来生成html测试报告的功能
- lib:jemter本地依赖包库,一旦删除,影响jemter的运行
- licenses:jemter的证书
- pritable_docs:jemter的操作手册,如果想自学jemter,可以查看这个tripacle_docs中英文文档自学
Jemter的通用配置
- 在jmeter中,添加多个线程组,运行的时候并不是运行完一个线程组之后在运行第二个,他们默认是并行运行的,如果要实现串行运行(运行完一个之后再运行下一个),需要做如下设置:
- 语言配置
-
- 试用jemter时,为了方便使用,都习惯使用中文版本,因此可以切换jemter的语言配置
-
- 启动jemter后,点击Options——>Choose Language ——>Chinese(Simplifled)
-
- 示例如下:
- 示例如下:
- Jemter外观修改:
-
- 启动jemter后,点击选项——>外观 ——>Windows
-
- 选择之后会出现探矿,确定之后jemter会自动重启,重启之后外观就换
- Jemter安装第三方插件:
-
- 准备第三方插件依赖包,下载地址
-
- 点击以下按钮下载:
- 点击以下按钮下载:
-
- 然后将插件放在根目录/lib/ext中,重启jemter
-
- 启动jemter后,点击选项——>Plugins Manager,如下图示:
- 启动jemter后,点击选项——>Plugins Manager,如下图示:
- 选择之后,会出现以下界面:
- 安装之后,需要重启jemter才能安装成功
jemter的基础使用
- jmeter保存脚本(上面任务栏中的按钮),默认实在jmeter的bin文件下面,可以自己自定义路径
-
启动(绿三角)按钮左侧的那个是切换按钮,就是切换启用禁用的,点击后可置灰api请求,置灰后api请求就会失效
- 性能测试要注意jmeter右上角的这几个图标
-
- 时间:脚本当前测试运行的时间,在性能测试中,可以看出脚本一共运行了多长时间
-
- 三角形:显示日志中的异常数,当jmeter工具运行报错的时候,这个地方就会出现红色的数字
-
- 在后面的0/1:0代表正在运行的线程数;1代表线程组中设置的线程数,即将要启动的线程数
测试计划
- 计划:什么时间,什么人,做什么事情
- jmeter中的测试计划,就是一切接口请求脚本的根节点
线程组
- 添加线程组并设置线程组信息(下图中的Threads(User)是线程(用户)的意思)
-
- jedmter是基于线程来运行的,线程组主要用来管理线程的数量,线程的执行策略。例如线程的并发数,并发时间,请求循环次数
- 添加方式:右击线程组——用户——线程组
线程组右侧详情界面的解释
文章来源:https://www.toymoban.com/news/detail-770949.html
- 线程组的名称:按照自己的需求随便填写
- 注释:选填项,根据自己的需求标注
- 在取样器错误之后,要执行的动作(线程组页面注释下的单选按钮)
-
- 继续:会继续运行,不会停下来(默认和常用,其他选项了解即可),也就是说在多api的情况下,一个请求报错,其他的请求也会执行
-
- 启动下一个进程:用例报错的话,启动下一个相同的用例,直到用例顺利通过才请求另外的用例
-
- 停止线程:一个线程(并发)出现问题,就不会执行并发之后的用例,并发没有问题的话,继续执行
-
- 停止测试:停止测试计划下的说所有线程组,也就是说:一旦一个线程报错,所有线程全部停止,但是已经启动的线程不会停止(已启动的线程需要等待服务器响应才停止)
-
- 立即停止测试:停止测试计划下的说所有线程组,也就是说:一旦一个线程报错,所有线程全部停止,包括已经启动的线程(已启动的线程不论服务器是否响应,都会停止)
- 线程的属性:
-
- 线程数:启动线程的数量,也是用户数量(并发数 )
-
- Ramp- UP时间(秒):每个线程启动的时间间隔,第一个线程是0秒启动
-
- 循环次数:请求循环几次
-
- 延迟穿件线程直到需要:修复Ramp-UP的BUG设置的功能
-
- 调度器:设置线程启动的策略,主要有线程的运行时间和启动延迟
-
- 调度器项——持续时间:所有线程运行的最大时间
-
-
- 如果启动哦线程给服务器发送请求,因为发送哦请求后,会阻塞线程,让线程等待服务器响应,因此,在服务器没有返回响应数据之前,线程会进入等待状态无法停止,导致超过设置的最大时间
-
-
-
- 启动延迟:启动线程要等待的时间
-
-
-
- 例如:如果设置持续时间为120s,延迟启动时间为60s,那么前60s是不会调用api的
-
- 在不勾选循环次数下的延迟创建线程直至需要(Delay……)的情况下,每个线程启动的间隔时间为60/60,勾选的情况下,每个线程启动的时间为60/(60-1)
HTTP请求
- HTTP请求是jemter接口测试的核心部分,主要使用HTTP取样器来发送接口请求,在这里可以填写请求接口的基本信息,例如协议,地址,传参等
- 一个线程组下面可以有多个HTTP请求,HTTP请求也必须设置在线程组下面
- 添加方式:右击线程组——添加——取样器——HTTP请求
配置HTTP取样器
文章来源地址https://www.toymoban.com/news/detail-770949.html
- 名称:接口请求的名称
- 注释:接口请求需要注意的地方,可有可无
-
协议:填写URL协议部分的内容,例如HTTP,可以不写,
但是当协议是https的时候,一定要写
- 服务器名称/IP:填写URL中域名/ip的部分
- 端口号:项目的端口,如果是tomcate,就是8080
- 方法:请求方法,GET、POST、DELETE、PUT等,请使用选择,不要手动填写
- 重定向的选择
-
- 默认是跟随重定向,在查看结果树中可以看到重定向的过程,后续可以提取过程中的数据(如果需要)
-
- 自动重定向:直接跳跃到最终的地址上,查看结果树中,看不到中间过程,所以无法提取到中间过程的数据
- 路径:URL中,域名、端口之外的部分,例如:/login,注意前后不能有空格
- 内容编码:设置请求数据的编码类型,例如:utf8
- 参数(Parameters):设置查询参数和请求体数据
-
- 当请求方法手段是Get时,参数是查询参数
-
- 当请求方法是POST时,参数是请求数据(表单格式请求体)
- 消息体数据(Body Data):自定义的请求体数据,和参数只能选择一个填写
-
- 一般情况下用于当传参格式为json、xml形式的时候;请求的时候必须加上消息头,内容信息为Content-Type:application/json
-
- 做性能测试的时候,请求体中的非必传参数,一般都需要填写
-
- 请求体的参数类型是数字的时候,值没有双引号
- 文件上传(File Upload):定义要上传的文件
HTTP 协议脚本注意事项
- 协议:如果协议是http,可以不写,但是如果是https就必须要写
- 服务器名称:千万不能有/,也就是说用域名访问,不要写http://
- 端口:如果不填写,默认是80端口
- 请求方法:要选择,千万不要手动填写
- 要根据接口文档中的方法、请求体传参数据来编写脚本,否则会出错或重定向
- 路径:路径地址前后千万不能有空格
- 内容编码:utf8,消息体中存在中文或特殊符号的时候可填写
-
- 内容编码仅对消息体数据有效,对表单参数是无效的
-
- 对中文数据的处理,也可以在请求头管理器中填写
charset=utf8
来做处理
- 对中文数据的处理,也可以在请求头管理器中填写
- 对于请求体,jmeter中认为参数和消息体数据是互斥的,不可能同时存在
-
当请求参数为表单类型的时候,需要在表单参数的列表中,编码列中勾选设置编码信息(中文或者特殊符号必须勾选)(这里的编码时对表单中的内容进行urlencode的编码)
- 请求体的类型为json、xml形式的时候,就一定要有消息头
查看结果树
- 通过HTTP取样器发送接口请求之后,服务器返回的结果需要通过查看结果树进行查看
- 作用:发送请求之后,在查看结果树中查看取样器的运行结果(请求的返回结果)
- 添加方式:线程组右击——监听器——查看结果树
- 查看结果树中包含了经过jemter处理之后的请求数据和响应体
- 名称:查看结果树的名称
- 注释:查看结果树的注释,可有可无
- 文件名:选择把结果保存到文件,不写时不保存
- Text(侧边栏,可以看到XXX请求字样,XXX指协议):可以选择查看响应数据的方式
-
- Text的最右侧存在下拉按钮,点击后可选择显示类型,例如可选择XPATH 、HTML、JSON、正则表达式等等
-
- Text中的请求结果为绿色时,仅仅代表网络成功,即响应状态码为1XX,2XX,3XX,不代表预期和结果一致
-
- 而红色也仅仅代表网络相应失败,响应状态码为4XX,5XX
- 查找:搜索查看结果树中,左侧侧边栏的信息
- 取样器结果:在选择了Text格式查看数据时会显示,主要查看一些综合的信息,包括接口请求时间,数据包大小等
- 请求:查看接口的所有请求数据,包括请求行,请求头和请求体,这个数据经过了jemter的处理,所以用来分析jemter处理请求的过程中有没有出现问题
- 响应:查看接口所有响应数据,包括状态、响应头和响应体
到了这里,关于接口测试——postman和Jemter(只有基础使用配置)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!