ngrinder:ngrinder运行报错提示”org.picocontainer.PicoCompositionException: Duplicate Keys not allowed.“

背景

从ngrinder控制台创建好脚本,在IDEA上将脚本chckout到本地,会报缺少jar包错误,所以按照提示将pom.xml文件加了依赖,待不报错,调通后,再commit上去后,用此脚本运行测试则报以下错误“Report TPS for test 21 does not exist.”,再查到agent具体的日志,具体错误为“org.picocontainer.PicoCompositionException: Duplicate Keys not allowed”
在这里插入图片描述

报错日志

16:50:39,535 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
16:50:39,536 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender]
16:50:39,536 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [stderr]
16:50:39,536 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
16:50:39,537 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level of ROOT logger to TRACE
16:50:39,537 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [filtered_stderr] to Logger[ROOT]
16:50:39,538 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [filtered_stdout] to Logger[ROOT]
16:50:39,538 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [tcpproxy] to INFO
16:50:39,538 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting additivity of logger [tcpproxy] to false
16:50:39,543 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
16:50:39,545 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@4ec6a292 - Registering current configuration as safe fallback point

SLF4J: Actual binding is of type [ch.qos.logback.classic.selector.DefaultContextSelector]
2020-08-19 16:50:39,751 ERROR worker-bootstrap: Error running worker process
org.picocontainer.PicoCompositionException: Duplicate Keys not allowed. Duplicate for 'class net.grinder.scriptengine.jython.JythonScriptEngineService'
        at org.picocontainer.DefaultPicoContainer.addAdapterInternal(DefaultPicoContainer.java:438) ~[picocontainer-2.13.6.jar:na]
        at org.picocontainer.DefaultPicoContainer.addComponent(DefaultPicoContainer.java:548) ~[picocontainer-2.13.6.jar:na]
        at org.picocontainer.DefaultPicoContainer.addComponent(DefaultPicoContainer.java:501) ~[picocontainer-2.13.6.jar:na]
        at org.picocontainer.DefaultPicoContainer.addComponent(DefaultPicoContainer.java:488) ~[picocontainer-2.13.6.jar:na]
        at net.grinder.engine.process.ScriptEngineContainer.<init>(ScriptEngineContainer.java:84) ~[grinder-core-3.9.1.jar:na]
        at net.grinder.engine.process.GrinderProcess.run(GrinderProcess.java:290) ~[ngrinder-runtime-3.4.2.jar:na]
        at net.grinder.engine.process.WorkerProcessEntryPoint.run(WorkerProcessEntryPoint.java:87) [grinder-core-3.9.1.jar:na]
        at net.grinder.engine.process.WorkerProcessEntryPoint.main(WorkerProcessEntryPoint.java:60) [grinder-core-3.9.1.jar:na]
2020-08-19 16:50:39,764 INFO  agent daemon: All workers are finished
2020-08-19 16:50:39,764 INFO  agent daemon: communication shut down
2020-08-19 16:50:39,766 INFO  agent daemon: Test shuts down.
2020-08-19 16:50:39,766 INFO  agent controller: Send log for test_10
2020-08-19 16:50:39,766 INFO  agent controller: Clean up the perftest logs

解决方法

重新创建脚本A,运行成功后,将该脚本chckout到IDEA本地,只修改TestRunner脚本后直接commit到ngrinder控制台,再使用该脚本进行测试,可执行成功。
将脚本A里的pom.xml文件复制到之前报错的脚本中,commit到控制台,运行之前报错的脚本,测试成功,未报错。
至此,原因就集中到pom.xml文件上了,所以目前解决方法为,在IDEA本地调试时,加上它本身需要的依赖,如果还需要别的更多的依赖,单独记下,等调通后,将它本身那部分的依赖包还原加上另外的依赖commit到控制台,进行测试
目前未想到更好的办法,可以用这个办法过度一下

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值