官术网_书友最值得收藏!

Load testing revisited

The initial load testing application was rather limited, and though of use, it did not give a realistic picture with so many requests thrown at once at the server application without waiting for a response.

Updating the load tester

The new version of the load testing application will make a single HTTP call and await the result before calling the next. This takes place in the main.dart source file. Note that the main function itself in now marked as async. The await command is used in the calling loop of the main function, as follows:

main() async {
  print("Starting...");

  var url = "http://127.0.0.1:8080/index.html";
  var hc = new HttpClient();
  var watch = new Stopwatch();
  int attemptedRequests = 200;

  print("Starting testing...");
  watch.start();

  for (int i = 0; i < attemptedRequests; i++) {
    await callWebPage(hc, url, i, watch);
  }

  watch.stop();
  print("${watch.elapsed.inMilliseconds}");
}

The callWebPage method needs to be marked as async too, as await will be used twice:

callWebPage(HttpClient webClient, String targetURL, int requestNumber,
    Stopwatch watch) async {
  HttpClientRequest request;
  HttpClientResponse response;
  request = await webClient.getUrl(Uri.parse(targetURL));
  response = await request.close();
  print("$requestNumber, ${response.statusCode}, ${watch.elapsed.inMilliseconds}");
}

The two operations of unknown duration, the URL fetch and closing of the response, are waited upon before the output to the screen is processed.

主站蜘蛛池模板: 胶南市| 成都市| 滨海县| 三门峡市| 周口市| 长葛市| 伊宁县| 阳信县| 黄骅市| 垫江县| 石台县| 开远市| 醴陵市| 兰坪| 泗水县| 清原| 淅川县| 赤峰市| 许昌市| 麻栗坡县| 德安县| 云阳县| 邛崃市| 同心县| 五莲县| 襄城县| 巴东县| 瓦房店市| 安乡县| 合作市| 奎屯市| 旅游| 舞阳县| 广昌县| 嘉禾县| 瑞金市| 哈尔滨市| 安乡县| 广饶县| 徐州市| 山西省|