Mối tương quan trong LoadRunner với ví dụ về Web_Reg_Save_Param

Tương quan là gì?

Tương quan, như tên cho thấy, là một cơ chế xác định mối quan hệ giữa hai biến hoặc thực thể. Một từ điển định nghĩa nó là “mối quan hệ thống kê giữa hai hoặc nhiều biến số sao cho những thay đổi mang tính hệ thống của biến kia đi kèm với những thay đổi mang tính hệ thống về giá trị của một biến”.

Tại sao chúng ta cần Tương quan?

Chúng ta hãy cùng tìm hiểu mối quan hệ tương hỗ qua tình huống sau.

Hãy xem xét bạn đang ghi một tập lệnh bằng LoadRunner.

Giao tiếp giữa máy khách và máy chủ

  1. Trong quá trình Ghi, máy khách gửi yêu cầu đến máy chủ để bắt đầu phiên
  2. Máy chủ nhận được yêu cầu và cấp phát ID phiên mới ABC
  3. Khách hàng lưu trữ id phiên ABC trong tập lệnh.
  4. Client bắt đầu phiên làm việc với ID ABC và gửi yêu cầu tới máy chủ để cho phép nó ghi lại
  5. Máy chủ nhận diện ID ABC và cho phép máy khách ghi lại script

Tương quan trong khi ghi

  1. Bây giờ, hãy nghiên cứu giao tiếp giữa máy khách và máy chủ trong quá trình phát lại
  2. Trong quá trình Phát lại, máy khách gửi yêu cầu đến máy chủ để bắt đầu phiên
  3. Máy chủ nhận được yêu cầu và phân bổ ID phiên mới XYZ
  4. Máy khách bắt đầu phiên với ID phiên đã ghi trước đó là ABC và gửi yêu cầu đến máy chủ để cho phép ghi lại
  5. Máy chủ không thể xác định ID ABC vì nó đang chờ ID XYZ mà nó đã phân bổ và phiên không thành công.

Tương quan trong khi phát lại

Chúng tôi cần một giải pháp để nắm bắt phân tích giá trị động được gửi trong thời gian chạy và trả lại giá trị này cho máy chủ. Đây là cách giao tiếp giữa máy khách và máy chủ với giải pháp này

  1. Trong quá trình Phát lại, máy khách gửi yêu cầu đến máy chủ để bắt đầu phiên
  2. Máy chủ nhận được yêu cầu và phân bổ ID phiên mới ZZZ
  3. Khách hàng phân tích id phiên mới này ZZZ từ yêu cầu.
  4. Khách hàng gửi yêu cầu bắt đầu phiên với id ZZZ
  5. Máy chủ nhận dạng ID ZZZ và cho phép máy khách phát lại tập lệnh

Chúng ta cần sự tương quan

Đây không là gì ngoài tương quan.

Nhấp chuột đây nếu video không thể truy cập được

Trong trường hợp VUGen, mối tương quan là mối quan hệ ràng buộc giữa phản hồi và bất kỳ yêu cầu nào trước đó.

Có nhiều tình huống khác nhau khi yêu cầu dựa trên phản hồi đã nhận trước đó từ máy chủ, chẳng hạn như ID phiên, ngày/giờ máy chủ được tìm nạp từ máy chủ. Các giá trị này khác nhau mỗi khi bạn chạy ứng dụng hoặc ghi lại tập lệnh. Rõ ràng, nếu việc thực thi tập lệnh phụ thuộc vào giá trị được máy chủ trả về, điều đó có nghĩa là bạn cần tìm một cơ chế để có thể “bắt” phản hồi của máy chủ và đính kèm các yêu cầu mà máy chủ mong đợi. Điều này thường được gọi là Tương quan trong LoadRunner.

Nói một cách đơn giản, giải pháp bằng cách sử dụng Tương quan là:

  1. Ghi lại giá trị đầu ra từ một bước
  2. Sử dụng giá trị đã ghi ở trên để làm đầu vào cho tất cả các bước tiếp theo

