- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 JMeter 2.12 版 API 将我拥有的 JMeter 测试计划转换为纯 Java 实现,但我没有运气让测试成功执行。我的实现基于 GUI 测试中的测试计划 .jmx 文件,该文件在通过 GUI 运行时成功执行。我试图转换的测试是一个 JMS 发布者向我本地主机上的 ActiveMQ 代理发送一条文本消息。我已经确认通过 JMeter GUI 执行时会收到消息,但我无法通过 Java 实现取得同样的成功。代码编译并运行,但我不确定为什么 JMS Publisher 没有成功发送消息:
public static void main(String[] args) {
String jmeterLocation = "C:\\Users\\Andrew2\\Desktop\\apache-jmeter-2.12\\";
StandardJMeterEngine jmeter = new StandardJMeterEngine();
//Load JMeter properties
JMeterUtils.loadJMeterProperties(jmeterLocation + "bin\\jmeter.properties");
JMeterUtils.setJMeterHome(jmeterLocation);
JMeterUtils.initLocale();
HashTree testPlanTree = new HashTree();
//Build Sampler
PublisherSampler jmsPublisher = new PublisherSampler();
jmsPublisher.setProperty("jms.jndi_properties", "false");
jmsPublisher.setProperty("jms.initial_context_factory","org.apache.activemq.jndi.ActiveMQInitialContextFactory");
jmsPublisher.setProperty("jms.provider_url","tcp://127.0.0.1:61616");
jmsPublisher.setProperty("jms.connection_factory","ConnectionFactory");
jmsPublisher.setProperty("jms.topic","dynamicQueues/NewQueue");
jmsPublisher.setProperty("jms.expiration","100");
jmsPublisher.setProperty("jms.priority","6");
jmsPublisher.setProperty("jms.security_principle","");
jmsPublisher.setProperty("jms.security_credentials","");
jmsPublisher.setProperty("jms.text_message","test..test..");
jmsPublisher.setProperty("jms.input_file","");
jmsPublisher.setProperty("jms.random_path","");
jmsPublisher.setProperty("jms.config_choice","jms_use_text");
jmsPublisher.setProperty("jms.config_msg_type","jms_text_message");
jmsPublisher.setProperty("jms.iterations","1");
jmsPublisher.setProperty("jms.authenticate",false);
JMSProperties jmsProperties = new JMSProperties();//set header property
jmsProperties.addJmsProperty(new JMSProperty("TestID","123456","java.lang.String"));
//Build Result Collector so that results can be inspected after test
ResultCollector rc = new ResultCollector();
rc.setEnabled(true);
rc.setErrorLogging(false);
rc.isSampleWanted(true);
SampleSaveConfiguration ssc = new SampleSaveConfiguration();
ssc.setTime(false);
ssc.setLatency(false);
ssc.setTimestamp(true);
ssc.setSuccess(true);
ssc.setLabel(false);
ssc.setCode(false);
ssc.setMessage(false);
ssc.setThreadName(false);
ssc.setDataType(false);
ssc.setEncoding(false);
ssc.setAssertions(false);
ssc.setSubresults(false);
ssc.setResponseData(false);
ssc.setSamplerData(false);
ssc.setAsXml(false);
ssc.setFieldNames(false);
ssc.setResponseHeaders(false);
ssc.setRequestHeaders(false);
ssc.setAssertionResultsFailureMessage(false);
ssc.setThreadCounts(false);
rc.setSaveConfig(ssc);
rc.setFilename("C:\\Users\\Andrew2\\Desktop\\constantthroughput-singleserver.csv");
//Create Loop Controller
LoopController loopController = new LoopController();
loopController.setEnabled(true);
loopController.setLoops(3);
loopController.addTestElement(jmsPublisher);
loopController.setFirst(true);
loopController.initialize();
//Create Thread Group
SetupThreadGroup threadGroup = new SetupThreadGroup();
threadGroup.setEnabled(true);
threadGroup.setNumThreads(1);
threadGroup.setRampUp(1);
threadGroup.setSamplerController(loopController);
//Create Test Plan
testPlanTree.add("testPlan",new TestPlan("JMeter JMS test"));
testPlanTree.add("loopController",loopController);
testPlanTree.add("JMS Publisher",jmsPublisher);
testPlanTree.add("Logger",rc);
testPlanTree.add("ThreadGroup",threadGroup);
//Run Test Plan
jmeter.configure(testPlanTree);
jmeter.run();
}
最佳答案
基于上面列出的 JMeterFromScratch.java Dmitri 示例,我修改了我的代码,现在它可以工作了,工作代码是:
public static void main(String[] args) throws FileNotFoundException, IOException {
String jmeterLocation = "C:\\Users\\Andrew2\\Desktop\\apache-jmeter-2.12\\";
StandardJMeterEngine jmeter = new StandardJMeterEngine();
//Load JMeter properties
JMeterUtils.loadJMeterProperties(jmeterLocation + "bin/jmeter.properties");
JMeterUtils.setJMeterHome(jmeterLocation);
JMeterUtils.initLocale();
HashTree testPlanTree = new HashTree();
//Build Sampler
PublisherSampler jmsPublisher = new PublisherSampler();
jmsPublisher.setProperty("jms.jndi_properties", "false");
jmsPublisher.setProperty("jms.initial_context_factory","org.apache.activemq.jndi.ActiveMQInitialContextFactory");
jmsPublisher.setProperty("jms.provider_url","tcp://127.0.0.1:61616");
jmsPublisher.setProperty("jms.connection_factory","ConnectionFactory");
jmsPublisher.setProperty("jms.topic","dynamicQueues/NewQueue");
jmsPublisher.setProperty("jms.expiration","100");
jmsPublisher.setProperty("jms.priority","6");
jmsPublisher.setProperty("jms.security_principle","");
jmsPublisher.setProperty("jms.security_credentials","");
jmsPublisher.setProperty("jms.text_message","test..test..");
jmsPublisher.setProperty("jms.input_file","");
jmsPublisher.setProperty("jms.random_path","");
jmsPublisher.setProperty("jms.config_choice","jms_use_text");
jmsPublisher.setProperty("jms.config_msg_type","jms_text_message");
jmsPublisher.setProperty("jms.iterations","1");
jmsPublisher.setProperty("jms.authenticate",false);
JMSProperties jmsProperties = new JMSProperties();//set header property
jmsProperties.addJmsProperty(new JMSProperty("TestID","123456","java.lang.String"));
//Build Result Collector so that results can be inspected after test
ResultCollector rc = new ResultCollector();
rc.setEnabled(true);
rc.setErrorLogging(false);
rc.isSampleWanted(true);
SampleSaveConfiguration ssc = new SampleSaveConfiguration();
ssc.setTime(false);
ssc.setLatency(false);
ssc.setTimestamp(true);
ssc.setSuccess(true);
ssc.setLabel(false);
ssc.setCode(false);
ssc.setMessage(false);
ssc.setThreadName(false);
ssc.setDataType(false);
ssc.setEncoding(false);
ssc.setAssertions(false);
ssc.setSubresults(false);
ssc.setResponseData(false);
ssc.setSamplerData(false);
ssc.setAsXml(false);
ssc.setFieldNames(false);
ssc.setResponseHeaders(false);
ssc.setRequestHeaders(false);
ssc.setAssertionResultsFailureMessage(false);
ssc.setThreadCounts(false);
rc.setSaveConfig(ssc);
rc.setFilename("C:\\Users\\Andrew2\\Desktop\\constantthroughput-singleserver.csv");
//Create Loop Controller
LoopController loopController = new LoopController();
loopController.setEnabled(true);
loopController.setLoops(1);
loopController.setFirst(true);
loopController.setProperty(TestElement.TEST_CLASS, LoopController.class.getName());
loopController.setProperty(TestElement.GUI_CLASS, ThreadGroupGui.class.getName());
loopController.initialize();
//Create Thread Group
SetupThreadGroup threadGroup = new SetupThreadGroup();
threadGroup.setEnabled(true);
threadGroup.setNumThreads(1);
threadGroup.setRampUp(1);
threadGroup.setSamplerController(loopController);
threadGroup.setProperty(TestElement.TEST_CLASS,ThreadGroup.class.getName());
threadGroup.setProperty(TestElement.GUI_CLASS,ThreadGroupGui.class.getName());
//Create Test Plan
TestPlan testPlan = new TestPlan("New Test Plan");
testPlan.setProperty(TestElement.TEST_CLASS, TestPlan.class.getName());
testPlan.setProperty(TestElement.GUI_CLASS, TestPlanGui.class.getName());
testPlan.setUserDefinedVariables((Arguments) new ArgumentsPanel().createTestElement());
//Load elements into test plan
testPlanTree.add(testPlan);
HashTree threadGroupHashTree = testPlanTree.add(testPlan, threadGroup);
threadGroupHashTree.add(jmsPublisher);
threadGroupHashTree.add(rc);
SaveService.saveTree(testPlanTree, new FileOutputStream(jmeterLocation + "bin/testjms.jmx"));
Summariser summer = null;
String summariserName = JMeterUtils.getPropDefault("summariser.name", "summary");
if (summariserName.length() > 0) {
summer = new Summariser(summariserName);
}
//Run Test Plan
jmeter.configure(testPlanTree);
jmeter.run();
}
关于java - 使用纯Java用JMeter进行JMS压力测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27935394/
可以抛出异常的函数可以有[pure]属性吗? 最佳答案 根据 https://msdn.microsoft.com/en-us/library/system.diagnostics.contracts
我使用的是纯 css 推送导航。它工作得很好,但是我不知道如何在单击导航链接时隐藏菜单。您必须手动单击菜单图标才能使菜单返回隐藏状态。但是,当单击链接并且站点跳转到某个部分时,我希望菜单自动滑入隐藏状
我正在尝试让纯 CSS 下拉菜单正常工作。它在很大程度上确实有效,除了其他内容似乎显示出来但我不知道为什么。 http://jsfiddle.net/uQveP/4/ 有人可以告诉我我做错了什么吗?
这个问题在这里已经有了答案: What is a "callback" in C and how are they implemented? (9 个回答) 关闭 8 年前。 我正在以这种方式实现回
我想在不使用 Javascript 或任何其他语言的情况下,使用 HTML 和 CSS 创建一个 Page Back Button。我想用纯 HTML 和 CSS 来完成。 我进行了搜索,但每次代码中
我对序言很陌生。据我所知,Pure Prolog 仅限于 Horn 子句。 这是一个非常简单的序言程序 - % student( Snr , FirstName , LastName ,
我想在加载数据时对容器使用以下加载指示器。 问题是, slider 具有固定的宽度和高度(300 像素和 300 像素),但我希望它能够动态适应容器。当我尝试添加宽度时:140px;和高度:140px
当内容超过可用宽度时,我需要启用滚动阴影。这是我试图用纯 css(没有 JS)来实现的。我遇到了很多文章,可以使用 css 多背景和背景附件来实现。如果内容是文本类型,则可以使用下面的 jsfilld
我正在编写一个上古卷轴在线插件,它由一个名为 Havok Script 的轻微修改的 Lua 5.1 引擎支持。 .这个Lua环境不允许访问os , io , package , debug模块或任何
我自己尝试过将 Arduino 库编译成他们自己的独立库并链接到 Eclipse 中的一个项目,但在此过程中遇到了一些问题。 是否有关于如何启动和运行的体面指南?我一直很难在网上找到一个真正有效的..
我在这里遇到了一些麻烦。我正在尝试使用本地存储创建一个待办事项列表,但我唯一要做的就是将列表项添加到本地存储并删除 所有项目 从本地存储中删除,但我无法从列表中删除单个 SELECTED 项目。有人可
我的问题很简单。考虑以下 CodePen .是否有可能仅使用 css 就可以获得相同的结果?换句话说,如果不使用 javascrip 如何做到这一点?非常感谢! Nachos are
我正在使用没有 jquery 的 angularjs,并尝试创建滚动事件监听器。 尝试过这种方法: $rootScope.$watch(function() { return $windo
我正在尝试使用纯 webgl 创建虚线。我知道这已经有一个问题,也许我很笨,但我不知道如何让它发挥作用。我理解这个概念,但我不知道如何在着色器中获取沿路径的距离。以前的答案有以下行: varying
我正在尝试用纯 JavaScript 制作工具提示,显示在 hover .就像 Stack Overflow 中将鼠标悬停在配置文件名称上的一个 div显示。 我尝试使用 onmouseover ,
我想要通过 AJAX 将监听器添加到新元素的想法: 例如,现在我有 hello world 我为每个 添加了一个监听器,但是当我通过 AJAX 加载新元素时,它没有监听器;我不完全确定问题是什么。
如果我错误地提出了这个问题,或者之前已经有人问过并回答过这个问题,我提前表示歉意。我的搜索发现了类似的基于 JQuery 和/或静态日期的问答,我正在寻找具有动态日期的纯 JavaScript 解决方
在 Real World Haskell, Chapter 28, Software transactional memory ,开发了一个并发的网络链接检查器。它获取网页中的所有链接,并使用 HEA
我正在尝试取消 jQuery-fy 一个聪明的 piece of code ,但有点太聪明了。 目标是simple 。将图像从桌面拖动到浏览器。 在这次 unjQueryfication 过程中,我发
如何重新创建 jQuery end() $('#id') .find('.class') .css('font',f) .end() .find('.seven') .css(b,'red') 我有什
我是一名优秀的程序员,十分优秀!