Máy chủ proxy HTTP ở JMeter: Ghi lại kịch bản ví dụ

⚡ Tóm tắt thông minh

JMeter Máy chủ proxy HTTP ghi lại hoạt động của trình duyệt vào một kịch bản kiểm thử có thể tái sử dụng. Bộ ghi nằm giữa trình duyệt và trang web, thu thập từng yêu cầu vào Bộ điều khiển ghi và kế hoạch đã lưu được phát lại bởi nhiều người dùng ảo.

  • 🎬 Mục đích cốt lõi: Máy chủ proxy theo dõi và ghi lại hoạt động của người dùng trong khi trình duyệt thông thường điều hướng ứng dụng đang được kiểm thử.
  • 🧱 Bản phác thảo kế hoạch: Nhóm luồng (Thread Group), Cài đặt mặc định yêu cầu HTTP (HTTP Request Defaults) và Bộ điều khiển ghi (Recording Controller) được tạo trước khi quá trình ghi bắt đầu.
  • 🎯 Target Người điều khiển: Thiết lập này quyết định vị trí ghi các mẫu đã thu thập được bên trong cây kế hoạch kiểm thử.
  • 🌐 Thiết lập trình duyệt: Trình duyệt phải trỏ máy chủ proxy HTTP của nó đến... JMeter Cổng mặc định là 8888.
  • 🔐 Ghi hình HTTPS: Nhập ApacheJMeterHãy thiết lập TemporaryRootCA.crt làm cơ quan có thẩm quyền đáng tin cậy, sau đó xóa nó đi.
  • 🧹 Làm sạch kịch bản: Các yêu cầu quảng cáo và phân tích cũng được ghi lại và nên được loại trừ hoặc xóa bỏ.
  • 🔗 Đối chiếu trước khi chia tỷ lệ: Thay thế các mã thông báo phiên đã ghi bằng ví dụtraccác biến ted, hoặc quá trình phát lại thất bại.
  • ⚠️ Ghi chú phiên bản: WorkBench đã bị xóa bỏ. JMeter 5.0; thành phần này hiện là Trình ghi kịch bản kiểm thử HTTP(S).

JMeter kịch bản ghi máy chủ proxy HTTP

Là gì JMeter Máy chủ proxy HTTP?

JMeter Máy chủ proxy HTTP là một trình ghi tích hợp nằm giữa trình duyệt và trang web cần kiểm thử. Nó theo dõi và ghi lại hoạt động của người dùng trong khi ứng dụng được duyệt bình thường, và chuyển đổi mỗi yêu cầu được ghi lại thành một bộ lấy mẫu yêu cầu HTTP bên trong kế hoạch kiểm thử. Vì vậy, JMeter 3.0 Phần tử này đã được đặt tên là Trình ghi kịch bản kiểm thử HTTP(S)và cả hai tên gọi đều mô tả cùng một thành phần.

Kỷ lục thử nghiệm Giúp người kiểm thử ghi lại và phát lại hoạt động đối với mục tiêu kiểm thử. Đây là một loại kiểm thử tự động, nhưng dành cho nhiều người dùng cùng một lúc.

Tại sao nên thu âm thay vì viết kịch bản thủ công?

Hành trình người dùng thực tế trên một trang web hiện đại tạo ra hàng tá yêu cầu, mỗi yêu cầu đều có tiêu đề, cookie và tham số biểu mẫu riêng.ping Việc nhập tất cả dữ liệu đó vào bộ lấy mẫu bằng tay rất chậm và dễ xảy ra lỗi. Việc ghi âm thu lại chính xác lưu lượng truy cập mà trình duyệt gửi đi, mang lại ba ưu điểm:

  • Độ chính xác: Thứ tự tiêu đề, cookie và các trường biểu mẫu ẩn được ghi lại chính xác như khi máy chủ nhận được.
  • Tốc độ: Một hành trình dài mười trang chỉ mất vài phút để ghi âm nhưng lại mất hàng giờ để viết tay.
  • Độ phủ mi: Các lệnh gọi AJAX chạy ngầm, dù không hiển thị trên giao diện, vẫn xuất hiện trong bản ghi.

Bản ghi này chỉ là điểm khởi đầu chứ chưa phải là kết quả thử nghiệm hoàn chỉnh. Nó vẫn cần được làm sạch, hiệu chỉnh và thiết lập thông số trước khi có thể sử dụng được. kiểm tra tảiCác phần bên dưới bao gồm toàn bộ quy trình từ một đối tượng trống. JMeter cửa sổ đến một kịch bản được phát lại một cách đáng tin cậy.

