Tham số hóa, chức năng, giao dịch trong LoadRunner

Tập lệnh được ghi có thể mô phỏng người dùng ảo; tuy nhiên, chỉ ghi âm có thể không đủ để tái tạo “hành vi người dùng thực”.

Khi một tập lệnh được ghi lại, nó bao gồm một luồng đơn lẻ và thẳng thắn của ứng dụng chủ đề. Trong khi đó, người dùng thực có thể thực hiện nhiều lần lặp lại của bất kỳ quy trình nào trước khi đăng xuất. Độ trễ giữa các nút bấm (thời gian suy nghĩ) sẽ khác nhau tùy theo từng người. Rất có thể một số người dùng thực sự truy cập ứng dụng của bạn qua DSL và một số khác truy cập ứng dụng đó qua quay số. Vì vậy, để có được cảm giác thực sự của người dùng cuối, chúng tôi cần cải tiến các tập lệnh của mình sao cho khớp chính xác hoặc ít nhất là có hành vi rất gần với người dùng thực.

Trên đây là lưu ý quan trọng nhất khi tiến hành “Kiểm tra năng suất”, nhưng VU Script còn có nhiều điều hơn thế nữa. Làm cách nào để bạn đánh giá lượng thời gian chính xác mà VUser đã thực hiện khi SUL đang trải qua bài kiểm tra hiệu suất? Làm sao bạn biết được VUser đã vượt qua hay thất bại ở một thời điểm nhất định? Nguyên nhân đằng sau sự cố là gì, liệu một số quy trình phụ trợ có bị lỗi hay tài nguyên máy chủ bị hạn chế?

Chúng tôi cần cải thiện tập lệnh của mình để giúp trả lời tất cả các câu hỏi trên.

Sử dụng giao dịch

Giao dịch là cơ chế để đo thời gian phản hồi của máy chủ cho bất kỳ hoạt động nào. Nói một cách đơn giản, việc sử dụng "Giao dịch" giúp đo thời gian mà hệ thống thực hiện cho một yêu cầu cụ thể. Nó có thể nhỏ như một cú nhấp chuột vào nút hoặc một cuộc gọi AJAX khi mất tiêu điểm khỏi hộp văn bản.

Việc áp dụng các giao dịch rất đơn giản. Chỉ cần viết một dòng mã trước khi yêu cầu được gửi đến máy chủ và đóng giao dịch khi yêu cầu kết thúc. LoadRunner chỉ yêu cầu một chuỗi làm tên giao dịch.

Để mở một giao dịch, hãy sử dụng dòng mã này:

lr_start_transaction(“Transaction Name”);

Để đóng giao dịch, hãy sử dụng dòng mã này:

lr_end_transaction(“Transaction Name”, <status>);

Các cho LoadRunner biết giao dịch cụ thể này thành công hay không thành công. Các thông số có thể có có thể là:

  • LR_AUTO
  • LR_PASS
  • LR_FAIL

Ví dụ:

lr_end_transaction(“My_Login”, LR_AUTO);
lr_end_transaction(“001_Opening_Tên bảng điều khiển”, LR_PASS);
lr_end_transaction(“Business_Workflow_Tên giao dịch”, LR_FAIL);

Điểm cần lưu ý:

  • Đừng quên, bạn đang làm việc với “C” và đó là ngôn ngữ phân biệt chữ hoa chữ thường.
  • Ký tự dấu chấm (.) không được phép trong tên giao dịch, mặc dù bạn có thể sử dụng dấu cách và dấu gạch dưới.
  • Nếu bạn đã phân nhánh mã của mình tốt và thêm các điểm kiểm tra để xác minh phản hồi từ máy chủ, bạn có thể sử dụng xử lý lỗi tùy chỉnh, chẳng hạn như LR_PASS hoặc LR_FAIL. Nếu không, bạn có thể sử dụng LR_AUTO và LoadRunner sẽ tự động xử lý lỗi máy chủ (HTTP 500, 400, v.v.)
  • Khi áp dụng các giao dịch, đảm bảo không có thời gian suy nghĩ tuyên bố được kẹp giữa hoặc giao dịch của bạn sẽ luôn bao gồm giai đoạn đó.
  • Vì LoadRunner yêu cầu một chuỗi không đổi làm tên giao dịch nên một vấn đề phổ biến khi áp dụng giao dịch là chuỗi không khớp. Nếu bạn đặt tên khác khi mở và đóng giao dịch, bạn sẽ mắc ít nhất 2 lỗi. Vì giao dịch bạn mở chưa bao giờ bị đóng nên LoadRunner sẽ báo lỗi. Ngoài ra, giao dịch bạn đang cố đóng chưa bao giờ được mở, do đó dẫn đến lỗi.
  • Bạn có thể vận dụng trí thông minh của mình và trả lời cho mình rằng lỗi nào trong số trên sẽ được báo trước? Để xác thực câu trả lời của mình, tại sao bạn không tự mắc sai lầm? Nếu bạn trả lời đúng thì bạn đang đi đúng hướng. Nếu trả lời sai, bạn cần tập trung.
  • Vì LoadRunner tự động xử lý việc đồng bộ hóa các yêu cầu và phản hồi nên bạn sẽ không phải lo lắng về phản hồi khi áp dụng giao dịch.

