我有一個 Gatling 場景,我正在呼叫 Gatling 演示應用程式端點。我注意到第一個請求需要更長的時間來回應。例如:
public class OneEndpointSimulation extends Simulation {
HttpProtocolBuilder httpProtocol = http
.baseUrl("http://computer-database.gatling.io")
.acceptHeader("text/html,application/xhtml xml,application/xml;q=0.9,*/*;q=0.8")
.doNotTrackHeader("1")
.acceptLanguageHeader("en-US,en;q=0.5")
.acceptEncodingHeader("gzip, deflate")
.userAgentHeader("Mozilla/5.0 (Windows NT 5.1; rv:31.0) Gecko/20100101 Firefox/31.0");
ScenarioBuilder scn = scenario("BasicSimulation")
.repeat(10)
.on(
exec(http("request_1")
.get("/computers")));
{
setUp(scn.injectOpen(atOnceUsers(1))
).protocols(httpProtocol);
}
}
加特林報告螢屏
這是simulation.log檔案結果:
RUN activitydatabase.OneEndpointSimulation oneendpointsimulation 1647472671275 3.7.5
USER BasicSimulation START 1647472672290
REQUEST request_1 1647472672322 1647472672578 OK
REQUEST request_1 1647472672614 1647472672740 OK
REQUEST request_1 1647472672742 1647472672867 OK
REQUEST request_1 1647472672868 1647472672992 OK
REQUEST request_1 1647472672994 1647472673121 OK
REQUEST request_1 1647472673123 1647472673244 OK
REQUEST request_1 1647472673246 1647472673368 OK
REQUEST request_1 1647472673371 1647472673492 OK
REQUEST request_1 1647472673494 1647472673616 OK
REQUEST request_1 1647472673618 1647472673741 OK
USER BasicSimulation END 1647472673748
有什么辦法可以加快第一個請求?
uj5u.com熱心網友回復:
你弄錯了,這是意料之中的。
由于您的測驗設計方式,第一個請求需要更多時間,因為它有更多作業要做:
- 執行 DNS 決議
- 打開 HTTP 連接
對這個單一虛擬用戶的下一個請求將跳過這個額外的作業,因為:
- DNS 決議將在快取中
- 他們將重用相同的保持活動 HTTP 連接
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/447862.html
