Jmeter:使用带有变量的Jmeter Junit请求

Jmeter:使用带有变量的Jmeter Junit请求,junit,jmeter,Junit,Jmeter,正如我在问题中所说的,是否可以将jmeter变量(通过-J传递)传递到JUnit请求中,以便在JUnit测试内部使用它 这听起来是可行的,因为它表明: 。。。JMeter目前直接运行测试方法,而不是 把它留给JUnit 这表明jmeter可以控制传递参数,但我没有找到支持文档,也没有通过JUnit请求采样器配置的明显机制 背景 我希望使用CSV Data Set Config加载一个用户池(如中所示),并将随机获得的用户提供给我的单元测试(用于整个线程/循环)。我已经找到了另一种做我想做的事情的

正如我在问题中所说的,是否可以将jmeter变量(通过-J传递)传递到
JUnit请求中,以便在JUnit测试内部使用它

这听起来是可行的,因为它表明:

。。。JMeter目前直接运行测试方法,而不是 把它留给JUnit

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

背景

我希望使用
CSV Data Set Config
加载一个用户池(如中所示),并将随机获得的用户提供给我的单元测试(用于整个线程/循环)。我已经找到了另一种做我想做的事情的方法(但是使用我自己的用户池,可以从junit测试中访问)。我知道您也可以通过
httprequest
管理登录(如上所述),但是我们在内部将rest服务调用存储到junit,以便它们也可以作为junit测试运行。我对尽可能不打扰别人很感兴趣

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

附录


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

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

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


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

我测试过,一切正常。需要做的是: 来源:blazemeter.com如何使用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中)


希望有帮助

girlytech59,提及我在JMeter上使用的解决方案是否违反了规则?感谢您的反馈,并同意JUnitRequest没有参数化机制。我曾想过使用线程标签(构造器参数),但它感觉有太多的误用,运行统计报告会受到影响,所以我改变了方向。我也读了你未经编辑的回复-谢谢你提供的关于BlazeMeter的额外信息。没有进一步调查,但发现了一些有趣的东西。可以将其管理为普通的
JavaRequest
,使用用户名和密码的默认参数(可以将其参数化并与CSVDataSetconfig一起使用)。看这篇文章:很有趣!谢谢分享。虽然我在问问题之前已经努力地搜索过了,但这个问题似乎已经存在了,尽管目前还没有回应。将此评论链接到Hi-Efraim,感谢您的回复。不确定这是否解决了我希望解决的问题。我希望能够从
CSV数据集配置
中读取数据,并将其传递给
JunitSampler
——以便可以将JUnit线程配置为使用该数据运行。例如,JunitSampler`可以获取用户登录凭据并作为该用户运行测试。将数据传递给JUnitSampler的部分似乎就是问题所在。我没有在mo玩Jmeter,所以它可能已经改变了。谢谢,明白了。您可以通过在csv配置中定义变量名并在junit代码中使用相同的名称引用它来完成您想要做的事情。这对我很有效,那太好了。。。从junit测试中访问它?请提供一个引用CSV变量的junit代码片段示例?我无法测试这一点(这是一个老问题——幸运的是,我正在与LoadRunner合作),但如果有人独立验证,我会接受你的答案+投票。谢谢。文章中的链接显示junit中的代码和jmeter中的配置