Hiểu về thời gian suy nghĩ, điểm hẹn và nhận xét

Điểm hẹn

Điểm hẹn có nghĩa là “điểm hẹn”. Đây chỉ là một dòng lệnh yêu cầu LoadRunner giới thiệu tính năng đồng thời. Bạn chèn các điểm hẹn vào tập lệnh VUser để mô phỏng tải nặng của người dùng trên máy chủ.

Các điểm hẹn hướng dẫn VUser chờ trong quá trình thực hiện kiểm thử để nhiều VUser đến một điểm nhất định để họ có thể thực hiện đồng thời một nhiệm vụ. Ví dụ: để mô phỏng tải cao điểm trên máy chủ ngân hàng, bạn có thể chèn một điểm hẹn hướng dẫn 100 VUser gửi tiền mặt vào tài khoản của họ cùng một lúc. Điều này có thể đạt được dễ dàng bằng cách sử dụng rendezvous.

Nếu các điểm hẹn không được đặt đúng vị trí, VUser sẽ truy cập vào các phần khác nhau của ứng dụng – ngay cả đối với cùng một tập lệnh. Điều này là do mỗi VUser có thời gian phản hồi khác nhau và do đó rất ít người dùng bị tụt lại phía sau.

Cú pháp: lr_rendesvous(“Tên logic”);

Thực hành tốt nhất:

  • Đặt tiền tố điểm hẹn bằng “rdv_” để mã dễ đọc hơn; ví dụ: “rdv_Login”
  • Xóa mọi tuyên bố về thời gian suy nghĩ ngay lập tức
  • Áp dụng các điểm hẹn trong chế độ xem tập lệnh (sau khi ghi)

Điểm hẹn

Nhận xét

Thêm nhận xét để mô tả một hoạt động, một đoạn mã hoặc một dòng mã. Nhận xét giúp làm cho mã trở nên dễ hiểu đối với bất kỳ ai tham khảo mã đó trong tương lai. Họ cung cấp thông tin về hoạt động cụ thể và tách biệt hai phần để phân biệt.

Bạn có thể thêm ý kiến

  • Trong khi ghi (sử dụng công cụ)
  • Sau khi ghi âm (viết trực tiếp bằng code)

Cách thực hành tốt nhất: Đánh dấu mọi nhận xét ở đầu mỗi tệp tập lệnh

Chèn chức năng thông qua menu

Mặc dù bạn có thể trực tiếp viết các dòng mã đơn giản, bạn có thể cần một gợi ý để nhớ lại một hàm. Bạn cũng có thể sử dụng Steps Toolbox (được gọi là Insert Function trước phiên bản 12) để tìm và chèn bất kỳ hàm nào trực tiếp vào tập lệnh của bạn.

Bạn có thể tìm thấy Thanh công cụ Bước trong Xem àHộp công cụ Bước.

Chèn chức năng thông qua Menu

Điều này sẽ mở một cửa sổ bên, nhìn vào ảnh chụp nhanh:

Chèn chức năng thông qua Menu

Tham số hóa là gì?

A tham số trong VUGen là vùng chứa giá trị đã ghi được thay thế cho nhiều người dùng khác nhau.

Trong quá trình thực thi tập lệnh (trong VUGen hoặc Bộ điều khiển), giá trị từ nguồn bên ngoài (như .txt, XML hoặc cơ sở dữ liệu) sẽ thay thế giá trị trước đó của tham số.

Ví dụ: việc tham số hóa rất hữu ích trong việc gửi các giá trị động (hoặc duy nhất) đến máy chủ; một quy trình kinh doanh mong muốn chạy 10 lần lặp nhưng mỗi lần chọn tên người dùng duy nhất.

