问题
运行JMeter测试脚本的时候发现一个问题,在UI方式下运行该JMeter脚本,却发现“Could not find the TestPlan class!”错误。
bin/jmeter.sh -n -t ~/Downloads/tc_case.jmx
如果使用UI方式下打开该脚本,点击运行按钮的话会莫名其妙地弹出下面的对话框,可是明明没有改过测试脚本啊。
原因
仔细对比与能够正常测试的脚本,发现该脚本缺少下列对于运行JMeter测试所必需的“TestPlanGui”元素。那问题来了,为什么会导致缺少这部分内容呢?
经过分析,原来是在保存测试用例的时候,只保存了测试树中的部分元素。如下所示是典型导致出现这种情况的两种操作:
操作1:
1.1)选中某节点
1.2)点击菜单“文件” > “保存为”
操作2:
2.1)选中某节点,右击出现菜单
2.2)点击“另存为”,如下图所示
这两种情况下,生成的测试脚本只是“线程组”下面的元素,而这种方式下保存的测试用例,不包括需要运行测试所需的“TestPlan”元素。
实际上这里的翻译有点问题,该菜单在英语版本里是“Save Selection As”,意思是保存“选中的元素”,但是汉化之后丢失了该信息。
解决方法
知道原因后,就很好解决这个问题了:在保存测试用例的时候,不要只保存某子元素,而是保存整个测试计划。直接点击工具栏上的“保存测试计划”按钮;或者在文件菜单中单击“保存测试计划”/“保存测试计划为”选项。请不要选择“保存为”,因为这个选项的意思还是只保存“保存选中的子元素”。
xmeter.net已经向Apache JMeter提交了一个bug和相关的修复代码,Apache JMeter已经接受了该修复,下个版本将此问题修复。