SoapUI 5.6.0使用Maven运行测试报PostgreSQL驱动类找不到异常
问题根因
- 你在SoapUI项目的JDBC请求配置中填写的驱动类名错误,多了冗余前缀
PostgreSQL/,正确的PostgreSQL JDBC驱动全限定类名为org.postgresql.Driver,错误的类名PostgreSQL/org.postgresql.Driver不存在,因此触发ClassNotFoundException。 - 请求仍然正常执行的原因是SoapUI内置了JDBC驱动降级匹配逻辑:手动配置的驱动类加载失败后,会自动根据JDBC连接URL的前缀(
jdbc:postgresql://)匹配类路径下已注册的对应驱动,你已经将PostgreSQL依赖正确添加到soapui-maven-plugin的依赖列表中,驱动已存在于插件类路径下,因此自动匹配成功,请求可以正常执行、断言全部通过。
解决方案
方案1(推荐,彻底解决问题)
打开SoapUI项目,修改所有JDBC请求的驱动类配置,将错误的PostgreSQL/org.postgresql.Driver替换为正确的org.postgresql.Driver,重新运行测试即可消除异常。
方案2(仅屏蔽异常日志输出)
如果不想修改SoapUI项目配置,可以通过调整soapui-maven-plugin的日志级别屏蔽该异常堆栈,在插件的configuration节点中添加日志配置,将相关类的日志级别调整为ERROR即可,参考配置如下:
<plugin> <groupId>com.smartbear.soapui</groupId> <artifactId>soapui-maven-plugin</artifactId> <version>${soapui-maven-plugin.version}</version> <configuration> <printReport>true</printReport> <junitReport>true</junitReport> <outputFolder>${baseDir}/target/surefire-reports</outputFolder> <!-- 新增日志级别配置 --> <logLevel>ERROR</logLevel> <soapuiProperties> <property> <name>log4j.logger.com.eviware.soapui.support.GroovyUtils</name> <value>ERROR</value> </property> <property> <name>log4j.logger.com.eviware.soapui.support.jdbc.JdbcUtils</name> <value>ERROR</value> </property> </soapuiProperties> </configuration> <dependencies> <dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <version>${postgreSql.version}</version> </dependency> </dependencies> </plugin>
内容的提问来源于stack exchange,提问作者Adrian Pop
相关产品推荐
相关产品推荐

