• jmeter分布式性能测试笔记


    Jmeter/bin/jmeter.properties

    control机器对应的jmeter.properties 修改remote_hosts=10.2.102.250:109(slave机器对应的IP和端口号)
    slave机器对应的jmeter.properties 修改server_port=1099 ,server.rmi.localport=1099

    slave机器操作命令
    ./jmeter-server -Djava.rmi.server.hostname=10.25.102.250(slave机的ip)
    问题:rmi_keystore.jks (No such file or directory) 修改slave机器上jmeter.properties中server.rmi.ssl.disable=true

    修改JMETER_HOME

    export JMETER_HOME=/usr/apache-jmeter-4.0/bin
    export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$JMETER_HOME/lib/logkit-2.0.jar:$CLASSPATH
    export PATH=$JMETER_HOME/bin:$PATH:$HOME/bin

    https://blog.csdn.net/xiongyu1010/article/details/52246042关闭防火墙
    systemctl stop firewalld

    netstat -tunlp |grep 1099  查看端口号进程

    jmeter生成测试报告文件

    jmeter -n -t /usr/apache-jmeter-4.0/bin/mobileCertTet.jmx -l /usr/apache-jmeter-4.0/bin/mobileCertTet.jtl

    ./jmeter -g test.jtl -e -o /usr/apache-jmeter-4.0/bin/resultReport

    https://www.cnblogs.com/blog5277/p/5920560.html打成jar包

    JMeter完成java请求的压力测试详解以及问题总结

    https://blog.csdn.net/achang21/article/details/52453128/

    import java.io.PrintStream;
    import java.util.LinkedHashMap;
    import java.util.Map;

    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;

    public class mobilep10aptotic
    extends AbstractJavaSamplerClient
    {
    private SampleResult sr;
    String method = "mobileCertApplyByCSR";
    String dubboUrl = "10.2.102.216:2181,10.2.102.217:2181,10.2.102.218:2181";
    String registryId = "rAProvide";
    String interfaceName = "com.zxq.iov.cloud.sp.ra.api.IRACertApi";
    String version = "1.0";
    String p10 = "MIIC8DCCAdgCAQAwgaoxCzAJBgNVBAYTAkNOMREwDwYDVQQIDAhTaGFuZ2hhaTERMA8GA1UEBwwIU2hhbmdoYWkxKjAoBgNVBAoMIUJhbm1hIE5ldHdvcmsgVGVjaG5vbG9neSBDby4sIEx0ZDEaMBgGA1UECwwRWXVuT1MgQXV0byBNb2JpbGUxLTArBgNVBAMMJEJhbm1hVGVzdF8wMGhOd19ySXIyWFh4SXNTMzhVUmdJWVpxejCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMOz1RCt5Ct9PQaF/GhV/ADveP99rsSGlSlRrL/DfcMWaCbPP/eH8NgictuhjG/iWFA4GSrGB/Y+Dortu2rA0FIAEu+H2ZHPH5pcX4E73n5bfQbKs5KXTvR9PdAj7kK3klJLyqpZGqU1WtDA3Wu1JlOS7HrLX0JUXCzjBNwF9vQK9l8C4HPMtED2yJ28fhCgpy2JoKuRTJdcSv4JIE7Ts0QiiehnG5ptbELzqELA97TH62UvyDE53/osIhkeDYcXx9v83Gd3gZ6cS+xRZCG0Sj8mu+N40wUia64sxGU/C3Ur/9FwHp3XWW/RogAYg+pbhe1rcKFw/ctV0ASAkwbUcjUCAwEAAaAAMA0GCSqGSIb3DQEBCwUAA4IBAQC80d9Fsjd/5oV2/qrMTr8UOGd7ftZ8iJRh1eVbA8NLVAhHn78ks5u/8N+3qQifwZI29yFo0krszUVDGehI0nW4iEFJ7bl+uA7R4f8vm0jWI2qdj8KM1JPdsMi7cS8G+cx3d1ySCJqrYETHnBgLbTB/Q1/XKaUZc/ZrVdITYkwBbkL9sHqkB/lS1C33UCil5V8kdN3R5SUMxZt6AKGre8/2D6WUH9P5LuLDHteMPxWtiZJv9x1IzuwimwGReVpA9qRqV/GWYDvDT6dKY6xOmhNffpzSUiv8rEmuF/5DTg8kfD3odQFJfTMyQL2SY0uxeq39l1BvOdMixz8P9Ywbhpbp";
    DubboRegistryConfig aRegistry = null;
    DubboRequest raRequest;

    public Arguments getDefaultParameters() {
    Arguments params = new Arguments();

    params.addArgument("method", "mobileCertApplyByCSR");
    params.addArgument("dubboUrl", "10.2.102.216:2181,10.2.102.217:2181,10.2.102.218:2181");
    params.addArgument("registryId", "rAProvide");
    params.addArgument("interfaceName", "com.zxq.iov.cloud.sp.ra.api.IRACertApi");
    params.addArgument("version", "1.0");
    params.addArgument("p10filename", "${p10filename}");
    return params;
    }
    public void setupTest(JavaSamplerContext arg0)
    {
    sr = new SampleResult();
    super.setupTest(arg0);
    this.aRegistry = new DubboRegistryConfig(this.dubboUrl);
    this.raRequest = this.aRegistry.initRequest(this.registryId, this.interfaceName, this.version);

    System.out.println("setupTest");
    }

    public void teardownTest(JavaSamplerContext arg0)
    {
    super.teardownTest(arg0);
    }

    public SampleResult runTest(JavaSamplerContext arg0)
    {
    // String method =arg0.getParameter("method");
    // String dubboUrl =arg0.getParameter("dubboUrl");
    // String registryId =arg0.getParameter("registryId");
    // String interfaceName =arg0.getParameter("interfaceName");
    // String version =arg0.getParameter("version");
    // String p10filename =arg0.getParameter("p10filename");

    // SampleResult sr = null;
    Map<String, Object> params = new LinkedHashMap();
    try
    {
    params.put("p10", this.p10);

    sr = new SampleResult();
    sr.sampleStart();
    System.out.println("begin");
    DubboResponse response = this.raRequest.invoke(this.method, params);
    sr.setResponseData(response.getResponse().toString(), "UTF-8");

    sr.setSuccessful(true);
    sr.sampleEnd();
    SampleResult localSampleResult1 = sr;
    return localSampleResult1;
    }
    catch (Exception e)
    {
    e = e;
    if (sr != null)
    {
    sr = new SampleResult();
    sr.sampleStart();
    }
    String alltraces = "";
    StackTraceElement[] alltrace = e.getStackTrace();
    for (int i = 1; i < alltrace.length; i++) {
    alltraces = alltraces + alltrace[i].toString() + System.getProperty("line.separator", "/n");
    }
    sr.setResponseData(e.getCause().toString() + e.toString() + System.getProperty("line.separator", "/n") + alltraces.toString(), "UTF-8");
    sr.setSuccessful(false);
    sr.sampleEnd();
    return sr;
    }
    finally {}
    }

    public static void main(String[] args)
    {
    mobilep10aptotic itest = new mobilep10aptotic();
    itest.setupTest(null);
    itest.runTest(null);
    System.out.println("end");
    }
    }


    将dubbo接口注册放在setuptest中,可以提高效率
    定义全局变量SampleResult,并且在setup中定义,解决dubbo接口连接不上问题

  • 相关阅读:
    水调歌头·1024
    网页开发方式-从静态页面到服务端渲染
    完美融合 nextjs 和 antd
    commanderJs编写命令行工具(cli)
    [信息安全] 05 X.509 公钥证书的格式标准
    [Cake] 3. dotnet 本地工具 cake & dotnet format
    [计算机网络] 00 概述
    [Cake] 2. dotnet 全局工具 cake
    [解读REST] 0.REST 相关参考资料
    [OIDC in Action] 3. 基于OIDC(OpenID Connect)的SSO(添加Github OAuth 2.0的支持)
  • 原文地址:https://www.cnblogs.com/meadow/p/9133285.html
Copyright © 2020-2023  润新知