- Dart:Scalable Application Development
- Davy Mitchell Sergey Akopkokhyants Ivo Balbaert
- 209字
- 2021-07-09 18:56:24
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.
推薦閱讀
- Mastering QGIS
- Selenium Design Patterns and Best Practices
- Scratch真好玩:教小孩學編程
- C語言程序設計
- 21天學通C++(第5版)
- Internet of Things with ESP8266
- Python:Deeper Insights into Machine Learning
- Mastering Adobe Captivate 7
- Visual Basic程序設計基礎
- Spring Boot從入門到實戰
- Microsoft Windows Identity Foundation Cookbook
- Leaflet.js Essentials
- Selenium Essentials
- 前端程序員面試筆試真題與解析
- C++ Game Development Cookbook