本节是基础篇第四节,如果按照前面几节介绍按部就班操作的话,在使用可能会遇到些问题,但主要问题应该出现在对工具不熟悉上,其他应该不是问题。有了前三节的学习,大家应该对性能测试也有了一定的了解:性能测试 != 工具或代码,性能测试是一个比较宽泛的领域,仅仅说某种工具或者说某种代码能搞定的,显示是不太现实,但一步一个脚印的走,一切也就变得容易了。本节基于前面三节基础,介绍jmeter工作原理,有了前面的基础,大家应该更容易理解。同时对jmeter结构体系做了介绍, 通过体系结构能够清晰的知道我们在性能测试脚本开发过程中需要做哪些工作。
Apache Jmeter是Apache组织开发的基于JAVA的压力测试工具 Jmeter可以用于对服务器,网络或对象模拟巨大的负载,来自不同压力类别下测试他们的强度和分析整体性能。jmeter作为浏览器与web服务器之间的代理网关,可以捕获浏览器的请求和web服务器的响应,通过线程来模拟真实用户对web服务器的访问压力。jmeter是运行在java虚拟机上的,基本原理是建立一个线程池,通过线程组驱动多线程,多线程运行sampler产生负载,在运行过程中通过断言来验证结果的正确性,可以通过添加监听器(聚合报告、图形结果和查看结果树等)来记录测试结果
把Jmeter的结构体系拆分为三维空间,如图:
运行原理:
Apache Jmeter是Apache组织开发的基于JAVA的压力测试工具 Jmeter可以用于对服务器,网络或对象模拟巨大的负载,来自不同压力类别下测试他们的强度和分析整体性能。jmeter作为浏览器与web服务器之间的代理网关,可以捕获浏览器的请求和web服务器的响应,通过线程来模拟真实用户对web服务器的访问压力。jmeter是运行在java虚拟机上的,基本原理是建立一个线程池,通过线程组驱动多线程,多线程运行sampler产生负载,在运行过程中通过断言来验证结果的正确性,可以通过添加监听器(聚合报告、图形结果和查看结果树等)来记录测试结果

使用说明:
如果取样器中有参数化需求,可以通过配置元件或者前置处理器来完成;
如果取样器中有关联需求,可以通过后置处理器来完成;
如果要模拟负载场景,比如模拟多少用户,运动多长时间,可以通过线程组完成;
如果要模拟并发场景,可以通过定时器来完成;(一般不不需要设置,定时器绝对并发这种场景有点不太符合实际业务场景)
如果要控制业务的执行逻辑,比如登录只运行一次,可以通过控制器来完成;
Jmeter结构体系:
把Jmeter的结构体系拆分为三维空间,如图:

X1~X5:是负载模拟的一个过程,使用这些组件来完成负载的模拟;X1:选择协议,模拟用户请求,检查服务器响应是否正确,然后收集结果信息;X2:完善测试脚本部分,包括参数化,关联等;X3:控制测试脚本业务逻辑;X4:集合点,模拟用户并发;X5:用户数,一个线程代表一个用户;Y1:可以理解为选择协议,包含负载模拟部分,负责模拟用户请求;Y2:可以理解为检查点,结果验证部分,负责验证结果正确性;Z:可以理解为监控器,负责结果的收集,监听器不仅可以放在线程组之内,也可以放在线程组之外;作为一个对性能测试有情怀的人,希望过往的经验能够对新来人有一定的帮助,公众号"性能测试践行"中原创作者日常工作中典型案例和自己每时每刻对性能新的认知,希望喜欢!


版权声明:本文为weixin_35836574原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。