Dưới đây là lộ trình ví dụ thực tế này

Máy chủ proxy HTTP ở JMeter

Cách ghi âm kịch bản bằng JMeter 5.x

Bản phát hành hiện tại là Apache JMeter 5.6.3, được phát hành vào ngày 9 tháng 1 năm 2024, và nó yêu cầu Java 8 trở lên, với Java Phiên bản 17 được khuyến nghị. Bất kỳ ai làm theo hướng dẫn minh họa ở cuối trang này về phiên bản đó sẽ không tìm thấy nút WorkBench, vì nó đã bị xóa trong phiên bản 5.0. Chức năng này không biến mất; nó chỉ được di chuyển. Trình ghi hiện được thêm trực tiếp vào Kế hoạch Kiểm thử và được gọi là Trình ghi Kịch bản Kiểm thử HTTP(S).

Phương án nhanh nhất là sử dụng mẫu có sẵn. Hãy chọn Tập tin > Templates > ghi âm và JMeter Công cụ này tạo ra một kế hoạch hoàn chỉnh bao gồm Nhóm luồng (Thread Group), Cài đặt mặc định yêu cầu HTTP (HTTP Request Defaults), Bộ điều khiển ghi (Recording Controller) và chính thiết bị ghi, đã được kết nối sẵn. Việc xây dựng cấu trúc tương tự bằng tay cần thực hiện các bước sau.

  1. Xây dựng khung sườn của kế hoạch. Thêm một Nhóm Luồng (Thread Group), sau đó thêm một Bộ Điều khiển Ghi (Recording Controller) bên dưới nhóm đó. Đây là nơi các mẫu âm thanh đã được ghi lại sẽ được lưu trữ.
  2. Thêm thiết bị ghi vào Kế hoạch Kiểm thử. Nhấp chuột phải vào nút Kế hoạch kiểm thử và chọn Thêm > Các yếu tố không kiểm tra > Trình ghi kịch bản kiểm thử HTTP(S)Nó là anh em ruột của Nhóm Chủ đề, chứ không phải là con của nó.
  3. Chọn cổng. Mặc định là 8888. Bất kỳ cổng nào còn trống đều hoạt động, miễn là trình duyệt được cấu hình phù hợp.
  4. Chọn Target Bộ điều khiển. Chọn Bộ điều khiển ghi được tạo ở bước một, để các yêu cầu được nhóm lại ở nơi bạn mong muốn thay vì bị phân tán ở thư mục gốc của kế hoạch.
  5. Thêm URL các mẫu loại trừ. Trên tab Lọc yêu cầu, hãy loại trừ các tài nguyên tĩnh có mẫu như sau: .*\.(bmp|css|js|gif|ico|jpe?g|png|svg|woff2?)Điều này giúp loại bỏ hầu hết các bước dọn dẹp thủ công được mô tả ở phần sau.
  6. Khởi động máy ghi âm. Nhấp chuột Bắt đầu ở phía trên cùng của bảng điều khiển máy ghi âm. JMeter Apache viếtJMeterTệp TemporaryRootCA.crt sẽ được chuyển vào thư mục bin của nó ngay lúc này, điều này giúp cho việc ghi hình HTTPS trở nên khả thi.
  7. Hướng trình duyệt đến máy chủ proxy Sử dụng localhost và cổng đã chọn, sau đó điều hướng ứng dụng như bình thường.
  8. Dừng lại và dọn dẹp. Nhấn nút Dừng, xóa mọi cuộc gọi từ bên thứ ba còn lại và lưu kế hoạch.
  9. Kiểm tra tính hợp lệ trước khi mở rộng quy mô. Nhấp chuột phải vào Nhóm luồng và chọn ValidateĐiều này giúp chạy kế hoạch một lần với một luồng duy nhất, do đó các lỗi sẽ xuất hiện trước khi bất kỳ tải nào được áp dụng.

Một thói quen nữa phân biệt một kịch bản hoạt động được với một kịch bản đáng tin cậy. Chỉ sử dụng giao diện đồ họa để xây dựng và gỡ lỗi, sau đó chạy thử nghiệm thực sự từ dòng lệnh với jmeter -n -t plan.jmx -l results.jtl -e -o report, lệnh này cũng tạo ra một bảng điều khiển HTML. Lệnh tương tự là cơ sở của kiểm thử phân tán trên nhiều máy phát điện tải. Việc lắp đặt được đề cập trong tài liệu này. JMeter hướng dẫn cài đặtvà toàn bộ quy trình được ghi lại trên tài liệu. Apache JMeter trang ghi âm.

