Quan Nguyen
cd~ / about / tags / poem / rss /
Tổng hợp vài thứ hay hay về Performance Test
Tổng hợp từ nhiều nguồn.
Humm…!
Chắc anh em cũng biết, tôi xuất thân từ con nhà nông, ra ngoài đời làm công
việc dọn vệ sinh
,
Mà tại sao tôi lại viết về Performance Test
. Thật ra hồi còn làm ở công ty Y, bắt buộc phải có các metrics về
performance test
mà team lại thiếu người làm nên tôi bị bếch đi nghiên cứu rồi làm đấy. Nên ở nơi đây tôi sẽ chia sẻ niềm đau của mình
cho anh em
Performance test là gì?
Mục đích: Để xác định hoặc xác thực tốc độ, khả năng mở rộng và/hoặc độ tin cậy của hệ thống.
Notes: Một performance test là một kĩ thuật test để xác định hoặc xác thực các đặc trưng về khả năng đáp ứng, tốc độ, khả năng mở rộng và/hoặc độc tin cậy của hệ thống dưới dạng test.
Đủ các thể loại Performance test
Một số loại performace test thường dùng.
Loại | Mục đích | Chi Tiết |
---|---|---|
Load test | Để xác thực hệ hành vi của hệ thông dưới các diều kiện tải bình thường và cao điểm |
|
Stress test | Để xác định hoặc xác thực hành vi hệ thống khi bị đấy ra ngoài điều kiện tải bình thường và cao điểm |
|
Capacity test | Để xác định bao nhiêu user hoặc transations của hệ thống nhất định hỗ trợ nhưng vẫn đáp ứng được mục tiêu hiệu suất |
|
Performance test metrics
Response time
Component response times
Resource utilization’s
Volumes, capacities and rates
Trends
Cần chuẩn bị nhưng gì?
Identify the Test Environment
. Xác định môi trường vật lý cho việc test và môi trường prod cũng như tools và tài nguyên sẵn có đến nhóm test. Môi trường vật lý bao gồm phần cứng, phần mềm, và cấu hình network. Có hiểu biết về môi trường test cho phép lên kế hoạch và thiết kế một cách hiệu quả hơn và giúp xác định sớm các vấn đề của project. Trong một số tình huống, process này cần được xem lại trong toàn bộ vòng đời của dự án.Identify Performance Acceptance Criteria
. Xác định response time, throughput, và các mục tiêu và ràng buộc về tài nguyên. Nói chung, response time là một user concern. throughput lag một business concern và resource là system concern. Chú ý rằng việc test có thể không đáp ứng được mục tiêu.Plan and Design Test
: Xác định các kịch bản chính, xác định sự thay đổi của người dùng đại diện (CCU) và làm thế nào để mô phỏng sự thay đổi đó, định nghĩa dữ liệu test và thiết lập các metrics cần thu thập. Thống nhất lại các thông tin thành một hoặc nhiều mô hình của hệ thống sử dụng để thực thi và phân tích.Config the Test Environment
. Chuẩn bị môi trường test , tools, và các tài nguyên cần thiết để thực thi mỗi kịch bản (hay chiến lược) như tính năng và các thành phần có sẵn để test. Đảm bảo rằng môi trường test là công cụ để giám sát tài nguyên là cần thiết.Implement the Testing Design
. Phát triển các bài kiểm tra hiệu suất phù hợp với thiết kế kiểm tra.Execute the Test
. Chạy và giám sát các bài kiểm tra của bạn. Xác thực các thử nghiệm, dữ liệu thử nghiệm và thu thập kết quả. Thực hiện các thử nghiệm đã được xác thực để phân tích trong khi theo dõi thử nghiệm và môi trường thử nghiệm.Analyze Results, Report and Retest
Công Thức tính Performance test
Một số metrics chủ yếu và công thức tính cần quan tâm khi thực hiện performance testing.
Quy ước:
Values
là tập thời gian phản hồi của từng request,
C
là số lượng request xử lý
T
là tổng thời gian xử lý request
S
là tổng số request success
E
là tổng số request error
Công thức này được tìm được ở K6
Metrics | Formula | Notes |
---|---|---|
Response Time | T | Là thời gian phản hồi của hệ thống từ lúc VUs gửi request tới lúc nhận được phản hồi. |
Min | min(values) | Là thời gian phải hồi nhỏ nhất trong tập thời gian phản hồi |
Avg | T / C | Thời gian phản hồi trung bình |
Med |
|
median time of values |
P(n) |
|
Percentile là một phép do về mặt thống kê. cho biết n phân trăm response time tốt hơn hoặc bằng giá trị tính toán được.
|
Request | C | Tổng số request được tạo trong T time |
TPS | C / T | Số request xử lý được trong 1s |
Successes | S * 100 / C | Tỉ lệ phần trăm success response trên tổng số request |
Errors | E * 100 / C | Tỉ lệ phần trăm error response trên tổng số request |
Một vài cách đánh giá về hệ thống sau khi thực hiện xong Performance test
Một cách tiếp cận để xác định có hệ thống có chạy ổn định hay không để hợp nhất các số liệu là chạy ít nhất một kịch bản 5 lần và áp dụng các quy tắc bên dưới.
Nếu nhiều hơn
20%
hoặc một trong5 lần
chạy có kết quả thực thi có vẻ không giống với phần còn lại thì thường có gì đó không ổn với môi trường thử nghiệm, ứng dụng hoặc bản thân ứng dụng test.Nếu mỗi thời gian trong 1 lần thử nghiệm cao hơn hoặc thấp hơn đáng kể trên biểu đồ so với kết quả của tất cả các lần thực thi trong những lần khác thì nó không đúng về mặt thống kê, suy ra hệ thống có vấn đề.
Nếu 1 giá trị
P95
của bất kì việc thực thi test nào lớn hơn giá trị lớn nhất hoặc nhỏ hơn giá trị nhỏ nhất của bất kì kịch bản test nào thì nó không đúng về mặt thống kê.Nếu thời gian duy nhất trong quá trình thực thi test cao hơn hoặc thấp hơn đáng kể trên biểu đồ so với tất cả các kết quả còn lại của quá trình thực thi kiểm tra, nhưng kết quả cho thấy tất cả thời gian còn lại trong quá trình thực thi kiểm tra đó thì không.
Report
Dưới đây là dữ liệu được báo cáo thường xuyên nhất:
- End user response times
Considerations
- Loại bỏ các ngoại lệ trước khi báo cáo
+ Đảm bảo các dữ liệu thống kê được báo cáo rõ ràng. Ví dụ về sự khác nhau giữa P90 và giá trị trung bình (avg) cho
thấy vấn đề của hệ thống.
* Báo cáo các giá trị ngoại lệ được bỏ qua
- Resource utilizations
Các báo cáo về tài nguyên phần cứng được báo cáo về lời nói hoặc tường thuật
Additional Considerations
- Biết khi nào báo cáo tất cả dữ liệu, khi nào cần tóm tắt. Thông thường để đơn giản chỉ cần báo cáo giá trị đạt
đỉnh khi monitor.
Volumes, capacities and rates
Component response times
Trends
Các câu hỏi cần được trả lời sau khi thực thiện performance test
All Roles
Is performance getting better or worse?
Have we met the requirements/service level agreements (SLAs)?
What reports are available?
How frequently can I get reports?
Can I get a report with more/less detail?
Executive Stakeholders
Is this ready to ship?
How will these results relate to production?
How much confidence should I have in these results?
What needs to be done to get this ready to ship?
Is the performance testing proceeding as anticipated?
Is the performance testing adding value?
Project - Level Managers
Are performance issues being detected efficiently?
Are performance issues being resolved efficiently?
What performance testing should we be conducting that we currently are not?
What performance testing are we currently doing that is not adding value?
Are there currently any blockers? If so, what are they?
Technical Team Members
What do these results mean to my specialty/focus area?
Where can I go to see the results for the last test?
Where can I go to get the raw data?
Can you capture metric X during the next test run?
What does the report need?
Raw data display
Baseline
Benchmark
Scalability
Any other user-experience-based test
Data storage
Spreadsheets
Text files
Data collection tool
Technical Reports
Description of the test, including workload model and test environment
Easily digestible data with minimal pre-processing
Access to the complete data set and test conditions
Short statements of observations, concerns, questions, and requests for collaboration
Include:
Scatter plots
Pareto charts
Trend charts
Summary spreadsheets
Cuối cùng thì…!
Thành thật là performance test khá là hay, có thể sẽ giúp anh em tăng lương đấy
Copyright © 2021- 🚀 Quan Nguyen