jmeter接口性能实战笔记(上)
前言
1.使用jmeter之前请安装JDK。JDK环境变量配置请自行百度,不同版本,不同操作系统,统计下来可以玩出花来。
2.个人使用的是jmeter 5.0版本,版本好坏众说纷纭,个人喜欢用最新的,新版本是容易出bug,碰到的的错多了,有助测试增长见识。
3.接口报文来自谷歌的开发者工具,比一般的工具好用。
实战
1. HTTP信息头管理器
一般http用的都是json格式数据的,具体看各自的设置,这个在谷歌浏览器的开发者工具里面也可以自己看
左边名称,右边值
左边名称,右边值。
2. setUp线程组
2.1 作用
获取登陆状态,跨线程传递cookie。不用每次业务请求前面都要插个登陆。
当然你也可以用它干点别的。
2.2 http请求
2.2.1 添加http请求
鼠标移到线程组上右键,如图
2.2.2 请求设置
2.2.3 协议
http协议就http和https,根据自己情况来。
2.2.4 服务器名称或IP
就这种
2.2.5 端口号
上图红框后面的40002
一般网址
冒号前面的是IP和网址
冒号后面的是端口号
2.2.6 请求方式
http和https有八种请求方式,具体可以看开发者模式
2.2.7 路径
链接里面有的有端口号,后面就是
2.2.8 内容编码
一般是中文是UTF-8,也有别的。
信息头里面其实基本都有。
可不填。
2.2.9 请求参数
POST请求,JSON格式的,是在消息体数据里面填
懒的话,开发者模式里面有
headers
红框置灰的那个可以点的
点一下就转成了标准的JSON格式了,复制粘贴就可以
注意请求数据有的需要参数化
2.3 JSON断言
jmeter的json断言支持直接提取json字符串。头铁的也可以用正则。
Assert JSON Path exists: $符号后面填要提取的信息,注意json的层级关系
Expected Value: 填需要的值。
我的登陆,成功请求返回 resCode 值是 0000。
2.4 JSON提取器
JSON提取器和JSON断言原理是一样的
Names of created variables:给你提取的参数取个名字,后面要用,取个好听又实用的名字吧。
JSON path expressions: 提取参数的路径。开发者工具响应里面有返回的响应数据
复制之后在一些在线网站格式化一下,比较容易看清层级关系。
所以我这里参数的提取路径是:$.resData.tpSessionId
有些数组,中括号里面那种,要加数字参数,比如这种:$.resData.gcAdjustMainReqVo.adjustDetailVos[0].adjustDetailId
提取路径写得对不对也可以在结果树里面校验
查看方式选为JSON Path Tester
响应的数据下面有一个验证栏:JSON Path Expression
输入写好的提取路径
点一下Test
出结果了就是对的,没结果就写错了。
2.5 设置全局变量
jmeter不同线程之间传递参数需要设置全局函数???
全局变量使用BeanShell PostProcessor
老版本的函数助手蛮好用,好在现在直接能百度到java函数怎么写
首先你要有取过名字的参数上面我提了两个cookie参数
然后Parameters里面把参数名字填进去,注意参数化一下。用逗号隔开。
再然后你再给他取个全局函数名,比如all_之类的
最后放在全局函数公式里面
如图
后面cookie调用全局变量的参数名就可以了。
上半部分就这么多
(上)记录了一下setUp线程和线程间的传参。
(下)准备写一下用到的jmeter自带的cookie管理器,时间函数,读取CSV文件,存储参数到CSV文件等等。