⚠️ Lưu ý về phiên bản: Các ảnh chụp màn hình trong hướng dẫn bên dưới được chụp từ một máy tính cũ hơn. JMeter phiên bản đó vẫn còn nút WorkBench. WorkBench đã bị loại bỏ trong phiên bản trước đó. JMeter 5.0. Mọi khái niệm vẫn được áp dụng; chỉ có vị trí của thiết bị ghi âm thay đổi, và quy trình hiện tại vẫn là quy trình đã nêu ở trên.

Bước 1) Đặt máy chủ HTTP Proxy

Đây là hướng dẫn từng bước để thiết lập proxy

  1. Bắt đầu JMeter
  2. Chọn Kế hoạch kiểm tra trên cây
  3. Thêm Nhóm chủ đềNhấp chuột phải vào Kế hoạch kiểm tra và thêm một nhóm chủ đề mới: Thêm > Chủ đề (Người dùng) > Nhóm chủ đề

Đặt máy chủ Proxy HTTP

  1. Thêm Yêu cầu HTTPChọn Nhóm Luồng; nhấp chuột phải Thêm > Phần tử cấu hình > Yêu cầu HTTP mặc định

Đặt máy chủ Proxy HTTP

Trong phần tử Mặc định yêu cầu HTTP mới: Trong Tên máy chủ hoặc IP, hãy nhập “google.com”. Bạn nên để trống các trường khác

Đặt máy chủ Proxy HTTP

  1. Thêm Bộ điều khiển ghi âmNhấp chuột phải vào "Nhóm luồng" và thêm bộ điều khiển ghi: Thêm > Bộ điều khiển logic > Bộ điều khiển ghi âm

Đặt máy chủ Proxy HTTP

  1. Thêm Máy chủ proxy Vào WorkBench. Nhấp chuột phải vào Workbench và thêm proxy HTTP: Thêm > Các yếu tố không kiểm tra > Máy chủ proxy HTTP. Trên JMeter 5.x, nhấp chuột phải vào Kế hoạch kiểm tra thay vào đó hãy chọn nút Trình ghi kịch bản kiểm thử HTTP(S).

Đặt máy chủ Proxy HTTP

  1. Thiết lập Target Người điều khiển nơi các tập lệnh đã ghi của bạn sẽ được thêm vào

Đặt máy chủ Proxy HTTP

  1. Bắt đầu Máy chủ Proxy. Quay lại Máy chủ Proxy HTTP và nhấp vào Bắt đầu nút ở phía dưới. Bây giờ của bạn JMeter khởi động máy chủ proxy

Đặt máy chủ Proxy HTTP

  1. Khởi động trình duyệt của bạn (tôi đã sử dụng Firefox), chọn Công cụ > Tùy chọn > Nâng cao > mạng > Giàn cảnh > Nhập proxy HTTP như hình bên dưới. Hiện tại Firefox việc phát hành cùng một hộp thoại được truy cập thông qua Cài Đặt > Tổng quan > Thiết Lạp Mạng Lưới.

Đặt máy chủ Proxy HTTP

Bước 2) Ghi lại hoạt động của bạn

  1. Bây giờ khởi chạy http://www.google.com trong trình duyệt web của bạn (JMeter vẫn mở cửa)
  2. Các hoạt động có tìm kiếm từ khóa “guru99".
  3. Sao lưu để JMeter, trong Máy chủ proxy HTTP, hãy nhấp vào Dừng khi hoàn thành

Ghi lại hoạt động

  1. Sau khi ghi xong bạn sẽ thấy JMeter tự động tạo một yêu cầu HTTP mới như hình bên dưới

Ghi lại hoạt động

JMeter đã ghi lại yêu cầu của người dùng để Trang chủ of Google trang web. http://www.google.com/

Các yêu cầu HTTP khác hiển thị trong hình trên, bạn nên loại bỏ chúng. Bởi vì đôi khi JMeter Nó cũng ghi lại một số liên kết quảng cáo trong khi bạn tìm kiếm từ khóa. GoogleChúng ta nên bỏ qua chúng trong Kế hoạch Kiểm thử của mình.

  1. Nhấp vào Tệp > Lưu Kế hoạch Kiểm thử của bạn dưới dạng

Ghi lại hoạt động

  1. Một hộp thoại sẽ hiện ra > nhập tên kế hoạch kiểm thử của bạn vào trường Tên tệp > Nhấp vào Lưu. Giờ đây, kế hoạch kiểm thử của bạn đã được lưu với tên RecordingTestPlan.jmx

