Lần đầu làm performance test thì làm gì?

Mình tin chắc ai làm software test cũng suy nghĩ muốn làm dự án performance test nhưng khi dự án performance thật sự đến thì lại không biết bắt đầu từ đâu. Dưới đây là guide của mình.

  • Bạn phải biết mục tiêu của performance test là gì vì từ mục tiêu bạn sẽ xác định loại test mà bạn cần, từ loại test đó bạn sẽ xây dựng load profile để run test.
    • Khách hàng muốn biết performance hệ thống hiện tại là như thế nào? –> mình nên thực hiện capacity test (đây là thuật ngữ mình dùng, có thể ko match với những gì bạn biết về capacity test). Mình sẽ xây dựng các loại profile như 30CCU-15min, 50CCU-15min.
  • Ví dụ khách hàng có yêu cầu là product sẽ phục vụ 1000 users cùng lúc. Đây là 1 yêu cầu mơ hồ nên bạn phải tiếp tục nói chuyện với người đưa ra yêu cầu để có một yêu cầu cụ thể hơn, nhưng bạn có thể mường tượng được bạn sẽ phải làm load test.
  • Mục tiêu của performance test chỉ cho mình biết được thông tin đầu tiên. Tuy nhiên, nếu chỉ dựa vào cái yêu cầu chung chung mà chúng ta bắt tay vào tool luôn là sai 1 ly đi 1 dặm luôn đấy. Bước tiếp theo là chúng ta làm rõ yêu cầu của khách hàng. Hãy làm test plan với các mục sau đây:

Trong đó, quan trọng nhất là Detailed Non-Functional Requirement, nó gồm 2 mục chính:

  • Scenario mà sẽ test vì không có cái gọi là “performance của hệ thống” một cách chung chung. Performance của hệ thống sẽ luôn phụ thuộc vào scenario mà bạn thực hiện test, nếu bạn get homepage nó có thể run fast, tuy nhiên nếu bạn search, nó có thể run slow. Vậy bạn kết luận là hệ thống chạy nhanh hay chậm?
  • Expected result cho cái scenario đó. Ví dụ, với scenario get homepage, bạn expect sẽ support được 200 request/s và 95pct = 2s

Thế những cái thông tin khác thì sao, có gì phải chú ý nữa?

  • Bạn cũng phải cần biết scope để run test. Bạn có thể sẽ hỏi “chẳng phải là toàn bộ hệ thống sao?”. Nó không dễ thế bạn ơi, hệ thống của bạn có thể access vào các service hoặc hệ thống khác, bạn có chắc muốn test chung tất cả? Bạn cẩn thận nha, vì có thể service bên thứ 3 mà dự án bạn đang sử dụng nó là dạng sandbox (môi trường chuyên dùng để test), nó có thể giới hạn số lượng request hoặc cấm IP của bạn sau khi bạn run load test vì họ tưởng bạn đang tấn công DDOS hệ thống của họ. Thường thì với các TH như vậy, cách xử lý tốt nhất là bên dev giả lập các request sang service bên thứ 3, luôn trả default value và có response time tương đương với service đó.
  • Môi trường test sẽ phải build riêng biệt độc lập, chỉ phục vụ perf test mà thôi, rõ ràng bạn không muốn lúc bạn test, có ai đó tương tác với app và làm ảnh hưởng đến kết quả test. Và môi trường đó không được có bug functional với các step mà scenario đã định nghĩa, không ai muốn test khi system còn chưa hoàn thiện.
  • Bạn đã biết phải chọn scenario như thế nào chưa? Nó phụ thuộc vào 3 tiêu chí chính: common, critical, risk. Tất nhiên là khách hàng sẽ chẳng biết gì mấy đâu, bạn phải đưa ra các scenario sau đó đưa cho khách hàng chọn làm 1 hoặc 2 scenarios vì thường thời gian cho test không được dài, bạn có thể không có đủ thời gian để làm hết các scenario mà bạn nghĩ ra.
  • Sau khi thống nhất được scenario, bạn cần bắt tay vào build script ngay lập tức. Mục đích không phải là làm luôn perf test mà là kiểm tra xem có vấn đề nào mình chưa rõ khi build script không. Mình gặp rất nhiều TH mà estimate cho build script trong 4-8h, rồi khi làm thật mới thấy tech nó quá lằng nhằng, làm mấy ngày không xong, lại còn phải liên hệ bên này bên khác. Bạn build script ngay, bạn sẽ gặp issue sớm –> biết được risk và đưa ra thêm được các phương án.

Cái test plan ở trên vô cùng quan trọng, nó giúp bạn đi đúng hướng và bảo vệ bạn khỏi trouble sau này (nếu có). Hãy hoàn thành tất cả các mục trên, đảm bảo những người như Tech lead, PM, QA Manager, Customer đọc và ký tên.

Ấy ấy bạn ơi, sao không thấy bạn nhắc đến tool, làm script, run test hay phân tích kết quả?

Vì cái đó nói lâu lắm và các khóa học online, khóa học offine đều dạy hết. Tuy nhiên, chẳng ai dạy bạn tiếp cận với dự án thế nào, vậy nên mình viết bài này để cho bạn biết first step là gì và những gì cần phải chú ý.

Hãy đăng ký Khóa học performance test sử dụng JMeter nếu bạn sẵn sàng muốn tự tin làm dự án performance test ngay từ lần đầu tiên. Đừng lo, mình sẽ đồng hành cùng bạn. You’re not alone. =)))

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments