• Jmeter的参数配置


    Ramp-up Period(in seconds)

    【1】决定多长时间启动所有线程。如果使用10个线程,ramp-up period是100秒,那么JMeter用100秒使所有10个线程启动并运行。每个线程会在上一个线程启动后10秒(100/10)启动。Ramp-up需要要充足长以避免在启动测试时有一个太大的工作负载,并且要充足小以至于最后一个线程在第一个完成前启动。  一般设置ramp-up=线程数启动,并上下调整到所需的。

    【2】用于告知JMeter 要在多长时间内建立全部的线程。默认值是0。如果未指定ramp-up period ,也就是说ramp-up period 为零, JMeter 将立即建立所有线程。假设ramp-up period 设置成T 秒, 全部线程数设置成N个, JMeter 将每隔T/N秒建立一个线程。

    【3】Ramp-Up Period(in-seconds)代表隔多长时间执行,0代表同时并发


    Delay Thread creation until needed         

    延迟创建线程,直到该线程开始采样,即之后的任何线程组延迟和加速时间为线程本身。这样可以支持更多的线程,但不会有太多是同时处于活动状态。

             

    调度器         

    选中调度器后,需要输入启动和结束时间。当测试启动时,如果必须JMeter会等待启动时间到达。在每个周期 结束,JMeter检验结束时间是否到达,如果是,运行停止,如果不是测试被允许继续,直到迭代限制到达。 

    另外你可以使用启动延迟和持续时间文本域。注意启动延迟会覆盖启动时间,持续时间会覆盖结束时间。

    jmeter压力测试(踩坑)报错:java.net.BindException: Address already in use: connect

    最近在写搜索接口服务,写完接口进行压力测试,但是在长期线程较高的进行测试时会报如下错误:

    java.net.BindException: Address already in use: connect
        at java.net.DualStackPlainSocketImpl.connect0(Native Method)
        at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)
        at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
        at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
        at java.net.Socket.connect(Socket.java:589)
        at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:120)
        at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:179)
        at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:328)
        at org.apache.jmeter.protocol.http.sampler.MeasuringConnectionManager$MeasuredConnection.open(MeasuringConnectionManager.java:114)
        at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:612)
        at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:447)
        at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:884)
        at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
        at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55)
        at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.executeRequest(HTTPHC4Impl.java:654)
        at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sample(HTTPHC4Impl.java:413)
        at org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:74)
        at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1166)
        at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1155)
        at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:475)
        at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:418)
        at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:249)

    排除问题:

    首先先查看服务器的日志,发现没有报错。

    然后查看nginx数据,发现请求数和测试发出的请求数不一致,服务器接收到的少,就想到丢失请求。

    后来经过查找资料了解是windows 机器的问题,

    原因:windows提供给TCP/IP链接的端口为 1024-5000,并且要四分钟来循环回收它们,就导致我们在短时间内跑大量的请求时将端口占满了,导致如上报错。

    解决办法(在jmeter所在服务器操作):

    1.cmd中输入regedit命令打开注册表;

    2.在 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters右键Parameters;

    3.添加一个新的DWORD,名字为MaxUserPort;

    4.然后双击MaxUserPort,输入数值数据为65534,基数选择十进制;

    5.完成以上操作,务必重启机器,问题解决。

    解决后的测试结果就不再报错:

    补充:我在修改上述问题后可以进行正常测试,但是过了两天增加线程数后又出现同样的问题,进行以下配置会正常进行测试。

    在上述三步骤后再添加TcpTimedWaitDelay,数值为30-300 选择十进制。

    同样还是需要重新启动电脑。

    原文链接:https://blog.csdn.net/zhangxiaohui4445/article/details/100162317

  • 相关阅读:
    linux-shell编程-1-简介
    linux-tail
    linux-grep
    linux-sort
    linux-sed
    linux-awk
    函数调用
    选择结构和循环结构
    列表字典集合常用函数
    datetime模块
  • 原文地址:https://www.cnblogs.com/duanxz/p/5465049.html
Copyright © 2020-2023  润新知