You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SoapUI REST项目批量执行报Cannot get property 'testCase' on null object错误

你出现这个报错和项目是SOAP还是REST类型没有关系,完全是两个方法中引用对象的差异导致的:

  1. 你对外暴露的Cycle方法(SOAP用的)全程通过context对象获取项目属性,而你初始化RunTests实例的时候已经显式把Groovy步骤内置的context传入了类实例,所以能正常访问。
  2. 你写的CycleRest方法(REST用的)改用了testRunner对象获取项目属性,但你初始化RunTests实例的时候并没有把Groovy步骤内置的testRunner传入类实例,外部类的作用域下不存在这个内置变量,自然会报空指针。

你直接把脚本粘贴到Groovy测试步骤运行正常的原因也很简单:SoapUI的Groovy测试步骤默认会注入testRunner、context、log三个内置变量,直接在步骤里写的脚本可以直接访问这些变量,不需要额外传递。抽成外部类库之后,类本身没有这些内置变量,必须显式传入才能使用。

解决方法

有两种方案任选其一即可:

  • 方案一:对齐Cycle方法的写法,把CycleRest中所有的testRunner.testCase替换为context.testCase,你已经传入了context对象,无需额外修改其他代码。
  • 方案二:初始化RunTests实例的时候补传testRunner参数,修改测试步骤中的实例化代码为:
def RT = new RunTests(context: context, log: log, testRunner: testRunner)

同时在RunTests类中新增testRunner成员变量接收传入的值即可。

内容的提问来源于stack exchange,提问作者Matěj Morávek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 12:06:06