Mối tương quan được phân thành 2 loại trong VUGen/LoadRunner:

  • Tương quan tự động
  • Tương quan thủ công

Tương quan tự động

LoadRunner cung cấp một cơ chế để dễ dàng thực hiện tương quan một cách tự động.

VUGen sẽ yêu cầu bạn chạy tập lệnh đã ghi ít nhất hai lần để tập lệnh có thể so sánh nội bộ các giá trị khác nhau trong phản hồi của máy chủ.

Tương quan tự động có thể được phân thành 3 loại:

  • Tự động phát hiện mối tương quan
  • Tương quan dựa trên quy tắc
  • Tương quan tất cả các tuyên bố
Tên quy tắc Khi nào sử dụng
Tự động phát hiện mối tương quan Phát hiện và tương quan dữ liệu động cho các máy chủ ứng dụng được HP LoadRunner hỗ trợ
Dựa trên quy tắc Được sử dụng khi làm việc với máy chủ ứng dụng không được hỗ trợ đã biết ngữ cảnh.
Tương quan tất cả Giúp tương quan tất cả dữ liệu động theo kiểu mù.

Mặc dù Tương quan tự động có vẻ đơn giản hơn nhưng nó có thể dễ bị lỗi và hoạt động không quá 5% trường hợp. Luôn luôn nên sử dụng tương quan thủ công.

Để định cấu hình tương quan tự động tại thời điểm ghi, hãy thực hiện cấu hình bên dưới trong Cài đặt thời gian ghi sau khi tập lệnh được ghi.

Bấm vào Record =>Recording Options (hoặc bấm Ctrl +F7),

Tương quan tự động

Cửa sổ bên dưới sẽ mở ra:

Tương quan tự động

Bấm vào Tương quan =>Cấu hình - cửa sổ bên dưới sẽ mở ra.

Tương quan tự động

Tại đây, bạn cần đánh dấu là đã chọn đối với tất cả các ứng dụng (ASPNET), v.v., được sử dụng trong ứng dụng chủ đề của bạn. Ở phía bên phải, bạn có thể thấy các quy tắc sẽ phát hiện các ứng cử viên có thể có cho mối tương quan, ví dụ: _VIEWSTATE. Bạn cũng có thể thêm nhiều ứng dụng hoặc quy tắc tùy chỉnh bằng cách nhấp vào nút Quy tắc mới.

Bạn cũng có thể nhấp vào QUY TẮC, bạn sẽ thấy như dưới đây:

Tương quan tự động

Để Tự động tương quan hoạt động, bạn cần đảm bảo Quét quy tắc được đánh dấu là đã chọn. Nếu bạn nhấp vào tự động tương quan các giá trị được tìm thấy, VUGen sẽ không nhắc bạn lựa chọn sau khi tìm thấy ứng cử viên tương quan, thay vào đó, nó sẽ chỉ tương quan với chúng.

Chúng ta sẽ hiểu API được sử dụng để so sánh sau. Tuy nhiên, nên sử dụng so sánh HTML thay vì so sánh văn bản.

Sau khi chọn bất kỳ quy tắc nào, hãy nhấp vào nút OK để đóng cửa sổ.

Nhấp vào Tương quan tự độngtừ menu và VUGen sẽ tạo lại tập lệnh (không cần phải ghi) với cấu hình mới. VUGen sẽ tự động thêm một đoạn mã cần thiết để xử lý mối tương quan. Chúng ta sẽ xem xét mẫu chi tiết hơn trong Tương quan thủ công.

Xin lưu ý, nếu bạn thực hiện tương quan theo cách thủ công hoặc sử dụng tương quan tự động, đoạn mã sẽ chứa cú pháp và chức năng giống hệt nhau.

Các bước để tự động tương quan một tập lệnh:

  1. Ghi lại một kịch bản
  2. Phát lại kịch bản
  3. Xác định các giá trị tương quan
  4. Chọn các giá trị và nhấp vào nút tự động tương quan
  5. Xác minh tập lệnh bằng cách chạy lại. Chạy thành công có nghĩa là tương quan thành công.

