对 Web 应用程序进行负载测试时,我应该发送同步请求还是异步请求?

Should I send synchronous or asynchronous requests when load testing a web app?

在对 Web 应用程序进行负载测试时,我可以

  1. 在多线程中发送同步请求,或者
  2. 使用异步客户端并处理回调中的响应。

使用多线程方法,同一线程内的请求仅在收到最后一个响应后才发送。通过线程实现并发。

使用异步方法,可以快速连续发送并发请求。但是,必须定期发送请求,给事件循环足够的时间来处理响应。

例如,使用python,我既可以使用requests发送请求(同步),也可以使用twistedtornado的异步HTTP客户.

负载测试的方法是什么?

因为负载测试通常是 IO 绑定操作(免责声明:这因您未在问题中描述的系统性质而异)异步方法更好。异步方法减少了线程上下文切换,即使 CPU 没有什么可做的,也会不必要地增加 CPU 的负担。

但是我建议不要尝试发明自己的负载测试工具,尤其是如果您没有这方面的经验。相反,使用像 JMeter.

这样的股票软件