-
Jmeter入门之——基础知识
-
摘要
每个资深测试工程师,必须掌握的测试工具,熟练使用Jmeter能大大提高工作效率。 熟练使用Jmeter后, 能用Jmeter搞定的事情,你就不会使用LoadRunner了。Jmeter 是一款使用Java开发的,开源免费的,测试工具, 主要用来做功能测试和性能测试(压力测试/负载测试). 而且用Jmeter 来测试 Restful API, 非常好用。
- 安装
- 目录结构
-
Jmeter组件
-
组件
- Jmeter脚本加工
- 参数化1
用户参数化 计数器 随机变量 CSV Date Set Config参数化 Random CSV Data参数化 函数 时间戳: {__time(,)} : 默认该公式精确到毫秒级别, 13位数 {__time(/1000,)} : 该公式精确到秒级别, 10位数 ${__time(yyyyMMddHHmmss)}:20191218164153
通用唯一标识符ID
${__UUID()}
- 参数化2
Random CSV Data参数化
1.文件名: csv文件的路径,最好选择绝对路径;对于分布式测试,必须将CSV文件存储在服务器主机系统上与JMeter服务器启动所在的正确相对目录中 2.文件编码: 此CSV文件的编码,用于读取此文件的编码 3.分隔符:默认逗号 4.变量名称: 引用csv配置文件中的数据时,要指定变量名;指定一个变量以便后续引用,uu 引用就是${uu} 5.随机顺序: 注意!一定要勾选!!选中则会随机顺序从文件中读取数据,如果不选择,则和常规的CSV数据集配置-样工作。 6.Rewind on end of list 遇到文件结束符再次循环:在一个测试循环完成后, Jmeter再运行一个,这对于检查一段时间内的性能非常有用,当选择随机顺序时(第5项) ,第二次和后续的每一次重新循环都会以不同顺序读取CSV数据集中的数据。如果选择了该标志并且迭代循环已经结束,则将开始新的循环。 7.First line is CSV head 第一行是CsV标题: 如果指定了“变量名称” , 并且想要跳过文件中的第一行,请选中此复选框;如果第一行是定义了变量名称,那么此项勾选!选择此标志以跳过标题(仅在Variable Names不为空时使用) 8.Independent list per thread 每个线程的独立列表: 每个线程都将通过他们自己去读取配置文件,当使用随机顺字(第5项),每个线程都运行自己的随机序列,而不是所有线程都经过相同的变量顺序。
- 关联
- 断言
- 监听器
聚合报告 察看结果树 Qps趋势图 响应时间趋势图
- Jmeter分布式
1、在所有期望运行JMeter作为 负载产生器的机器上安装JMeter,并确定其中一台机器作为 控制器,其他的机器作为 代理。然后运行所有 代理 机器上的JMeter-server.bat文件—假定我们使用两台机器172.20.80.47和172.20.80.68作为 代理; 2、在Controller 机器的JMeter安装目录下找到 bin 目录,再找到 jmeter.properties 这个文件,使用记事本或者其他文字编辑工具打开它; 3、在打开的文件中查找“remote_hosts=”这个字符串,你可以找到这样一行“remote_hosts=127.0.0.1”。其中的 127.0..0.1 表示运行JMeter代理的机器,这里需要修改为“remote_hosts=172.20.80.47,172.20.80.68”; 4、保存文件,并重新启动控制器机器上的JMeter,并进入启动 ->远程启动菜单项。就会看到我们刚才添加的两个代理的地址,选中即可运行,如果想同时启动所有代理,选择远程全部启动即可。 要进行分布式测试代理机器上需要添加环境变量,即添加用户变量JMETER_HOME=d:\jmeter,系统变量中的path中添加d:\jmeter\bin(假设jmeter放在d盘根目录下)。
- 常见问题
1、Master调用Slave特别慢,Master接收不到报告。Master会启动端口(如5165X)来进行接收Slave消息,如果Slave不能访问这个端口,会异常。需要放开防火墙。2、性能上不去,Slave报java.rmi.ConnectException: Connection refused to host ,同时Master的CPU居高不下加大Master的CPU。
-
Jmeter构造数据
-
mysql
- mongo