+4

Từ 3 phút còn 3 giây

Hãy tưởng tượng bạn đang lướt web và tất cả các trang cho bạn thấy bạn cần chờ đợi trong 15 giây khi load mỗi trang. Bạn sẽ tiếp tục lướt web trong bao lâu mà không mất kiên nhẫn? Bao lâu cho đến khi bạn chuyển sang làm cái gì khác? Nếu bạn gặp một trang web như thế này thì sao? Bạn có ghé thăm web đó mà không than phiền? Bạn có giới thiệu trang web cho bất cứ ai khác?

Hầu hết người dùng từ chối ứng dụng web khi họ phải mất hơn 4 hoặc 5 giây để tải. Hiệu suất là một yếu tố chính cho việc thông qua cửa người dùng. Và một trong những yếu tố quyết định chính của hiệu suất là vị trí địa lý. Hãy nói rằng trang web hoạt động hoàn hảo cho đất nước của chúng tôi. Liệu chúng ta thậm chí có nghĩ về hiệu quả hoạt động của nó ở các khu vực khác? Hoặc trên các mạng di động khác nhau?

Một ứng dụng khá chậm chạp

Tôi là QA cho một ứng dụng bán hàng của ThoughtWorks. Người dùng của chúng tôi thường xuyên sử dụng ứng dụng và họ cần nó hoạt động một cách nhanh chóng, thân thiện với thiết bị di động để nhập dữ liệu vào hệ thống bán hàng của chúng tôi. Sau khi thông báo phát hành ứng dụng của chúng tôi lần đầu tiên, một số người dùng của chúng tôi phàn nàn rằng thời gian phản hồi của ứng dụng quá chậm và do đó họ không thể sử dụng ứng dụng. Một loạt cuộc gọi điện video đã phàn nàn các vấn đề về hiệu suất mà những người dùng đang phải gặp phải. Chúng tôi thấy rằng nó thực sự mất khoảng 3 phút để tải mỗi trang, rõ ràng là quá chậm cho bất cứ ai sử dụng ứng dụng.

Chẩn đoán vấn đề

Sau khi xem các vấn đề, chúng tôi đã nêu ra một số nguyên nhân tiềm năng cho hiệu suất kém. Đây là những gì chúng tôi nghĩ có thể là trường hợp:

  • Có thể chúng tôi đã được test trên Internet phi thực tế tốc độ cao. và đã test ứng dụng trên mạng wi-fi văn phòng. Trong khi đó, thực tế ứng dụng có thể sẽ được chạy trên mạng di động 2G / 3G hoặc wi-fi tốc độ trung bình.

  • Các máy chủ ở gần khu vực test của chúng tôi và có thể có vấn đề khi các vùng sâu vùng xa hơn sẽ phải chịu đựng độ trễ và / hoặc mất gói tin.

  • Có thể là tường lửa của các nước nào đó đã can thiệp vào một số yêu cầu trong ứng dụng của chúng tôi.

Chúng tôi đã suy nghĩ đến một loạt các khả năng, nhưng chúng tôi không thể chắc chắn về nguyên nhân thực sự được nêu ra.

Tìm vấn đề thực sự

Trong số tất cả các khả năng trên, chúng ta phải tìm ra nguyên nhân thực sự của vấn đề hiệu suất này. Chúng tôi đã thông qua phương pháp loại bỏ để đi đến tận gốc rễ của nó.

Trước tiên, chúng tôi đã thử nghiệm trên các mạng di động 3G 2G và 3G. Người dùng của chúng tôi đã giúp chúng tôi rất nhiều trong việc này bằng cách thử nghiệm ở các vị trí khác nhau; Trong nhà, trong các thành phố, cũng như một số vùng sâu vùng xa. Hầu hết trong số họ có vẻ khá hài lòng với kết quả. Ở một số khu vực mà vùng phủ sóng mạng di động không được tốt, chúng tôi đã gặp một vài vấn đề. Nhìn chung, thời gian đáp ứng của ứng dụng là gần với giới hạn chấp nhận được.

Để loại trừ các vấn đề về độ trễ và mất gói, chúng tôi thiết lập các cuộc gọi với người dùng của chúng tôi ở mọi khu vực; Châu Phi, Châu Á, Úc, Châu u, Bắc và Nam Mỹ. Khi có kết quả, không có khu vực nào có bất kỳ vấn đề về hiệu suất, ngoại trừ một quốc gia, Rõ ràng là vấn đề của chúng tôi là cụ thể đối với tường lửa của nước đó.