Nó cũng giúp kích thích hành vi giống như thật đối với hệ thống chủ đề. Hãy xem ví dụ dưới đây:

Ví dụ vấn đề:

Quy trình công việc chỉ hoạt động với ngày hiện tại đến từ máy chủ, do đó không thể được chuyển dưới dạng yêu cầu được mã hóa cứng.

Đôi khi, ứng dụng khách chuyển một ID duy nhất đến máy chủ (ví dụ: session_id) để quá trình tiếp tục (ngay cả đối với một người dùng) – Trong trường hợp như vậy, việc tham số hóa sẽ giúp ích.

Thông thường, ứng dụng khách duy trì bộ đệm dữ liệu được gửi đến và từ máy chủ. Kết quả là máy chủ không nhận được hành vi thực sự của người dùng (trong trường hợp máy chủ chạy thuật toán khác tùy thuộc vào tiêu chí tìm kiếm). Mặc dù tập lệnh VUser sẽ thực thi thành công nhưng số liệu thống kê hiệu suất được rút ra sẽ không có ý nghĩa. Việc sử dụng các dữ liệu khác nhau thông qua việc tham số hóa sẽ giúp mô phỏng hoạt động phía máy chủ (các quy trình, v.v.) và thực hiện hệ thống.

Ngày được mã hóa cứng trong VUser trong quá trình ghi có thể không còn hiệu lực khi ngày đó đã qua. Việc tham số hóa ngày cho phép thực thi VUser thành công bằng cách thay thế ngày được mã hóa cứng. Các trường hoặc yêu cầu như vậy là những ứng cử viên phù hợp cho việc tham số hóa.

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

Cài đặt thời gian chạy và tác động của chúng đến mô phỏng VU

Cài đặt thời gian chạy cũng quan trọng như Tập lệnh VUGen của bạn. Với các cấu hình khác nhau, bạn có thể có được các thiết kế thử nghiệm khác nhau. Đây là lý do tại sao bạn có thể nhận được kết quả không thể lặp lại nếu Cài đặt thời gian chạy không nhất quán. Hãy thảo luận từng thuộc tính một.

Chạy logic

Run Logic xác định số lần tất cả các hành động sẽ được thực thi, ngoại trừ vuser_init và vuser_end.

Có lẽ điều này làm rõ hơn lý do tại sao LoadRunner đề xuất giữ tất cả mã Đăng nhập trong vuser_init và phần Đăng xuất trong vuser_end, cả hai đều độc quyền.

Nếu bạn đã tạo nhiều hành động, giả sử Đăng nhập, Mở màn hình, Tính tiền thuê, Gửi tiền, Kiểm tra số dư và đăng xuất, thì kịch bản dưới đây sẽ diễn ra cho mỗi VUser:

Tất cả VUsers sẽ đăng nhập, thực hiện Mở màn hình, Tính tiền thuê, Gửi tiền, Kiểm tra số dư – sau đó – lại Mở màn hình, Tính tiền thuê…v.v. – lặp lại 10 lần – sau đó là đăng xuất (một lần).

Chạy logic

Đây là một cài đặt mạnh mẽ cho phép hành động giống người dùng thực hơn. Hãy nhớ rằng, người dùng thực không phải lúc nào cũng đăng nhập và đăng xuất - anh ta thường lặp lại các bước tương tự.

Bạn nhấp vào “hộp thư đến” bao nhiêu lần khi kiểm tra email trước khi đăng xuất?

Tạo nhịp

Cái này quan trọng. Hầu hết mọi người không thể hiểu được sự khác biệt giữa nhịp độ và thời gian suy nghĩ. Sự khác biệt duy nhất là, “Tốc độ đề cập đến độ trễ giữa các lần lặp” trong khi thời gian suy nghĩ là độ trễ giữa 2 bước bất kỳ.

Cài đặt được đề xuất tùy thuộc vào thiết kế thử nghiệm. Tuy nhiên, nếu bạn đang muốn tải mạnh, hãy cân nhắc chọn "Ngay khi lần lặp trước đó kết thúc"

Tạo nhịp

Khúc gỗ

Nhật ký (theo cách hiểu chung) là sổ sách ghi lại tất cả các sự kiện trong khi bạn chạy LoadRunner. Bạn có thể bật nhật ký để biết điều gì đang xảy ra giữa ứng dụng và máy chủ của mình.

