Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.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 API性能测试工具-JMeter还是JUnit?_Java_Junit_Jmeter_Performance Testing_Web Api Testing - Fatal编程技术网

Java API性能测试工具-JMeter还是JUnit?

Java API性能测试工具-JMeter还是JUnit?,java,junit,jmeter,performance-testing,web-api-testing,Java,Junit,Jmeter,Performance Testing,Web Api Testing,我正在做一些性能测试任务。主要目标是比较旧的NCP协议调用和新的RESTAPI调用的持续时间。我有这样一个场景: 客户端具有经过身份验证的会话 客户端访问受保护的资源 我必须创建两个变体: a) 逐个变体:问题是:执行逐个发送的2000个请求需要多长时间 b) 并发变量:问题是:执行并发发送的2000个请求需要多长时间(理想情况下为300个线程) 我不知道解决这个问题的最好办法。我的想法是: a) 创建2000个Http客户机->每个客户机发送Http Post并在正文中提供凭据->每个客户机发

我正在做一些性能测试任务。主要目标是比较旧的NCP协议调用和新的RESTAPI调用的持续时间。我有这样一个场景:

  • 客户端具有经过身份验证的会话
  • 客户端访问受保护的资源
  • 我必须创建两个变体:

    a) 逐个变体:问题是:执行逐个发送的2000个请求需要多长时间

    b) 并发变量:问题是:执行并发发送的2000个请求需要多长时间(理想情况下为300个线程)

    我不知道解决这个问题的最好办法。我的想法是:

    a) 创建2000个Http客户机->每个客户机发送Http Post并在正文中提供凭据->每个客户机发送Http GET并获取响应(我将测量发送GET请求和获取每个迭代的响应之间的时间,并求和)

    b) 创建2000个HttpClient->Use executor service with fixed thread pool(300)->每个线程将执行发送get请求


    还有别的办法吗?我知道Jmeter是一个很棒的工具,但我不确定这个场景是否可以在Jmeter上执行。谢谢

    JUnit本身不提供任何多线程逻辑,您必须自己构造HTTP请求(或使用类似于第三方库的库),然后使用或执行它们,然后想出一些结果分析的方法


    因此,您不需要编写一行代码,它可能不像JMeter那样对CI友好。jmx脚本是XML,但另一方面,对于第二个变量,您将获得将负载增加与响应时间增加关联起来的良好能力:您需要确定目标吞吐量(TP)。每小时2000个请求?每分钟?每秒?一旦获得TP,并对场景响应时间(RT)进行猜测,就可以使用利特尔定律估计Vuser的数量。或者,您可以使用来确定该数字

    Jmeter提供了一种通过使用提交此工作负载(场景)的机制。此TG将实例化维持目标TP所需的线程数

    请注意,由于以下原因,您可能无法达到TP目标:

  • SUT没有处理负载的能力
  • 环境中某个地方的瓶颈(资源饱和)
  • 客户机(JMeter)确实有足够的资源来产生负载

  • 也许postman有一些您需要的功能?我正在寻找一些解决方案,但postman不提供并行解决方案。