2

正如我在问题中所说,是否可以将 jmeter 变量(通过 -J 传递)传递给 aJUnit Request以便它可以在内部用于 junit 测试?

这听起来可行,因为Apache Junit Request 文档表明:

... JMeter 目前直接运行测试方法,而不是将其留给 JUnit。...

这表明 jmeter 可以控制传递参数,但我没有找到支持文档,并且通过 JUnit Request 采样器配置没有明显的机制。

背景

我希望用来CSV Data Set Config加载一个用户池(如Victor Klepikovskiy 的优秀技巧),并为我的单元测试提供一个随机获得的用户(用于跨线程/循环使用)。我找到了一种替代方法来做我想做的事(但使用从 junit 测试中访问的我自己的用户池)。我知道您也可以管理登录 Http Request(如上所述),但我们在内部管理对 junit 的 rest-service 调用,以便它们也可以作为 junit 测试运行。我对尽可能不打扰我很感兴趣。

这样做的第二个原因可能是拥有一个单一的 junit 测试方法,但将其参数化以适应场景。

附录

对于它的价值,我对我目前的替代方法感到满意,但仍然对您如何能够做到这一点以供将来参考感兴趣。我对 jmeter 还很陌生,但希望能看到更多。也在考虑查看预处理器,但不确定它们如何与 Junit 请求交互。

4

2 回答 2

1

我试图完全按照您正在做的事情(尽管从未专门使用过-J)。简短的回答是我仍然没有找到一种方法可以将变量传递到 JUnit 请求中。我相信它目前不受支持。

当时,我看到的唯一方法是将参数(例如${__threadNum}甚至来自CSV Data Set Config)传递到构造函数字符串标签并适当地编写我的构造函数。但是,我只得到了字符串文字“ ${__threadNum} ”。我联系了支持人员,他们向我提到这不起作用。我完全忘记了他们所说的内容,并且找不到电子邮件。但主要思想是在解析构造函数字符串标签中的参数之前实例化或创建 JUnit 请求。所以这就是为什么它不起作用。

我目前正在使用与您相同的替代方法,即让我的测试从文件中读取凭据。

于 2013-09-03T03:38:58.810 回答
1

我测试过,一切正常。需要做的是: 来源:blazemeter.com how-use-junit-jmeter

1)在项目库中添加以下jar文件:

..\JMeter\apache-jmeter-3.0\lib\ext\ApacheJMeter_core.jar

..\JMeter\apache-jmeter-3.0\lib\ext\ApacheJMeter_junit.jar

2)在类中,添加对采样器的引用:

导入 org.apache.jmeter.protocol.java.sampler.JUnitSampler;

3)在@Test标签中添加处理变量的代码: 点击查看代码

4)在JMeter中定义变量(在用户定义变量和CSV中)

点击查看 JMeter 配置

希望能帮助到你!

于 2016-08-19T04:40:40.797 回答