当前位置:网站首页>No, no, no, it's 2022, you don't know the principle of Jmeter, right?

No, no, no, it's 2022, you don't know the principle of Jmeter, right?

2022-08-06 07:38:40Soft Test Small Watermelon

目录

三、Jmeter科普

1、测试分类

2、性能测试流程

3、The performance test to success and failure

4、Different roles at performance

5、性能测试相关术语


JMETER是运行在JVM虚拟机上的,Each process overhead thanloadrunner的进程开销大,If, in the form of process to run each load on the number of processes will not allow too much,When a large number of concurrent requires a lot of load machine,jmeter选择了以线程方式来运行.jmeterThrough the thread group to drive multiple threads to run the test script on the server under test load,每一个负载机上都可以运行多个线程组.jemter运行场景不仅可以再gui方式中完成,You can also run a command line,And command line operation mode for load machine resource consumption will be smaller.Jmeter基本原理是建立一个线程池,多线程运行取样器产生大量负载,在运行过程中通过断言来验证结果的正确性,可以通过监听来记录测试结果;

  如果取样器中有参数化需求,可以通过配置元件或者前置处理器来完成;

  如果取样器中有关联需求,可以通过后置处理器来完成;

  如果要模拟负载场景,比如模拟多少用户,运动多长时间,可以通过线程组完成;

  如果要模拟并发场景,可以通过定时器来完成;

  如果要控制业务的执行逻辑,比如登录只运行一次,可以通过控制器来完成;

  一:jmeter远程运行,远程运行架构图

 

  1:控制机

  运行多台jmeter负载机进行性能测试时,被选中作为管理机的那台机器就是控制机.控制机也可以参与脚本的运行,同时它也担负管理远程负载机指挥远程负载机运行工作,且收集远程负载机运行测试结果.

  2:负载机

  负载机就是向被测应用服务发起负载(请求)的机器.控制机同时也是一台负载机.jmeter负载机受控制机(jmeter负载机)的管理.与支持其他远程运行的测试工具一样,负载机受控制机管理首先要启动一个客户端程序(Agent:jmeter-server.bat),这样控制机才可以接管负载机.控制机会把运行的脚本隐蔽的发送到远程负载机,但是运行的测试脚本有参数文件或者依赖jar包时,控制机并不能把他们发送到远程负载机,这种情况就需要手动拷贝,也可以用工具实现自动拷贝.

  3:远程运行逻辑

  远程负载机首先启动agent程序,待控制机连接;控制机连接上远程负载机;控制机发送指令(脚本及启动命令)启动线程;负载机运行脚本,回传状态(包括测试结果);控制机收集结果并显示

二、Jmeter结构体系及运行原理

把Jmeter的结构体系拆分为三维空间,如图:

X1~X5是负载模拟的一个过程,使用这些组件来完成负载的模拟;

X1:选择协议,模拟用户请求,检查服务器响应是否正确,然后收集结果信息;

X2:完善测试脚本部分,包括参数化,关联等;

X3:控制测试脚本业务逻辑;

X4:集合点,模拟用户并发;

X5:用户数,一个线程代表一个用户;

Y1可以理解为选择协议,包含负载模拟部分,负责模拟用户请求;

Y2可以理解为检查点,结果验证部分,负责验证结果正确性;

Z可以理解为监控器,负责结果的收集,监听器不仅可以放在线程组之内,也可以放在线程组之外;

Jmeter运行原理:

Jmeter基本原理是建立一个线程池,多线程运行取样器产生大量负载,在运行过程中通过断言来验证结果的正确性,可以通过监听来记录测试结果;

如果取样器中有参数化需求,可以通过配置元件或者前置处理器来完成;

如果取样器中有关联需求,可以通过后置处理器来完成;

如果要模拟负载场景,比如模拟多少用户,运动多长时间,可以通过线程组完成;

如果要模拟并发场景,可以通过定时器来完成;

如果要控制业务的执行逻辑,比如登录只运行一次,可以通过控制器来完成;

三、Jmeter科普

1、测试分类

  从图中可以看出,性能测试在整个软件测试环节中占了50%的内容,比如负载测试、压力测试、性能测试、大数据量测试、恢复测试、内容泄露测试、竞品测试(比较测试)和可靠性测试.

2、性能测试流程

  (1)业务学习:通过查看文档,Manual operation system to understand the performance of the system;

  (2)需求分析:分析系统非功能需求,圈定性能测试的范围,Understand the performance index system;

  (3)工作评估:工作量分解,评估工作量,计划资源投入;

  (4)设计模型:圈定性能测试范围后,把业务模型映射成测试模型;

  (5)计划编写:计划测试工作,在文档中明确列出测试范围、人力投入、持续时间、工作内容、风险评估、风险应对策略等;

  (6)脚本开发:录制或者编写性能测试脚本;

  (7)测试环境准备:性能测试环境准备包括服务器与负载机两部分,The server is the operation of the system under test platform,Load machine is a machine we used to produce the load,用来安装负载工具,运行测试脚本;

  (8)测试数据准备:According to the testing model is to prepare for the system under test of master data and business data;

  (9)测试执行

  (10)缺陷管理:Manage the defects found in the process of the performance test;

  (11)性能分析:对性能测试过程中暴露出来的问题进行分析,找出原因;

  (12)性能调优:Performance testers and developers together to solve the performance problems;

  (13)测试报告:Testing work of important delivery documents,对测试结果进行报告,Mainly includes the performance indicators that(tps、rt、cpu等);

  性能测试主要交付件:

