Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用JMeter查询一致性_Java_Web Services_Jmeter_Oracle Coherence - Fatal编程技术网

Java 使用JMeter查询一致性

Java 使用JMeter查询一致性,java,web-services,jmeter,oracle-coherence,Java,Web Services,Jmeter,Oracle Coherence,这就是我所处的情况: 我有一个web服务,它使用Coherence网格存储数据以获得更快的结果。网格保存特定的DTO对象——当用户输入新数据时,我更新这些DTO。现在,我需要为此编写特定的JMeter测试。我可以添加一个端点(restfulws)来收集这些dto,以验证对象是否正在更新,但这有点混合了QA和Dev 有没有一种方法可以使用JMeter直接连接到网格,并在其中查询我的对象?或者创建一个独立java应用程序并通过Jmeter(为查询添加特定参数)运行它以返回对象的任何方法 谢谢大家!

这就是我所处的情况:

我有一个web服务,它使用
Coherence
网格存储数据以获得更快的结果。网格保存特定的
DTO
对象——当用户输入新数据时,我更新这些
DTO
。现在,我需要为此编写特定的JMeter测试。我可以添加一个端点(restfulws)来收集这些
dto
,以验证对象是否正在更新,但这有点混合了QA和Dev

有没有一种方法可以使用JMeter直接连接到网格,并在其中查询我的对象?或者创建一个独立java应用程序并通过Jmeter(为查询添加特定参数)运行它以返回对象的任何方法

谢谢大家! 尼恩

编辑:收集一致性对象的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

    }

}

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

最好的方法是使用现有的Java库来访问服务。然后你可以从BeanShell采样器中使用它,或者编写自定义采样器,这很简单


进一步的细节很大程度上取决于您选择的库。

我正在创建一个jar来访问网格。不过,我在Jmeter拿起它时遇到了一点麻烦。我已经将项目的src文件打包到一个jar中,并将其放入jmeter/lib/ext目录,但它仍然没有在BeanShell采样器中显示为类。。有什么提示吗?我让JMeter来选择我的类,但现在我得到了:--发生了一个错误:类文件中不兼容的魔法值1885430635--每当我尝试启动JMeter时。有什么想法吗?我编辑了我的原始帖子来展示我用来获取一致性对象的代码。我仍然得到上述错误。我将文件命名为.class,目录中唯一的另一个东西是在jaring时创建的Manifest.MF文件。我认为我遇到的问题是src文件,一旦我在没有src文件的情况下重建了jar,它就工作得很好。我发现了另一个例子,它解释了如何使用Java请求采样器和Java类来做类似的事情。我在Java请求采样器中打开了测试类,但它似乎没有运行任何东西。这是另一个代码: