JMeter在nonui方式下的错误:Error in NonGUIDriver java.lang.RuntimeException: Could not find the TestPlan class的处理

96
XMeter性能测试云服务
2016.11.04 21:57* 字数 580

问题

运行JMeter测试脚本的时候发现一个问题,在UI方式下运行该JMeter脚本,却发现“Could not find the TestPlan class!”错误。

bin/jmeter.sh -n -t ~/Downloads/tc_case.jmx

运行脚本报出异常

如果使用UI方式下打开该脚本,点击运行按钮的话会莫名其妙地弹出下面的对话框,可是明明没有改过测试脚本啊。

测试文件未保存对话框

原因

仔细对比与能够正常测试的脚本,发现该脚本缺少下列对于运行JMeter测试所必需的“TestPlanGui”元素。那问题来了,为什么会导致缺少这部分内容呢?

JMeter的TestPlan元素

经过分析,原来是在保存测试用例的时候,只保存了测试树中的部分元素。如下所示是典型导致出现这种情况的两种操作:

操作1:

1.1)选中某节点
1.2)点击菜单“文件” > “保存为”

操作2:

2.1)选中某节点,右击出现菜单
2.2)点击“另存为”,如下图所示

这两种情况下,生成的测试脚本只是“线程组”下面的元素,而这种方式下保存的测试用例,不包括需要运行测试所需的“TestPlan”元素。

保存子元素

实际上这里的翻译有点问题,该菜单在英语版本里是“Save Selection As”,意思是保存“选中的元素”,但是汉化之后丢失了该信息。

原英文菜单

解决方法

知道原因后,就很好解决这个问题了:在保存测试用例的时候,不要只保存某子元素,而是保存整个测试计划。直接点击工具栏上的“保存测试计划”按钮;或者在文件菜单中单击“保存测试计划”/“保存测试计划为”选项。请不要选择“保存为”,因为这个选项的意思还是只保存“保存选中的子元素”。

正确的保存测试用例方法

xmeter.net已经向Apache JMeter提交了一个bug和相关的修复代码,Apache JMeter已经接受了该修复,下个版本将此问题修复。

JMeter
Web note ad 1