【性能测试系列】JMeter核心技术:分布式压测和参数化 您所在的位置:网站首页 什么是测试环境搭建 【性能测试系列】JMeter核心技术:分布式压测和参数化

【性能测试系列】JMeter核心技术:分布式压测和参数化

2023-06-13 13:08| 来源: 网络整理| 查看: 265

JMeter分布式压测

为什么要做分布式部署?

在上一篇文章中,我们提到了JMeter的线程启动和运行,是会占用系统资源的,一旦需要大并发,而JMeter单机部署配置不够,将会导致JMeter无法在规定时间内启动对应的线程数,无法对服务器产生预期的压力,最终影响到性能测试的结果。

为了解决单机部署JMeter产生的这类问题,我们引入了JMeter分布式部署。

JMeter分布式原理

JMeter分布式的实现,其实是在多台上机器部署java和JMeter。

其中有一台机器叫做控制机,我们称之为Master,主要用于JMeter脚本分发和收集汇总Slaves的测试结果。

其他机器叫做压力机,或者叫负载机,我们称之为Slaves,数量可以是1台或多台,主要用于执行JMeter脚本并将结果反馈给Master。

我们来看下Master和Slaves的运行过程:

   Master运行时,会把JMeter脚本,分发给其他Slaves。

 Slaves获取到脚本后,会以命令行的方式,运行JMeter脚本,并把执行产生的数据回传给Master。

Master汇总收集所有Slaves运行的结果。

我们来看下下面这张图,能够帮助我们理解这段话:

JMeter分布式环境搭建

搞清楚了JMeter分布式的原理,接下来我们来看下JMeter分布式环境搭建的具体步骤:

假设有3台机器:

    Master: 10.0.0.1

    Slave1: 10.0.0.2

    Slave2: 10.0.0.3

Master配置

在Master上安装JMeter,并修改jmeter.properties文件的remote_honsts,如下图所示,端口(server_port)如果不冲突,可以不用改,用默认的1099即可:

Slave配置

1. 在Slave上安装JMeter,并修改jmeter.properties文件配置,如下图所示:

        注意:

              1. 端口如果没有被其他应用程序占用,可以不用修改server_port。

              2. remote_hosts不用改。

        2.  启动JMeter/bin目录下的jmeter-server。

         jmeter -n -t test.jmx -l test.jtl -e -o test_report

以上配置完成后,我们就可以在Master上执行以下命令运行我们的脚本进行性能测试了:

以上就是JMeter分布式的运行原理和搭建步骤,接下来我们来了解下参数化。

JMeter参数化 为什么要做参数化

讲参数化之前,我们先来思考一个问题,为什么要做参数化?

原因主要有以下两点:

缓存

缓存的作用是为了提高数据的处理效率而设置的,比如某个用户频繁重复获取某一个商品的信息,有极大可能就是访问的缓存的数据,这种场景和实际的线上场景显然是不符合的。

而线上实际场景可能是多个用户获取多个不同的商品信息,这时候很大可能不是访问的缓存数据。

而cpu读取缓存的速度会比不读取缓存的速度快很多,这样会让性能测试结果和线上的实际运行情况不符合。

 业务的需要

举个实际的例子,比如买车票,同一天同一车次,一个人只能买一张,这个时候如果不对用户做参数化,就会导致购票失败

JMeter参数化

JMeter参数化有很多种,这里介绍下常用的3种方式:

以用户登录的请求参数:phone(手机号),password(密码)为例

3. Function Helper(函数助手)中的函数:如__CSVReader,__Random等

CSV Data Set Config组件:将参数放在txt或者csv文件中

新增一个存放参数化数据的文件:user.csv

添加一个csv Data Set Config

在HTTP Requests里使用参数:

User defined variable: 通常用来配置脚本公共的参数,比如域名,端口号等

新增一个config element - User defined variable组件:

在HTTP Requests里使用:

__Random可用于生成随机数,用法:

__CSVRead可用于读取文件,用法:

如果文章对你有帮助,记得点赞,收藏,加关注。会不定期分享一些干货哦...... END配套学习资源分享

最后: 为了回馈铁杆粉丝们,我给大家整理了完整的软件测试视频学习教程,朋友们如果需要可以自行免费领取 【保证100%免费】

加入我的软件测试交流qq群:110685036免费获取~(同行大佬一起学术交流,每晚都有大佬直播分享技术知识点)

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

全套资料获取方式:



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有