LoadRunner cung cấp cơ chế ghi nhật ký mạnh mẽ, mạnh mẽ và có khả năng mở rộng. Nó cho phép bạn chỉ giữ “Nhật ký tiêu chuẩn” hoặc nhật ký mở rộng chi tiết, có thể định cấu hình hoặc vô hiệu hóa hoàn toàn.

Một nhật ký tiêu chuẩn có nhiều thông tin và dễ hiểu. Nó chứa lượng kiến ​​thức vừa đủ mà bạn thường sẽ yêu cầu khắc phục sự cố các tập lệnh VUser của mình.

Trong trường hợp Nhật ký mở rộng, tất cả thông tin nhật ký tiêu chuẩn là một tập hợp con. Ngoài ra, bạn có thể thay thế tham số. Điều này yêu cầu thành phần LoadRunner bao gồm thông tin đầy đủ về tất cả các tham số (từ tham số hóa) bao gồm các yêu cầu cũng như dữ liệu phản hồi.

Nếu bạn bao gồm “Dữ liệu được máy chủ trả về” thì nhật ký của bạn sẽ dài hơn. Điều này sẽ bao gồm tất cả HTML, thẻ, tài nguyên, thông tin phi tài nguyên được bao gồm ngay trong nhật ký. Tùy chọn này chỉ tốt nếu bạn cần khắc phục sự cố nghiêm trọng. Thông thường, điều này làm cho tệp nhật ký có kích thước rất lớn và không dễ hiểu.

Như bạn có thể đoán được, nếu bạn chọn "Advance Trace", tệp nhật ký của bạn sẽ rất lớn. Bạn phải thử. Bạn sẽ nhận thấy lượng thời gian mà VUGen mất cũng tăng lên đáng kể, mặc dù điều này sẽ không ảnh hưởng đến thời gian phản hồi giao dịch được VUGen báo cáo. Tuy nhiên, đây là thông tin rất nâng cao và có thể hữu ích nếu bạn hiểu ứng dụng chủ đề, giao tiếp giữa máy khách với máy chủ giữa ứng dụng và phần cứng của bạn cũng như các chi tiết về cấp độ giao thức. Thông thường, thông tin này về bản chất là không có giá trị vì nó đòi hỏi rất nhiều nỗ lực để hiểu và khắc phục sự cố.

Khúc gỗ

Lời khuyên:

  • Cho dù VUGen mất bao nhiêu thời gian khi bật nhật ký, nó cũng không ảnh hưởng đến thời gian phản hồi giao dịch. HP gọi hiện tượng này là “công nghệ tiên tiến”.
  • Vô hiệu hóa nhật ký nếu không cần thiết.
  • Tắt nhật ký khi bạn hoàn thành tập lệnh của mình. Việc bao gồm các tập lệnh đã bật tính năng ghi nhật ký sẽ khiến bộ điều khiển chạy chậm hơn và báo cáo các thông báo khó chịu.
  • Việc tắt nhật ký sẽ tăng dung lượng tối đa của số lượng người dùng mà bạn có thể mô phỏng từ LoadRunner.
  • Hãy cân nhắc việc sử dụng “Chỉ gửi tin nhắn khi xảy ra lỗi” – thao tác này sẽ tắt các thông báo thông tin không cần thiết và chỉ báo cáo các thông báo liên quan đến lỗi.

thời gian suy nghĩ

Think Time đơn giản là độ trễ giữa hai bước.

Think Time giúp tái tạo hành vi của người dùng vì không người dùng thực nào có thể sử dụng bất kỳ ứng dụng nào như máy (VUGen). VUGen tự động tạo ra thời gian suy nghĩ. Bạn vẫn có toàn quyền kiểm soát để loại bỏ, nhân lên hoặc dao động khoảng thời gian suy nghĩ.

Ví dụ: để hiểu thêm, người dùng có thể mở một màn hình (đó là phản hồi theo sau là yêu cầu) và sau đó cung cấp tên người dùng và mật khẩu trước khi nhấn enter. Tương tác tiếp theo của ứng dụng với máy chủ sẽ xảy ra khi anh ta nhấp vào “Đăng nhập”. Thời gian người dùng nhập tên người dùng và mật khẩu của mình là Think Time trong LoadRunner.

thời gian suy nghĩ

Nếu bạn đang tìm cách mô phỏng tải mạnh trên ứng dụng, hãy cân nhắc việc tắt hoàn toàn thời gian suy nghĩ.