Giải quyết vấn đề

  • Chúng tôi đã nói chuyện với các nhóm ThoughtWorks khác hỗ trợ các ứng dụng ở nước đó để hiểu cách họ xử lý các sự cố về hiệu suất ở đó. phát hiện ra rằng hầu hết các ứng dụng chỉ có thể sử dụng trong mạng văn phòng nội bộ, do đó, thiết lập trên thiết bị của họ không tương thích.

  • Chúng tôi bắt đầu thử nghiệm kết nối với ping tới ứng dụng từ khu vực đó. Thời gian hồi đáp rất tốt, điều này gây nhầm lẫn cho chúng tôi. Sau một số điều tra, chúng tôi đã biết được rằng tường lửa lọc lưu lượng tại lớp TCP. Ping gửi gói tin ICMP cấp thấp hơn (IP). Những thông qua tường lửa với sự chậm trễ rất ít hoặc không có. Điều này có nghĩa là chúng ta có thể sử dụng ping để kiểm tra một đường dẫn mạng đã tồn tại, nhưng không thể giả định rằng đường truyền sẽ nhanh chóng haythậm chí đường truyền có được cho phép không.

  • Sau đó chúng tôi thiết lập hai máy tính, một để chạy ứng dụng và một cho video máy tính khác, Chúng tôi đã kết nối máy tính video với một mạng riêng biệt từ máy tính ứng dụng để luồng video không can thiệp vào hiệu suất của ứng dụng. Điều này đặc biệt quan trọng khi thử nghiệm trên các mạng di động, nơi băng thông bị hạn chế.

  • Chúng tôi nghiên cứu lưu lượng mạng cho từng loại mạng; Wifi văn phòng-tư, wifi công cộng, và điện thoại di động 3G. Chúng tôi đã học được rằng điều quan trọng là thử nghiệm trên nhiều nhà cung cấp di động vì họ từng thực hiện blacklist của chính phủ theo cách riêng của họ.

Thay đổi nhỏ, tác động lớn

Tài khoản của Google đã bị chặn ở quốc gia này. Do đó, fonts.googleapis.com không thể truy cập được. Điều này có nghĩa là trang đợi cho đến khi yêu cầu hết thời gian (60 giây) trước khi tải phần còn lại của trang. Chúng tôi đã giảm nhẹ vấn đề bằng cách tải xuống các phông chữ ừ máy chủ của chúng tôi. Hiệu suất này được cải thiện rất nhiều.

Công cụ phân tích của chúng tôi không bị chặn, nó đã được tải xuống từ trang web của chính họ và trì hoãn việc tải các thành phần khác. Chúng tôi đã thực hiện hai cải tiến ở đây. Bây giờ chúng tôi phục vụ nó từ máy chủ của chúng tôi và chúng tôi làm như vậy song song với các thành phần khác để không trì hoãn việc tải.

Trước đây, thành phần tĩnh đã được minified nhưng không nén, làm chậm thời gian tải. bây giờ thực hiện nén trong máy chủ web của chúng tôi chỉ còn1/4 kích thước trước đây của chúng.

Sau khi thay đổi ở trên, thời gian hồi đáp của trang giảm xuống còn 3-5 giây tùy thuộc vào kết nối internet. Người dùng của chúng tôi đã rất hài lòng với thời loading. Chúng tôi tiếp tục kiểm tra với họ định kỳ để đảm bảo rằng không bỏ sót điều gì . Hơn nữa, trong khi phân tích các câu chuyện chúng tôi lưu ý những điểm quan trọng và thực hiện chúng theo cách mà người dùng của chúng tôi sẽ không phải đề cập những rắc rối này một lần nữa.

Và như vậy, chúng tôi đã học được …

  • Từ kinh nghiệm này, chúng tôi đã học cách xem xét vấn đề theo một chiều hướng hoàn toàn mới mà chúng tôi rõ ràng đã bỏ lỡ ngay từ đầu. Tùy thuộc vào nhu cầu của ứng dụng, phân tích và yêu cầu nên xem xét ngay từ đầu về địa lý có thể ảnh hưởng đến hiệu suất và các yêu cầu chức năng chéo khác.

  • User testing phải là một phần không thể tách rời của Vòng đời phát triển phần mềm. Khi thời gian trôi qua, chi phí sửa chữa có xu hướng ngày càng trở nên đắt đỏ.

  • Thử nghiệm trên mạng dữ liệu di động 2G, 3G và các mạng di động khác là điều cần thiết cho các ứng dụng dành cho thiết bị di động, đặc biệt ở những nơi người dùng sẽ sử dụng chúng.

Bài viết được dịch lại từ nguồn: https://www.thoughtworks.com/insights/blog/3-minutes-3-seconds


All Rights Reserved

Viblo
Let's register a Viblo Account to get more interesting posts.