1 测试计划
2 测试脚本
3 测试程序
4 测试报告或者阶段性测试报告

  (14)评审:对性能报告中的内容进行评审,确认问题,评估上线风险.

3、The performance test to success and failure

  重点关注点:

1 评估系统,需求分析
2 场景设计、用例设计
3 测试执行、是否通过
4 性能诊断优化

  (1)评估系统,需求分析

  Demand analysis of the performance test,Normally testers will directly depend on the demand for personnel or the project manager of oral or defective document.实际上,In most cases we testers need to guide personnel related operations staff and demand specific demand data,And these data are secondary analysis,It concluded that the performance of our true needs.

  For the first time online system,We need to use the peer system data,进行用户行为分析和商业数据结构的估算为前提,Performance estimation method is used to calculate.The load and response time data can be applied to validate the model's ability to plan,And help to make countermeasures.

  对于已经上线的系统,我们可以通过运维人员获取TPS和时间的比例分布图、用户数和时间的分布图、数据库ER关系图、容量数据等,直接精确得出目前系统的用户行为和业务数据关系,进而得出我们需要的性能需求.

  (2)场景设计、用例设计

  (3)测试执行、是否通过--需要关注的指标

  (4)性能诊断优化

4、Different roles at performance

  Technical department generally have the following several roles:开发、测试、架构师、运维人员、(系统管理员、DBA)

  (1)黑盒测试的角度

  Black box testing are only concerned with the application of single step response time,Performance is good or bad to look at how much time the application,也就是数据流经过服务器、服务器集群经过网络传输后往返的时间总和.

  (2)开发角度

1 架构合理性
2 数据库设计合理性
3 代码
4 The use of system memory way
5 System thread use
6 系统资源是否有恶性,不合理竞争

  (3)系统管理员角度

1 硬件资源利用率
2 JVM
3 DB
4 系统是否支持7*24的服务
5 扩展性,兼容性,最大容量,可能的瓶颈

  (4)The Angle of the performance test

 1 服务器硬件的性能
 2 根据需求和历史数据制定性能目标
 3 建立性能通过模型
 4 对开发代码框架和硬件框架进行性能分析
 5 针对开发发布版本的基准测试
 6 执行软件性能验收及稳定性测试
 7 生产环境的配置及优化
 8 制定性能测试的测试用例
 9 制定性能测试的场景设计
10 协调各部门配合
11 特定的性能分析

5、性能测试相关术语

  (1)负载:Simulation of fifteen thousand operating pressure on the server process,比如模拟100个用户进行发帖.

   (2)性能测试(Performance Testing):模拟用户负载来测试系统在负载情况下,系统的响应时间,Throughput indicators such as whether meet the performance requirements.

  (3)负载测试(load Testing):在一定软硬件环境下,通过不断加大负载(不同虚拟用户数)来确定在满足性能指标情况下能够承受的最大用户数.These performance indicators include:TPS(每秒事务数)、RT(事务平均响应时间)、CPU using(CPU利用率)、MEM using(内存使用率)等软硬件指标.

Performance on response time,Load indicates that the system can withstand the how users

  (4)配置测试(Configuration Testing):为了合理地调配资源,提高系统运行效率,通过测试手段来获取、验证、调整配置信息的过程.

  (5)压力测试\强度测试(Stress Testing):在一定软硬件环境下,By means of high load to the server resources in the limit state,测试系统在极限状态下长时间运行是否稳定,Determine if the stable instructions includeTPS、RT、CPU using、MEM using等.

  (6)稳定性测试(Endurance Testing):在一定软硬件环境下,长时间运行一定负载,确定系统在满足性能指标的前提下是否运行稳定.一般我们会在满足性能要求的负载情况下加大1.5倍-2倍的负载量进行测试.

  (7)TPS:每秒完成的事务数,通常指每秒成功的事务数,性能测试中重要的综合性性能指标.一个事务是一个业务度量单位,有时一个事务会包括多个子操作,为了统计方便,Will write a more child operation is a transaction.

  (8)RT/ART(Response Time\average response time):响应时间/平均响应时间,指一个事务花费多长时间完成,一般取平均响应时间.

  (9)PV(page view):每秒用户访问页面的次数,此参数用来分析平均每秒有多少用户访问页面.

  (10)Vuser虚拟用户(Virtual user):模拟真实业务逻辑步骤的虚拟用户,虚拟用户模拟的操作步骤都被记录在虚拟用户脚本里.VuserThe script language to describeVuser在场景中执行的操作.

  (11)Concurrency并发,并发分为狭义和广义两类.狭义的并发,The same thing that all users at the same time works or operation;广义的并发,That multiple users for exactly the same operation.

  (12)场景(Scenario):性能测试过程中为了模拟真实用户的业务处理过程,在loadrunner中构建的基于事务、脚本、虚拟用户、运行设置、运行计划、监控、The set of analysis and a series of action,称之为性能测试场景.场景中包含了待执行脚本、脚本组、并发用户数、负载生成器、测试目标、测试执行时的配置条件等.

  (13)思考时间(Think Time):模拟真实用户在实际操作时的停顿间隔时间.也就是说,用户在进行操作时,每个请求之间的间隔时间.

  (14)标准差(Std. Deviation):标准差越小,说明波动越小,系统越稳定.

原网站

版权声明
本文为[Soft Test Small Watermelon]所创,转载请带上原文链接,感谢
https://chowdera.com/2022/218/202208060726120066.html

随机推荐