Mẹo:

  • Tương quan giúp chạy tập lệnh của bạn với các giá trị khác nhau
  • Tương quan cũng làm giảm kích thước tập lệnh của bạn

Tương quan thủ công

Tương quan thủ công là viết mã trực tiếp vào tập lệnh của bạn để đáp ứng các giá trị luôn thay đổi. Chúng ta có thể chia nó thành các bước dưới đây:

  1. Xác định giá trị cần nắm bắt
  2. Tìm ranh giới văn bản bên phải và bên trái của giá trị cần nắm bắt (WEB)
  3. Tìm sự xuất hiện của ranh giới văn bản nên được sử dụng
  4. Thêm hàm web_reg_save_param vào tập lệnh, phía trên đoạn mã yêu cầu trang có giá trị cần nắm bắt
  5. Thêm tên tham số, ranh giới bên trái, ranh giới bên phải và lần xuất hiện của hàm
  6. Tham số hóa giá trị động trong tập lệnh mỗi khi nó xảy ra
  7. Xác minh việc thực hiện đúng
web_reg_save_param (" OracleAppJSESSIONID3",
	"LB/IC=JSESSIONID=",
	"RB/IC=;",
	"Ord=l",
	"Search=headers",
	"RelFrameId=l",
	LAST);

web_reg_save_param("Siebel_Analytic_ViewState2",
	"LB/IC=ViewState\" value=\"",
	"RB/IC=\"",
	"Ord=1",
	"Search=Body",
	"RelFrameId=l",
	LAST);

Tương quan thủ công có thể được thực hiện bằng cách so sánh VUser. Các bước trong phương pháp So sánh Tương quan của VUser có thể được chia ra như sau:

  1. Xác định các giá trị Động cần tương quan
  2. Tìm phản hồi của Máy chủ chứa giá trị Động
  3. Nắm bắt giá trị Động trong một tham số
  4. Thay thế mỗi lần xuất hiện của giá trị Động bằng tham số
  5. Xác minh thay đổi

Hiểu chức năng Web_reg_save_param

VUGen cung cấp nhiều chức năng hoặc API để tương quan với các ứng viên, bao gồm:

  • web_reg_save_param
  • web_reg_save_param_ex
  • web_reg_save_param_regexp
  • web_reg_save_param_xpath

Trong khi phần giới thiệu ngắn gọn được cung cấp ở đây, để hiểu chi tiết về các hàm và tham số của chúng, hãy mở VUGen, viết hàm (hoặc sử dụng Steps Toolbox), di chuyển con trỏ trên hàm và nhấp vào F1 – hãy làm quen với trợ giúp của VUGen và tạo thói quen. Bạn sẽ phải xử lý nó rất nhiều khi làm việc trong ngành.

Sau đây là chi tiết về chức năng:

web_reg_save_param(Tên tham số, ranh giới bên trái, ranh giới bên phải)

Danh sách thuộc tính

Đổi: Các giá trị có thể là:

HTML_TO_URL: chuyển đổi dữ liệu được mã hóa HTML sang định dạng dữ liệu được mã hóa URL

HTML_TO_TEXT: chuyển đổi dữ liệu được mã hóa HTML sang định dạng văn bản thuần túy; thuộc tính này là tùy chọn.

Bỏ qua chuyển hướng: Nếu “Bỏ qua chuyển hướng=Có” được chỉ định và phản hồi của máy chủ là thông tin chuyển hướng (mã trạng thái HTTP 300-303, 307), thì phản hồi sẽ không được tìm kiếm. Thay vào đó, sau khi nhận được phản hồi chuyển hướng, yêu cầu GET sẽ được gửi đến vị trí được chuyển hướng và việc tìm kiếm được thực hiện dựa trên phản hồi từ vị trí đó.

Thuộc tính này là tùy chọn. Mặc định là “Bỏ qua chuyển hướng=Không”.