Ghi lại hoạt động

Bước 3) Chạy kế hoạch kiểm tra của bạn

  1. Chọn Nhóm luồng > Thêm > Trình lắng nghe > Báo cáo tóm tắt

Chạy kế hoạch kiểm tra

  1. Báo cáo Tóm tắt sẽ hiển thị một số số liệu thống kê cơ bản

Chạy kế hoạch kiểm tra

  1. Chọn Thread Group, nhập thông tin như hình bên dưới

Chạy kế hoạch kiểm tra

Bạn có thể tham khảo bài viết. JMeter Kiểm tra năng suất Để biết thêm chi tiết về cấu hình Nhóm luồng.

  1. Trước khi bắt đầu kiểm tra, hãy chọn “Báo cáo tóm tắt”. Khi bạn đã sẵn sàng chạy thử nghiệm, hãy chọn Chạy > Bắt đầu (Ctrl+R). JMeter Chương trình sẽ phát lại hoạt động của bạn 100 lần. Trong quá trình chạy thử nghiệm, số liệu thống kê sẽ thay đổi cho đến khi thử nghiệm hoàn tất.

Chạy kế hoạch kiểm tra

Bước 4) Lưu kết quả kiểm tra của bạn

  1. Nhấp chuột Lưu dữ liệu bảng để lưu kết quả kiểm tra vào tập tin

Lưu kết quả kiểm tra

  1. Nhập tên kết quả kiểm tra và nhấp vào Lưu. Kết quả kiểm tra trong JMeter được lưu ở định dạng *.csv làm mặc định

Lưu kết quả kiểm tra

Tải xuống Kế hoạch kiểm tra ghi tệp

Tải xuống tệp Máy chủ proxy HTTP

Ghi lại lưu lượng HTTPS và chứng chỉ

Hầu hết các trang web hiện nay đều sử dụng HTTPS, điều mà hướng dẫn ban đầu chưa làm được. Máy chủ proxy không thể đọc lưu lượng truy cập được mã hóa trừ khi trình duyệt tin tưởng nó, vì vậy cần thêm một bước nữa.

Khi máy ghi âm bắt đầu hoạt động, JMeter tạo chứng chỉ gốc tạm thời có tên ApacheJMeterTemporaryRootCA.crt trong thư mục bin của nó. Nhập tệp đó vào trình duyệt như một cơ quan cấp chứng chỉ đáng tin cậy, sau đó khởi động lại trình duyệt. JMeter Giờ đây, mỗi trang web có thể cung cấp chứng chỉ riêng và giải mã phiên để ghi lại.

Có ba điểm đáng lưu ý:

  • Giấy chứng nhận sẽ hết hạn sau bảy ngày. Đây là hành động cố ý. Hãy xóa nó đi và để JMeter Thay vì gia hạn hiệu lực, hãy tạo một phiên bản mới hoàn toàn.
  • Hãy tháo nó ra khi hoàn thành. Việc để lại chứng chỉ gốc đáng tin cậy được cài đặt trên một máy đang hoạt động là một rủi ro bảo mật thực sự, chứ không phải là rủi ro lý thuyết.
  • Một số ứng dụng từ chối điều đó. Các trang web sử dụng ghim chứng chỉ hoặc TLS hai chiều không thể được ghi lại thông qua máy chủ proxy, và thay vào đó, tập lệnh phải được xây dựng thủ công từ các công cụ dành cho nhà phát triển trình duyệt.

Tương quan: Biến kịch bản đã ghi âm thành bản phát lại được

Một kịch bản được ghi lại chỉ tái hiện chính xác những gì đã xảy ra một lần, điều hiếm khi xảy ra lần thứ hai. Các định danh phiên, mã thông báo và khóa được tạo ra được ghi lại trong quá trình ghi sẽ trở thành các giá trị không còn giá trị khi kịch bản được phát lại, và quá trình chạy sẽ thất bại theo những cách giống như lỗi ứng dụng.

Hệ số tương quan là giải pháp. A bộ xử lý hậu kỳ ví dụ như Biểu thức chính quytracTor hoặc JSON ExtracTor thu thập giá trị mới nhất từ ​​phản hồi đăng nhập, lưu trữ nó trong một biến, và các yêu cầu sau này sẽ tham chiếu đến biến đó thay vì giá trị được ghi lại.

