开放式和近端负载测试工具之间的区别

时间:2016-05-10 18:28:19

标签: jmeter performance-testing load-testing tsung siege

开放式和近端负载测试有什么区别?
基于线程的负载测试工具属于哪个类别?
以下是每个类别中负载测试工具的一些示例?

2 个答案:

答案 0 :(得分:6)

您似乎在谈论 closed vs. open workload models

这种基于封闭/开放系统分离的分类:

  • 如果已关闭系统模型,新请求仅由完成上一个请求触发,后跟一个思考时间。系统有负面反馈,无法掩盖服务,因此用户在提出新请求之前等待响应;
  • 开放系统模型的情况下,新请求独立于完成而到达,例如根据随机过程或固定轨迹。系统没有负面反馈。

基于此分类,我们可以根据使用的工作负载模型将负载测试工具划分为以下类别:

  • 基于线程的模型,其中每个线程在发送另一个请求之前都会等待响应 - 因此请求率取决于响应率(负载生成器以系统可以接受的速度驱动负载):
    • 基于线程的方法 VU [虚拟用户] - 面向,同时尝试模拟N个用户一起工作;
    • 基于线程的工具需要单独的线程来模拟用户;
    • 示例:JMeter;
  • 基于匹配的模型
    • 基于匹配的方法 RPS [请求每秒] - 面向,同时尝试每秒产生N次点击;
    • 基于匹配的工具使用异步方法,并且总是会尝试创建已定义的请求率,必要时排队请求;
    • 示例:tsungYandex.Tank

答案 1 :(得分:6)

我基本同意Aliaksandr对封闭/开放系统的解释,并举例说明。

例如:您有3个用户,每个用户迭代一系列请求。在新迭代开始之前,前一次迭代必须完成。如果所有请求都已完成,则上一次迭代结束。如果被测系统需要更长的响应时间,则请求速率会下降。因此,负载发电机和被测系统处于闭环状态。

在开环中,无论响应时间如何,请求率都是恒定的 - 没有反馈。

两种模型都揭示了被测系统的不同性能特征,即具有闭环的容量/吞吐量限制,具有开环的队列大小。使用开环

使系统过载更容易

关于线程,通常基于线程的工具定义了一个闭环,但是,你也可以模拟开环。

以JMeter为例,如果你想在3600秒的时间内保持2个用户/秒的恒定速率,你可以使用3600秒的加速时间并使用7200的线程数,而不需要循环。

Gatling是另一个免费的工具,它不是基于线程的,而是基于事件的。您可以建模闭环(重复,期间)或开环(constantUsersPerSecs)