JMeter JunitSampler 无法找到带有字符串参数的构造函数
Posted
技术标签:
【中文标题】JMeter JunitSampler 无法找到带有字符串参数的构造函数【英文标题】:JMeter JunitSampler unable to find constructer with string parameter 【发布时间】:2016-09-15 05:06:06 【问题描述】:我正在对命令行工具进行性能测试。我已经使用 Junit 编写了一个集成测试,用于测试整个命令行工具,我想重用它来监控性能。
我正在使用 JUnit Request Sampler,但由于错误而无法开始测试。
2016/05/18 16:22:36 INFO - jmeter.protocol.java.sampler.JUnitSampler: Trying to find constructor with one String parameter returned error: org.someorg.integration.IntegrationTest.<init>(java.lang.String)
我看到了this,但我的测试中没有设置或拆解。想我可能会错过什么?
【问题讨论】:
【参考方案1】:我遇到了同样的问题。我用两个构造函数解决了它:
标准空一号 一个“假”的人接受一个字符串,调用另一个人像这样:
public MyTestClass()
// Do nothing
public MyTestClass(String test)
this();
JMeter 在此之后不再抱怨。有点奇怪,但如果它有效...... 作为副作用,测试将不再在 eclipse 中运行,所以我创建了两个版本的测试类:
Eclipse 一个 一个用于 JMeter 的 JAR【讨论】:
【参考方案2】:根据How to Use JUnit With JMeter 指南:
构造函数字符串标签
如果您的 JUnit 测试类有一个接受单个字符串的构造函数,则可以使用此参数设置其值。如果您的 JUnit 测试类没有声明这样的构造函数,JUnit 示例将尝试寻找一个空的构造函数。
所以你有两个选择:
-
您的 JUnit 类应该有带有 1 java.lang.String parameter 的构造函数
您的 JUnit 类应该有空的构造函数
如果满足上述条件之一 - JMeter 将能够运行您的课程。
请参阅Providing Constructors for Your Classes 指南以了解“构造函数”位的说明。
【讨论】:
在开始之前我确实查看了您的博客。不幸的是,一个空的构造函数仍然不起作用。我创建了一个 github 存储库来演示相同的 here 我仍然收到错误消息2016/05/19 11:20:53 INFO - jmeter.protocol.java.sampler.JUnitSampler: Trying to find constructor with one String parameter returned error: org.something.MainTest.<init>(java.lang.String)
只有一个空的构造函数,它可以从命令行运行,但不能从 JMeter UI 运行【参考方案3】:
我遇到了同样的问题,在尝试了许多解决方案后,一切都没有奏效。在为 JUnit 采样器提供唯一名称后,事情开始起作用了。我有 100 个 JUnit 采样器,在对采样器使用唯一名称后没有造成任何问题。
您不必将构造函数添加到您的 Test 类。为采样器提供唯一名称就足够了。
【讨论】:
以上是关于JMeter JunitSampler 无法找到带有字符串参数的构造函数的主要内容,如果未能解决你的问题,请参考以下文章
1分钟带你秒懂自动化测试和Appium,Selenium,Jmeter,Dragon testing等一系列自动化测试工具