使用JMeter查询一致性

时间:2011-05-23 21:28:58

标签: java web-services jmeter oracle-coherence

这就是我所处的情况:

我有一个使用Coherence网格的网络服务来存储数据以获得更快的结果。网格包含特定的DTO个对象 - 当新数据来自用户时,我会更新这些DTOs。现在,我需要为此编写特定的JMeter测试。我可以添加一个EndPoint(Restful WS)来收集这些DTOs以验证对象是否正在更新,但这有点混合了QA和Dev。

有没有办法使用JMeter直接连接到网格并查询我的对象?甚至可以通过任何方式创建一个独立的Java应用程序并通过Jmeter运行它(为查询添加特定的参数)来返回对象..

谢谢你们! NINN

编辑:用于收集连贯对象的java类

    package disclosed.jmeter;

import org.apache.jmeter.config.Arguments;
import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;
import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
import org.apache.jmeter.samplers.SampleResult;
import com.tangosol.net.CacheFactory;
import com.tangosol.net.NamedCache;

public class JmeterTest extends AbstractJavaSamplerClient{

    @Override
    public Arguments getDefaultParameters() {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public SampleResult runTest(JavaSamplerContext arg0) {
        CacheFactory.getCluster().getMemberSet();
        NamedCache cache = CacheFactory.getCache("myCache");
        System.out.println("The value taken from the cache is: " + cache.get("message"));
        SampleResult result = new SampleResult();
        result.setResponseCode((String) cache.get("message"));
        return result;
    }

    @Override
    public void setupTest(JavaSamplerContext arg0) {
        // TODO Auto-generated method stub

    }

    @Override
    public void teardownTest(JavaSamplerContext arg0) {
        // TODO Auto-generated method stub

    }

}

1 个答案:

答案 0 :(得分:1)

是的,您可以从JMeter查询任何服务,如果您有Java库来访问它,或者模拟原始TCP / UDP网络流量。

最好的方法是让现有的Java库访问服务。然后你可以在BeanShell Sampler中使用它,或者编写自定义的Sampler,这很容易。

更多细节在很大程度上取决于您选择的库。