Quy trình làm việc ngắn gọn:

  1. Chạy lại kịch bản một lần nữa với trình lắng nghe View Results Tree và tìm yêu cầu thất bại đầu tiên.
  2. So sánh yêu cầu bị lỗi với bản ghi. Bất kỳ giá trị nào khác nhau giữa hai lần chạy đều cần được đối chiếu.
  3. Thêm một ví dụtracTìm phản hồi tạo ra giá trị đó, sau đó thay thế giá trị cố định bằng tham chiếu biến.
  4. Thêm quả quyết Vì vậy, một trang trả về mã HTTP 200 kèm thông báo lỗi vẫn không vượt qua bài kiểm tra.

Chỉ sau khi có sự tương quan thì kịch bản mới an toàn để mở rộng quy mô. Việc chạy bản ghi không tương quan ở mức một trăm người dùng sẽ đo lường khả năng xử lý lỗi hơn là... hiệu suấtCác yếu tố khác sẽ được đề cập chi tiết hơn trong phần tiếp theo. JMeter hướng dẫn.

Xử lý sự cố

Nếu bạn gặp sự cố khi thực hiện kịch bản trên, hãy làm như sau:

  1. Kiểm tra xem bạn có đang kết nối Internet qua proxy hay không. Nếu có, hãy xóa proxy.
  2. Mở một phiên bản mới của JMeter.
  3. Mở RecordingTestPlan.jmx trong JMeter.
  4. Nhấp chuột phải vào Workbench > Hợp nhất > Chọn HTTP Proxy Server.jmx. JMeter 5.x, hãy hợp nhất vào nút Test Plan thay vì WorkBench, vì WorkBench không còn tồn tại nữa.
  5. Nhấp vào Nhóm chủ đề > Báo cáo tóm tắt.
  6. Chạy thử nghiệm.

Hai triệu chứng khác nữa là nguyên nhân gây ra hầu hết các lỗi còn lại. Nếu trình duyệt báo cáo rằng không thể kết nối, trình ghi chưa bao giờ được khởi động hoặc cổng được thiết lập trong trình duyệt không khớp với cổng được thiết lập trong JMeterNếu các trang tải bình thường nhưng không có gì hiển thị trong cây thư mục, thì lưu lượng truy cập là HTTPS và chứng chỉ chưa được nhập.

Câu Hỏi Thường Gặp

Nó đã bị gỡ bỏ vào JMeter 5.0. Các thành phần không phải kiểm thử, chẳng hạn như Trình ghi kịch bản kiểm thử HTTP(S), hiện được thêm trực tiếp vào nút Kế hoạch kiểm thử.

Thêm URL Các mẫu cần loại trừ nằm trên tab Lọc yêu cầu của trình ghi. Một mẫu bao gồm các phần mở rộng tệp tĩnh phổ biến sẽ loại bỏ hầu hết các nhiễu trước khi chúng đến được kịch bản.

Trí tuệ nhân tạo (AI) phân loại các mẫu âm thanh đã ghi thành các bước nghiệp vụ và nhiễu từ bên thứ ba, sau đó đề xuất những mẫu nào cần xóa và giá trị nào cần được đối chiếu, giúp chuyển đổi bản ghi thô thành kịch bản có thể sử dụng nhanh hơn.

Đúng vậy. Dựa vào nội dung phản hồi và giá trị cần thu thập, AI sẽ tạo ra một biểu thức chính quy hoặc cặp ranh giới. Hãy xác minh điều này trong Xem cây kết quả, vì một mẫu có thể khớp trong phản hồi này nhưng không khớp trong phản hồi khác.

Trình duyệt không tin tưởng JMeter proxy. Nhập ApacheJMeterTệp TemporaryRootCA.crt từ JMeter Thêm thư mục bin làm cơ quan có thẩm quyền đáng tin cậy, khởi động lại trình duyệt và ghi lại lần nữa.

Vâng. Hãy thiết lập proxy Wi-Fi của thiết bị thành địa chỉ IP và cổng của máy ghi âm, sau đó cài đặt phần mềm. JMeter chứng chỉ trên thiết bị. Các ứng dụng sử dụng ghim chứng chỉ vẫn không thể được ghi lại.

Không. Giao diện đồ họa chỉ dùng để xây dựng và gỡ lỗi. Hãy chạy thử nghiệm thực tế ở chế độ dòng lệnh, chế độ này sử dụng ít bộ nhớ hơn nhiều và tạo ra báo cáo HTML khi kết thúc.

Các kế hoạch kiểm thử được lưu dưới dạng .jmx, một định dạng XML hoạt động tốt trong hệ thống quản lý phiên bản. Kết quả được ghi dưới dạng .jtl, mặc định là CSV và cũng có thể được lưu trữ dưới dạng XML.

Tóm tắt bài viết này với: