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

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.

主站蜘蛛池模板: 同心县| 明溪县| 滁州市| 巴中市| 武宣县| 花垣县| 大洼县| 潜山县| 新疆| 克什克腾旗| 当阳市| 吉安县| 通河县| 巴楚县| 金塔县| 万源市| 扎赉特旗| 宜州市| 辽阳市| 定西市| 库伦旗| 东明县| 内乡县| 广安市| 托克逊县| 乌什县| 周口市| 鸡东县| 襄城县| 壶关县| 建湖县| 界首市| 平度市| 监利县| 资兴市| 宁远县| 商丘市| 鞍山市| 宁武县| 呼图壁县| 诸暨市|