Jmeter基本结构 =============================== .. figure:: /_static/jmeter/Jmeter体系结构.png :width: 20.0cm 取样器 -------------------------------- 取样器有被称为采样器,用来模拟用户操作,向服务器(被测系统)发送HTTP请求、webservice请求或者Java请求等。我们可以把HTTP请求原件看出一个没有界面的浏览器,它可以发送HTTP请求,介绍服务器的相应数据。 它基本涵盖了我们常见的所有协议。比如HTTP、ftp、Java、JMS、LDAP、MAIL、MongoDB、SMTP、SOAP、TCP、Junit等,还支持BeanShell脚本。 访问路径:【测试计划】——【线程组】——【Sampler】。 断言 -------------------------------- 断言用来帮助验证结果是否正确,相当于loadrunner中的检查点,可以帮助我们判断请求是否成功返回且是否符合要求。 常用的有响应断言,叫复杂的断言方式可以用BeanShell来完成。详情见jmeter断言方式总结专题 访问路径:【测试计划】——【断言】 监听器 -------------------------------- Jmeter的测试结果需要添加监听器来进行收集,Jmeter的监听器主要包含以下两个任务 1. 添加结果监听器,并保存测试结果到文件,这些结果数据可以提供再次分析使用。 #. 展示结果,Jmeter可以以表格及图形的形式展现结果,方便测试人员分析测试结果。在开发测试脚本时,不可避免需要调试,监听器也提供了辅助(比如查看结果树)。 访问路径:【测试计划】——【监听器】 **取样器、断言、监听器组合在一起就可以帮助我们完成发送请求、验证结果及记录结果三项基本工作。** 前置处理器 -------------------------------- 在测试脚本开发的过程中,我们通常需要做一些前期准备,如环境配置、参数设置、数据库连接建立等,我们通常会议前置处理器来完成这个功能。 访问路径:【测试计划】——【前置处理器】 配置元件 -------------------------------- 性能测试中,为了模拟大量用户我们往往需要参数化,Jmeter中的参数化通过配置元件来完成,比如CSV Data Set Config,它可以帮助我们con文件中读取测试数据。另外Jmeter也提供的众多函数,来帮助我们生成动态数据,同时他也可以用来记录服务器中的返回数据,比如Http Cache Manger自动记录服务器返回的Cache信息。说白了,它为取样器提供了预备数据,然后由取样器发出请求。 访问路径:【测试计划】——【配置原件】 后置处理器 -------------------------------- 后置处理器一般放在取样器之后,用来处理服务器的返回结果。比如正则表达式提取器,它支持正则表达式的方式提前数据。 访问路径:【测试计划】——【后置处理器】 控制器 -------------------------------- 在进行需求前置登录的场景时,我们通常只需要登录一次,取到登录信息后开始调用其他数据接口,这时候我们就可以使用仅一次控制器来完成。当然,控制器有很多种,不同的控制器可以完成我们不同的需求。 访问路径:【测试计划】——【线程组】——【逻辑控制器】 定时器 -------------------------------- 为了足够真实的模拟用户负载,我们有时会需要模拟这些请求在同一时刻发送,Jmeter中可以通过定时器来完成足够功能,当然定时器不只这一个功能,每种不同的功能可以基本上满足我们所有的需求。 访问路径:【测试计划】——【线程组】——【定时器】 线程组 --------------------------------- 性能测试需要模拟大量用户,线程组用来完成这个工作,一个线程组代表一个用户。线程组除了设置线程数外,还可以设置运行时长。定时运行等。另外第三方插件Jmeter Plugin的拓展也让Jmeter的场景设计更加丰富。 访问路径:【测试计划】——【Threads(Users)】 工作台 ----------------------------------- 工作平台,它不直接参与运行,它的功能主要用: 1. 我们用Jmeter运行HTTP脚本时,可以在它下面建立一个HTTP代理服务器元件,设置代理信息然后进行录制; #. 设置服务器监控(HTTP Mirror Server),不建议用这个功能来做监控,容易对Jmeter负责产生影响; #. 显示当前Jmeter属性信息; #. 备份脚本,我们在调试脚本的过程中,可以把它作为一个原件暂存区。