在许多Web框架中,可以在应用程序上执行集成测试,而无需启动实时服务器(参见Flask,Fastify和Laravel的文档)。模拟网络而不是通过localhost实际发送请求可以显著提高性能。例如,在benchmark I made中,使用Flask的测试客户端比使用requests
库(14秒)发送真实的请求快近5倍(3秒)。
但是,在使用Express时,我一直没能找到实现这一点的方法。像supertest
这样的工具似乎在一个临时端口上悄悄地启动服务器,而不是模拟网络。
如何对Express服务器执行模拟请求,而不是启动服务器并通过localhost向其请求?
1条答案
按热度按时间nwwlzxa71#
您可以使用
light-my-request
库,它与Express以及许多其他基于Node的Web框架兼容。性能比使用fetch API(6.5秒)快50%(4.3秒),至少在我运行的基准测试中是这样。