Tuy nhiên, để mô phỏng hành vi giống thực tế, bạn có thể “Thời gian suy nghĩ ngẫu nhiên của người dùng” và đặt tỷ lệ phần trăm theo ý muốn.

Hãy cân nhắc việc sử dụng Giới hạn thời gian suy nghĩ trong một khoảng thời gian hợp pháp. Thông thường, 30 giây là đủ tốt.

Mô phỏng tốc độ

Mô phỏng tốc độ chỉ đề cập đến dung lượng băng thông cho mỗi máy khách.

Vì chúng tôi đang mô phỏng hàng nghìn VUser thông qua LoadRunner, thật ngạc nhiên khi LoadRunner đã thực hiện đơn giản như thế nào để kiểm soát mô phỏng băng thông/tốc độ mạng.

Nếu bạn là khách hàng truy cập ứng dụng của mình trên 128 Kbps, bạn có thể kiểm soát ứng dụng đó từ đây. Bạn sẽ được mô phỏng “hành vi giống như thật” để giúp có được số liệu thống kê hiệu suất phù hợp.

Mô phỏng tốc độ

Khuyến nghị tốt nhất là đặt thành Sử dụng băng thông tối đa. Điều này sẽ giúp loại bỏ mọi tắc nghẽn về hiệu suất liên quan đến mạng và tập trung vào mọi vấn đề tiềm ẩn trong ứng dụng trước tiên. Bạn luôn có thể chạy thử nghiệm nhiều lần để xem hành vi khác nhau trong các trường hợp khác nhau.

Mô phỏng trình duyệt

Trải nghiệm người dùng không phụ thuộc vào trình duyệt mà người dùng cuối đang sử dụng. Rõ ràng, điều này nằm ngoài phạm vi của các thước đo Hiệu suất. Tuy nhiên, bạn có thể chọn trình duyệt nào bạn muốn mô phỏng.

Mô phỏng trình duyệt

Bạn có thể tự trả lời chính xác khi nào thì việc chọn đúng trình duyệt trong cấu hình này thực sự quan trọng đối với bạn không?

Bạn sẽ sử dụng cấu hình này nếu ứng dụng của bạn là một ứng dụng web, trả về các phản hồi khác nhau cho các trình duyệt khác nhau. Ví dụ: bạn có thể xem các hình ảnh và nội dung khác nhau cho IE và Firefox và vv

Một thiết lập quan trọng khác là Simulate browser cache. Nếu bạn muốn đo thời gian phản hồi khi bộ nhớ đệm được bật, hãy chọn hộp này. Nếu bạn đang tìm kiếm tình huống xấu nhất, thì rõ ràng đây không phải là một cân nhắc.

Tải xuống các tài nguyên không phải HTML sẽ cho phép LoadRunner tải xuống mọi CSS, JS và đa phương tiện khác. Điều này nên được kiểm tra. Tuy nhiên, nếu bạn muốn loại bỏ điều này khỏi thiết kế kiểm tra hiệu suất của mình, bạn có thể bỏ chọn điều này.

Proxy

Tốt nhất là loại bỏ hoàn toàn proxy khỏi Môi trường thử nghiệm – điều này sẽ làm cho kết quả kiểm tra không đáng tin cậy. Tuy nhiên, bạn có thể phải đối mặt với những tình huống không thể tránh khỏi. Trong tình huống như vậy, LoadRunner sẽ hỗ trợ bạn cài đặt proxy.

Bạn sẽ làm việc (hoặc lẽ ra phải làm việc) với cài đặt Không có proxy. Bạn có thể lấy nó từ trình duyệt mặc định của bạn. Tuy nhiên, đừng quên kiểm tra xem trình duyệt nào được đặt thành mặc định và cấu hình proxy cho trình duyệt mặc định là gì.

Proxy

Nếu bạn đang sử dụng proxy và nó yêu cầu xác thực (hoặc tập lệnh) thì bạn có thể nhấp vào nút Xác thực dẫn đến một cửa sổ mới. Tham khảo ảnh chụp màn hình bên dưới.

Proxy

Sử dụng màn hình này để cung cấp tên người dùng và mật khẩu để được xác thực trên máy chủ proxy. Nhấn OK để đóng màn hình.

Chúc mừng. Bạn đã hoàn tất việc cấu hình tập lệnh VUGen của mình. Đừng quên định cấu hình nó cho tất cả các tập lệnh VUser của bạn.