Web负载测试,不同客户端线程数的区别

Web load testing, difference between different client thread numbers

我们正在进行网络负载测试,以检查我们的网络 API 在特定 QPS(每秒查询数)上的表现。

我们有一个工具可以向我们的网站发送请求 API。

我的问题是, 对于给定的 QPS,比如 100,客户端线程数和每个线程的请求数的不同组合,在 Web API 端有什么不同。

例如,

Web API 服务器端的容量有何不同?

从服务器端看应该没什么区别,但是您的场景可能不适用。我不知道您的 "tool" 详细信息,但通常 web API 表示 HTTP transport 并且 HTTP 是 "request/response" 协议,因此如果您使用 1 个线程,您将无法发送下一个请求,直到您收到服务器的响应。

正常的 "good" 做法是模拟尽可能接近现实的负载,因此您需要模拟网络的真实使用情况 API,否则您的负载测试没有意义。因此,我建议重新考虑您的负载模式,以尽可能接近地代表使用 web API 的真实用户或应用程序。有关一些见解,请参阅 Testing SOAP/REST Web Services Using JMeter 指南。

一个线程模拟一个真实的用户,所以,假设当你设置10个线程时,每个线程每秒10个请求意味着10个用户每个人每秒发出10个请求。

性能工具基本上是模拟用户在网站上进行点击,所以每次点击代表一个请求。

由于每个请求都会使用API,这意味着每个请求都会在服务器上产生负载。如果您注意到请求花费的时间比测试 运行 长,则意味着您已达到环境容量的极限。如果每秒的用户数和请求数很低,那么您需要调整代码和查询以获得尽可能快的响应。一旦您在代码方面尽了一切可能,您可能需要根据项目的要求获得更强大的服务器。

这些测试的目的是确定您的网站是否能够为所需数量的用户提供服务。