创建JMeter测试计划
JMeter测试计划概述
JMeter测试计划是指基于已定义的JMeter文件、依赖的jar包和变量文件发起一次性能测试的活动。通过在不同压测点持续对系统发起压力测试,获取并分析系统运行的性能数据。
您可以在一个测试工程中添加多个测试计划。
性能测试服务的JMeter引擎支持的脚本有:
- 未使用任何第三方插件的JMeter创建的jmx脚本,其中JMeter支持5.2、5.3、5.4和5.6版本。
- 使用了第三方插件,但是插件可以以jar包形式上传,且未修改ThreadGroup实现的大部分脚本。性能测试服务不确保此类脚本可以正常使用,需要在性能测试服务平台进行调试。
性能测试服务的JMeter引擎不支持脚本中的以下操作:
创建JMeter测试计划
- 登录性能测试服务控制台。
- 在左侧导航栏中选择“JMeter测试工程”。
- 单击待操作测试工程后的
。 - 在“测试计划”页签中,单击“创建测试计划”。
- 在弹出的窗口中单击“添加文件”,选择格式为*.jmx的文件,单击“上传文件”,导入成功后将自动关闭窗口并返回“测试计划”页签,可以看到已添加的测试计划。
- jmx文件的名称长度上限为64字节(含后缀),文件大小限制为10M。
- 当前支持基本的JMeter脚本,包括线程组,HTTP请求,HTTP信息头管理器,请求参数,超时时间,BeanShell等。建议您使用5.2.1以上版本的脚本进行导入,以免出现脚本解析错误。
- 在“测试计划”页签中,单击“第三方jar包”,在弹出的窗口中单击“添加文件”,选择测试计划所依赖的jar包并导入,导入成功后关闭窗口。
上传第三方jar包时,请注意:
- 请确保第三方jar包在本地JMeter工作时,位于JMeter根目录/lib/ext下。
- 请确保使用第三方jar包的脚本在本地可以正常运行。
- 第三方jar包的名称长度上限为64字节(含后缀),大小上限专业版为10M,企业版为80M。
- Java 9及以上版本暂不支持第三方jar包上传功能。
- 在“测试计划”页签中,可以查看新添加的测试计划。
配置JMeter压力模式
创建测试计划后,可根据业务需求修改每个阶段的各项参数。
- 在“测试计划”页签中,单击待压力配置的“任务名称”,进入“计划详情”页,可看到当前线程组下的各个阶段,参照表1设置基本信息。
表1 压力配置 参数
参数说明
执行策略
执行策略目前支持按时长和按次数。- 按时长:按照设定的持续时间进行压测。
- 按次数:按照设定的发送总次数进行压测。
线程数
当前并发操作的虚拟用户数量。
预热时间
仅“阶段1”涉及修改该参数。
对应JMeter脚本里的Ramp-Up字段,指并发用户数从0提升到设置的并发数值所需的时间。
循环次数
仅当“执行策略”为“按次数”时涉及修改该参数。
每个虚拟用户执行的次数。
时间控制
仅当“执行策略”为“按次数”时涉及该参数。
用于控制是否配置“最大时长”和“启动延迟”两个参数,
最大时长
仅当“执行策略”为“按次数”时,开启“时间控制”才可修改该参数。
如果实际压测时长达到最大时长时,执行次数尚未达到循环次数,则线程组结束执行。
持续时间
仅当“执行策略”为“按时长”时,涉及该参数。
任务实际执行的时间,持续时间建议至少300s。
启动延迟
虚拟用户在等待设置启动延迟的时间后,再开始执行任务。
当“执行策略”为“按次数”时,开启“时间控制”可修改该参数。
当“执行策略”为“按时长”时,可以在“阶段1”修改该参数。
- 单击“确定”保存更新的配置信息。
导入文件变量
如果某些参数数量较大时,可直接通过csv格式文件或者xlsx格式文件导入,在用例业务接口压测过程当中,实现接口动态传参。
- 在“计划详情”页,单击页面右上方的“变量文件”。
- 在弹出的对话框中单击“本地导入”。
- 选择格式为csv或xlsx的文件,单击“上传”。
变量文件限制如下:
- 导入的文件格式:.csv(UTF-8无BOM格式)和.xlsx。
- 文件的名称长度上限:50字节(含后缀)。
- 文件大小限制:
- xlsx:专业版10M,企业版20M。
- csv:专业版10M,企业版默认80M。
配置JMeter测试计划全局变量
- 在“计划详情”页,单击页面右上方的“全局变量”。
- 在弹出的对话框中单击“添加变量”。
- 输入变量名称、变量类型和变量值。
变量有两种类型,分别是静态变量和均分变量:
- 静态变量:以字符串形式下发内容,当脚本分布式执行时,每个节点获取到的变量值一样,例如下发静态变量successRate=0.8,2000并发,分两个执行器执行,每个执行器中的脚本中变量successRate的值都是0.8。
- 均分变量:以整数的形式下发内容,当脚本分布式执行时,每个节点获取到的变量值平均分配,平均分配时采用整数除法,余数会被分配到其中一个节点,例如:
- 下发均分变量tps=100,分四个执行器,每个执行器中的脚本中的变量tps的值是25。
- 下发均分变量tps=20,分3个执行器,每个执行器中的脚本中的变量tps的值是8,6,6。
- 下发均分变量tps=1,分四个执行器,每个执行器中的脚本中的变量tps的值是1,0,0,0。
综上,使用均分变量时需注意:
- 如果被分配的值对是否均分非常敏感,请手动设置执行器数,确保变量的值是执行器数的整数倍。
- 如果被分配的值对是否均分不严格敏感,建议将被分配的值尽量调大,减少整数除法余数的影响,使其基本平均分配。
- 如果被分配的值不能为0,请手动设置执行器数,并确保变量的值大于执行器数。
在全局变量中配置的变量,如果脚本的Test Plan - User Defined Variables中存在,则会覆盖脚本中定义的值。
如果不存在,会在脚本的Test Plan – User Defined Variables中新建对应变量。
调试JMeter测试计划
新增或修改测试计划后,可通过调试快速发现语法或配置错误,确保该模型在任务中可用。
- 在“测试计划”页签中,单击待调试的任务名称,进入“计划详情”页,单击页面上方
。 - 在调试页面中选择已创建的私有资源组作为执行器,单击“启动”,启动调试,此时可以在调试页面看到调试进展。
- 调试完成后,如果调试结果报错,可根据异常信息,修改测试计划后重新导入、调试。导入方法请参见编辑测试计划。
- 单击“查看日志”查看测试计划调试的具体内容。
- 在“调试记录”页签,查看调试的历史操作记录。
