| 研究生: |
盧俊年 Lo, Jun-Nian |
|---|---|
| 論文名稱: |
網頁前端負載測試與後端負載混合模式之評估研究 An Empirical Study on Web GUI Load Testing and the Hybrid with HTTP Requests |
| 指導教授: |
李信杰
Lee, Shin-Jie |
| 學位類別: |
碩士 Master |
| 系所名稱: |
電機資訊學院 - 資訊工程學系 Department of Computer Science and Information Engineering |
| 論文出版年: | 2023 |
| 畢業學年度: | 111 |
| 語文別: | 英文 |
| 論文頁數: | 66 |
| 中文關鍵詞: | 網頁自動化測試 、網頁壓力測試 、整合測試報告 |
| 外文關鍵詞: | Web automation testing, Web load testing, Integrations testing report |
| 相關次數: | 點閱:110 下載:15 |
| 分享至: |
| 查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報 |
現今大多數服務都以網頁作為其服務的形式,因此需要對於網頁進行負載測試,以確保使用者有個完善的體驗。
本篇研究實作了一個可執行前端測試的JMeter plugin,使得可藉由JMeter 完善的測試計畫功能,來執行純前端的壓力測試。然而純前端壓測需要大量的硬體資源,才能製造出對於網頁巨大的流量。因此本篇論文也實作3項實驗分別比較純前端負載測試,純後端負載測試和混合前兩者的混合負載測試。實驗結果顯示百分位數90的案例後端負載測試僅有響應時間1.286秒,但是有個測試案例的前端則顯示TTFB (Time To First Byte) 的時間為3秒之久,這被視為「欠佳」。這顯示了混合負載測試可以用相較前端成本較低的後端來造成網頁的負載,並且發現後端負載測試沒辦法發現的前端使用者體驗之問題。
Nowadays, webpages are widely used for service delivery, necessitating load testing to ensure an optimal user experience. This research introduces a JMeter plugin for frontend testing, enabling comprehensive load tests. However, frontend load tests require significant hardware resources to generate substantial traffic. The paper conducts three experiments comparing pure frontend, pure backend, and hybrid load tests. Results show a 1.286-second response time in the 90th percentile for backend load tests, while one frontend test case exhibits a 3-second TTFB, indicating poor performance. Hybrid load testing proves cost-effective for simulating webpage loads and identifying front-end user experience issues that may be missed by back-end tests.
[1] S. Ivanova and G. Georgiev, "Using modern web frameworks when developing an education application: A practical approach," 2019 42nd International Convention on Information and Communication Technology, Electronics and Microelectronics (MIPRO), pp. 1485-1491, 2019.
[2] R. Aganwal, B. Ghosh, S. Banerjee and S. Kishore Pal, "Ensuring website quality: A case study," Proceedings of the 2000 IEEE International Conference on Management of Innovation and Technology. ICMIT 2000. 'Management in the 21st Century' (Cat. No.00EX457).
[3] G. A. Stout, "Testing a website: Best practices.," August 2001. [Online]. Available: https://www.heromotocorp.com/en-in/uploads/Annual_Reports/pdf/20130315113443-pdf-68.pdf. [Accessed 29 July 2023].
[4] Kunhua Zhu, Junhui Fu and Yancui Li, "Research the performance testing and Performance Improvement Strategy in web application," 2010 2nd International Conference on Education Technology and Computer, vol. 2, pp. V2-328-V2-332, 2010.
[5] G. Meszaros, "Agile regression testing using record & playback," Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, pp. 353-360, 2003.
[6] M. Leotta, D. Clerissi, F. Ricca and P. Tonella, "Capture-replay vs. Programmable web testing: An empirical assessment during Test Case Evolution," 2013 20th Working Conference on Reverse Engineering (WCRE), pp. 272-281, 2013.
[7] "Selenium Grid 4," [Online]. Available: https://www.selenium.dev/documentation/grid/. [Accessed 3 July 2023].
[8] "Rapi Recorder," [Online]. Available: https://github.com/RapiTest/rapi. [Accessed 5 July 2023].
[9] "Rapi Runner Documentation," [Online]. Available: https://hackmd.io/@Rapi/rapi-runner. [Accessed 5 July 2023].
[10] "Apache JMeter," [Online]. Available: https://jmeter.apache.org/. [Accessed 5 July 2023].
[11] "Apache JMeter Distributed Testing Step-by-step," [Online]. Available: https://jmeter.apache.org/usermanual/jmeter_distributed_testing_step_by_step.html. [Accessed 5 July 2023].
[12] "Apache JMeter HTTP(S) Test Script Recorder," [Online]. Available: https://jmeter.apache.org/usermanual/jmeter_proxy_step_by_step.html. [Accessed 5 July 2023].
[13] S. Matam and J. Jain, "JMeter Test Script Recorder," in Pro Apache JMeter, Apress, Berkeley, CA, 2017, pp. 25-34.
[14] B. B. a. B. H. J. a. A. M. Rad, "An introduction to docker and analysis of its performance," International Journal of Computer Science and Network Security (IJCSNS), vol. 17, p. 228, 2017.
[15] C. Anderson, "Docker [Software engineering]," IEEE Software, vol. 32, pp. 102-c3, 2015.
[16] S. Singh and S. Nirmala, "Containers & Docker: Emerging roles & future of cloud technology," 2016 2nd International Conference on Applied and Theoretical Computing and Communication Technology (iCATccT), pp. 804-807, 2016.
[17] "Kubernetes," [Online]. Available: https://kubernetes.io/. [Accessed 3 July 2023].
[18] D. Bernstein, "Containers and Cloud: From LXC to Docker to Kubernetes," IEEE Cloud Computing, vol. 1, pp. 81-84, 2014.
[19] "Prometheus," [Online]. Available: https://prometheus.io/. [Accessed 5 July 2023].
[20] "Grafana," [Online]. Available: https://grafana.com/. [Accessed 19 July 2023].
[21] P. Walton, "Web Vitals," [Online]. Available: https://web.dev/vitals/. [Accessed 15 July 2023].
[22] "First Input Delay (FID)," [Online]. Available: https://web.dev/fid/. [Accessed 16 July 2023].
[23] "Largest Contentful Paint (LCP)," [Online]. Available: https://web.dev/lcp/. [Accessed 16 July 2023].
[24] "Cumulative Layout Shift (CLS)," [Online]. Available: https://web.dev/cls/. [Accessed 16 July 2023].
[25] "First Contentful Paint (FCP)," [Online]. Available: https://web.dev/fcp/. [Accessed 16 July 2023].
[26] "Time to First Byte (TTFB)," [Online]. Available: https://web.dev/ttfb/. [Accessed 16 July 2023].
[27] "Core Web Vitals FAQ on percentiles | Erwin Hofman," [Online]. Available: https://www.erwinhofman.com/core-web-vitals-faq/percentiles/. [Accessed 16 July 2023].
[28] "Defining the Core Web Vitals metrics thresholds," [Online]. Available: https://web.dev/defining-core-web-vitals-thresholds/. [Accessed 16 July 2023].
[29] "GoogleChrome/web-vitals: Essential metrics for a healthy site.," [Online]. Available: https://github.com/GoogleChrome/web-vitals. [Accessed 16 July 2023].
[30] "Understanding the Different Types of Load Tests: Goals and Recommendations," [Online]. Available: https://k6.io/docs/test-types/load-test-types/. [Accessed 16 July 2023].
[31] A. Pokhilko, "undera/jmeter-plugins-webdriver: WebDriver Components for Apache JMeter," [Online]. Available: https://github.com/undera/jmeter-plugins-webdriver. [Accessed 29 July 2023].
[32] "Arrivals Thread Group," [Online]. Available: https://jmeter-plugins.org/wiki/ArrivalsThreadGroup/. [Accessed 6 July 2023].
[33] "Free-Form Arrivals Thread Group," [Online]. Available: https://jmeter-plugins.org/wiki/FreeFormArrivalsThreadGroup/. [Accessed 6 July 2023].
[34] "Concurrency Thread Group," [Online]. Available: https://jmeter-plugins.org/wiki/ConcurrencyThreadGroup/. [Accessed 7 July 2023].
[35] "Usage Statistics and Market Share of Content Management Systems, July 2023," [Online]. Available: https://w3techs.com/technologies/overview/content_management. [Accessed 28 July 2023].
[36] "WordPress packaged by Bitnami," [Online]. Available: https://bitnami.com/stack/wordpress/helm. [Accessed 2023 July 4].
[37] P. f. W. p. b. Bitnami. [Online]. Available: https://github.com/bitnami/charts/tree/main/bitnami/wordpress#parameters. [Accessed 5 July 2023].
[38] I. Rancher Labs, "Local Path Provisioner," [Online]. Available: https://github.com/rancher/local-path-provisioner. [Accessed 5 July 2023].
[39] "Apache MPM prefork," [Online]. Available: https://httpd.apache.org/docs/2.4/mod/prefork.html. [Accessed 10 July 2023].
[40] "MaxRequestWorkers Directive," [Online]. Available: https://httpd.apache.org/docs/2.4/mod/mpm_common.html#maxrequestworkers. [Accessed 10 July 2023].
[41] "What are Quality of Service (QoS) Classes in Kubernetes," [Online]. Available: https://medium.com/google-cloud/quality-of-service-class-qos-in-kubernetes-bb76a89eb2c6. [Accessed 9 July 2023].
[42] "MetalLB," [Online]. Available: https://metallb.universe.tf/. [Accessed 7 July 2023].
[43] "Concurrency Thread Group," [Online]. Available: https://jmeter-plugins.org/wiki/ConcurrencyThreadGroup/. [Accessed 9 July 2023].