LB: Ranh giới bên trái của tham số hoặc dữ liệu động. Nếu bạn không chỉ định giá trị LB, nó sẽ sử dụng tất cả các ký tự từ đầu dữ liệu làm ranh giới. Các tham số ranh giới có phân biệt chữ hoa chữ thường. Để tùy chỉnh thêm văn bản tìm kiếm, hãy sử dụng một hoặc nhiều cờ văn bản. Thuộc tính này là bắt buộc. Xem phần Đối số ranh giới.

KHÔNG TÌM THẤY: Tùy chọn xử lý khi không tìm thấy ranh giới và tạo ra một chuỗi trống.

“Không tìm thấy=lỗi”, giá trị mặc định, gây ra lỗi khi không tìm thấy ranh giới.

“Không tìm thấy=cảnh báo” (“Không tìm thấy=trống” trong các phiên bản trước), không gây ra lỗi. Nếu không tìm thấy ranh giới, nó sẽ đặt số lượng tham số thành 0 và tiếp tục thực thi tập lệnh. Tùy chọn “cảnh báo” là lý tưởng nếu bạn muốn xem liệu chuỗi có được tìm thấy hay không nhưng bạn không muốn tập lệnh bị lỗi.

Lưu ý: Nếu bật Tiếp tục khi có lỗi cho tập lệnh thì ngay cả khi NOTFOUND được đặt thành “lỗi”, tập lệnh vẫn tiếp tục khi không tìm thấy ranh giới nhưng thông báo lỗi được ghi vào tệp nhật ký mở rộng.

Thuộc tính này cũng là tùy chọn.

ORD: Cho biết vị trí thứ tự hoặc trường hợp của trận đấu. Phiên bản mặc định là 1. Nếu bạn chỉ định “Tất cả”, nó sẽ lưu các giá trị tham số trong một mảng. Thuộc tính này là tùy chọn.

Lưu ý: Việc sử dụng Instance thay vì ORD được hỗ trợ để tương thích ngược nhưng không được dùng nữa.

RB: Ranh giới bên phải của tham số hoặc dữ liệu động. Nếu bạn không chỉ định giá trị RB, nó sẽ sử dụng tất cả các ký tự cho đến hết dữ liệu làm ranh giới. Các tham số ranh giới có phân biệt chữ hoa chữ thường. Để tùy chỉnh thêm văn bản tìm kiếm, hãy sử dụng một hoặc nhiều cờ văn bản. Thuộc tính này là bắt buộc. Xem phần Đối số ranh giới.

RelFrameID: Cấp độ phân cấp của trang HTML so với URL được yêu cầu. Các giá trị có thể là TẤT CẢ hoặc một số. Nhấp vào Thuộc tính RelFrameID để xem mô tả chi tiết. Thuộc tính này là tùy chọn.

Lưu ý: RelFrameID không được hỗ trợ trong các tập lệnh cấp GUI.

LưuLen: Độ dài của chuỗi con của giá trị tìm thấy, tính từ offset đã chỉ định, để lưu vào tham số. Thuộc tính này là tùy chọn. Giá trị mặc định là -1, biểu thị lưu vào cuối chuỗi.

LưuGiảm giá: Độ lệch của chuỗi con của giá trị tìm thấy, để lưu vào tham số. Giá trị offset phải không âm. Giá trị mặc định là 0. Thuộc tính này là tùy chọn.

Tìm kiếm: Phạm vi tìm kiếm-nơi tìm kiếm dữ liệu được phân tách. Các giá trị có thể là Tiêu đề (Chỉ tìm kiếm phần tiêu đề), Nội dung (chỉ tìm kiếm dữ liệu nội dung, không phải tiêu đề), Không có tài nguyên (chỉ tìm kiếm nội dung HTML, loại trừ tất cả các tiêu đề và tài nguyên) hoặc TẤT CẢ CÁC (nội dung tìm kiếm, tiêu đề và tài nguyên). Giá trị mặc định là TẤT CẢ. Thuộc tính này là tùy chọn nhưng thường được ưa thích.