Một tập lệnh được ghi có thể mô phỏng một người dùng ảo; tuy nhiên, một bản ghi đơn thuần có thể không đủ để tái tạo “hành vi thực của người dùng”.
Khi một tập lệnh được ghi lại, nó sẽ bao hàm luồng đơn và thẳng 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 bất kỳ quy trình nào trước khi đăng xuất. Độ trễ giữa các lần nhấp vào các nút (thời gian nghĩ) sẽ khác nhau ở mỗi người. Rất có thể một số người dùng thực truy cập ứng dụng của bạn qua DSL và một số 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 thiện các tập lệnh của mình để phù hợp chính xác hoặc ít nhất là rất gần về hành vi với người dùng thực.
Trên đây là điều cần cân nhắc nhất khi tiến hành “Kiểm tra hiệu suất”, nhưng còn nhiều điều hơn nữa đối với Tập lệnh VU. Bạn sẽ đánh giá khoảng thời gian chính xác của VUser như thế nào khi SUL đang trải qua bài kiểm tra hiệu suất? Làm thế nào bạn biết nếu VUser đã vượt qua hoặc thất bại tại một số điểm nhất định? Nguyên nhân đằng sau lỗi là gì, liệu một số quá trình phụ trợ bị lỗi hay tài nguyên máy chủ bị hạn chế?
Chúng tôi cần cải tiế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
- Hiểu thời gian suy nghĩ, điểm hẹn và nhận xét
- Chèn các hàm thông qua menu
- Tham số hóa là gì?
- Cài đặt thời gian chạy và tác động của chúng đối với mô phỏng VU
- Chạy logic
- Nhịp độ
- Nhật ký
- Suy nghĩ về thời gian
- Mô phỏng tốc độ
- Mô phỏng trình duyệt
- Ủy quyền
Sử dụng Giao dịch
Giao dịch là cơ học để đo thời gian phản hồi của máy chủ cho bất kỳ hoạt động nào. Nói cách đơn giản, việc sử dụng "Giao dịch" giúp đo thời gian hệ thống thực hiện cho một yêu cầu cụ thể. Nó có thể nhỏ bằng một cú nhấp chuột hoặc một lệnh gọi AJAX khi mất tiêu điểm từ 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 (“Tên giao dịch”);
Để đóng giao dịch, hãy sử dụng dòng mã sau:
lr_end_transaction (“Tên giao dịch”,);
cho LoadRunner biết liệu giao dịch cụ thể này thành công hay không thành công. Các thông số khả thi có thể là:
- LR_AUTO
- LR_PASS
- LR_FAIL
Thí dụ:
lr_end_transaction (“My_Login”, LR_AUTO);
lr_end_transaction (“001_Opening_Dashboard Tê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à một 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 tốt mã của mình 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, hãy đảm bảo không có câu lệnh think_time nào bị kẹp hoặc nếu không thì giao dịch của bạn sẽ luôn bao gồm khoảng thời gian đó.
- Vì LoadRunner yêu cầu một chuỗi không đổi làm tên giao dịch, 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 một tên khác khi mở và đóng một 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ẽ dẫn đến lỗi. Bên cạnh đó, giao dịch bạn đang cố gắng đóng chưa bao giờ được mở, do đó dẫn đến lỗi.
- Bạn có thể sử dụng trí thông minh của mình và tự trả lời cho mình lỗi nào ở trên sẽ được báo cáo trước không? Để xác thực câu trả lời của bạn, tại sao không mắc lỗi của riêng bạn? Nếu bạn đã trả lời đúng, bạn đang đi đúng hướng. Nếu bạn trả lời sai, bạn cần phải tập trung.
- Vì LoadRunner tự động đảm nhận việc đồng bộ hóa các yêu cầu và phản hồi, bạn sẽ không phải lo lắng về phản hồi khi áp dụng các giao dịch.
Hiểu 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 gặp gỡ". Nó chỉ là một dòng câu lệnh yêu cầu LoadRunner giới thiệu đồ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ủ.
Điểm hẹn hướng dẫn VUser đợi trong khi thực hiện kiểm tra để 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 điểm hẹn.
Nếu các điểm hẹn không được đặt đúng vị trí, VUser sẽ truy cập 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 đó có rất ít người dùng bị tụt lại phía sau.
Cú pháp: lr_rendesvous (“Tên lôgic”);
Thực hành tốt nhất:
- Bắt đầu điểm hẹn bằng “rdv_” để có thể đọc mã tốt 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 kịch bản (sau khi ghi)
Bình luận
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ã dễ hiểu đối với bất kỳ ai đề cập đến nó trong tương lai. Chúng 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 (viết trực tiếp bằng mã)
Phương pháp hay nhất: Đánh dấu bất kỳ nhận xét nào trên đầu mỗi tệp script
Chèn các hàm thông qua menu
Trong khi bạn có thể viết trực tiếp các dòng mã đơn giản, bạn có thể cần một manh mối để gọi lại một hàm. Bạn cũng có thể sử dụng Hộp công cụ bước (được gọi là Chèn hàm trước phiên bản 12) để tìm và chèn trực tiếp bất kỳ hàm nào vào tập lệnh của mình.
Bạn có thể tìm thấy Steps Toolbar trong View àSteps Toolbox.
Thao tác này sẽ mở ra một cửa sổ bên, hãy nhìn vào ảnh chụp nhanh:
Tham số hóa là gì?
Một tham số trong VUGen là một vùng chứa chứa một giá trị được ghi lại đượ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) thay thế giá trị trước đó của tham số.
Ví dụ: tham số hóa 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 được mong muốn chạy 10 lần lặp lại nhưng luô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ủ thể. Hãy xem ví dụ dưới đây:
Ví dụ vấn đề:
Quy trình nghiệp vụ chỉ hoạt động cho 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 mã 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 này, tham số hóa sẽ hữu ích.
Thông thường, ứng dụng khách duy trì một bộ nhớ cache dữ liệu được gửi đến và từ máy chủ. Do đó, máy chủ không nhận được hành vi của người dùng thực (trong trường hợp máy chủ chạy các thuật toán khác nhau tùy thuộc vào tiêu chí tìm kiếm). Trong khi tập lệnh VUser sẽ thực thi thành công, các thống kê hiệu suất được rút ra sẽ không có ý nghĩa. Sử dụng dữ liệu khác nhau thông qua tham số hóa giúp mô phỏng hoạt động phía máy chủ (thủ tục, 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 giá trị khi ngày đó đã trôi qua. Việc tham số hóa ngày tháng 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à ứng cử viên thích hợp cho tham số hóa.
Bấm vào đâ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 đối với mô phỏng VU
Cài đặt thời gian chạy có ý nghĩa 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ử như Đă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ì tình huống dưới đây sẽ diễn ra cho từng 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 đó - một lần nữa Mở màn hình, Tính tiền cho thuê… và cứ thế - lặp lại 10 lần - tiếp theo là đăng xuất (một lần).
Đây là một cài đặt mạnh mẽ cho phép hoạt động giống một người dùng thực hơn. Hãy nhớ rằng, người dùng thực không đăng nhập và đăng xuất mọi lúc - 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?
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 nhau giữa nhịp độ và thời gian suy nghĩ. Sự khác biệt duy nhất là, "nhịp độ đề cập đến độ trễ giữa các lần lặp lại" trong khi nghĩ rằng thời gian là độ trễ giữa 2 bước bất kỳ.
Cài đặt khuyến nghị phụ thuộc vào thiết kế thử nghiệm. Tuy nhiên, nếu bạn đang muốn có tải tích cực, hãy cân nhắc chọn "Ngay sau khi lần lặp trước kết thúc"
Nhật ký
Nhật ký (theo cách hiểu chung) là sổ sách ghi chép 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 những gì đang xảy ra giữa ứng dụng và máy chủ của bạn.
LoadRunner cung cấp cơ chế ghi nhật ký mạnh mẽ, tự nó mạnh mẽ và có thể mở rộng. Nó cho phép bạn chỉ giữ lại “Nhật ký chuẩn” hoặc một nhật ký mở rộng chi tiết, có thể định cấu hình hoặc vô hiệu hóa nó hoàn toàn.
Một nhật ký tiêu chuẩn là thông tin và dễ hiểu. Nó chỉ chứa lượng kiến thức phù hợp mà bạn thường yêu cầu gỡ rối 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ý 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 cho thành phần LoadRunner bao gồm thông tin đầy đủ của 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 do Máy chủ trả về” thì nhật ký của bạn sẽ có chiều dài. Điều này sẽ bao gồm tất cả HTML, thẻ, tài nguyên, thông tin không phải 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 bây giờ nếu bạn chọn "Dấu vết trước", 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 thực hiện 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 mà VUGen báo cáo. Tuy nhiên, đây là thông tin rất hữu ích và có thể hữu ích nếu bạn hiểu ứng dụng chủ đề, giao tiếp từ máy khách đến máy chủ giữa ứng dụng và phần cứng của bạn cũng như chi tiết mức giao thức. Thông thường, về bản chất, thông tin này đã chết vì nó đòi hỏi nỗ lực cực kỳ cao để hiểu và khắc phục sự cố.
Lời khuyên:
- Bất kể VUGen mất bao nhiêu thời gian khi bật nhật ký, nó 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ệ hiện đại”.
- Tắt nhật ký nếu nó không được yêu cầu.
- Tắt nhật ký khi bạn hoàn thành các tập lệnh của mình. Bao gồm các tập lệnh có 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.
- Vô hiệu hóa nhật ký sẽ tăng dung lượng của số lượng người dùng tối đa mà bạn có thể mô phỏng từ LoadRunner.
- Cân nhắc sử dụng “Chỉ gửi tin nhắn khi xảy ra lỗi” - điều này sẽ ẩn 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.
Suy nghĩ về thời gian
Hãy nghĩ Thời gian chỉ đơ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 giống như một chiếc 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ĩ.
Để hiểu thêm, chẳng hạn, người dùng có thể mở 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.
Nếu bạn đang tìm cách mô phỏng tải tích cực trên ứng dụng, hãy xem xét việc tắt hoàn toàn thời gian suy nghĩ.
Tuy nhiên, để mô phỏng một hành vi giống như thậ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 như mong muốn.
Cân nhắ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ỉ đơn giản là đề 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 kinh ngạc là LoadRunner đã thực hiện đơn giản như thế nào để điều khiển 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 nó từ đây. Bạn sẽ có thể mô phỏng "hành vi giống như thực" để giúp nhận được thống kê hiệu suất phù hợp.
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 bỏ qua mọi tắc nghẽn hiệu suất liên quan đến mạng và tập trung vào bất kỳ vấn đề tiềm ẩn nào trong ứng dụng trước tiên. Bạn luôn có thể chạy thử nghiệm nhiều lần để xem các 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 mà bạn muốn mô phỏng.
Bạn có thể tự trả lời chính xác khi nào thì việc chọn trình duyệt phù hợp trong cấu hình này sẽ 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à ứng dụng web, trả lại 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.v.
Một cài đặt quan trọng khác là Mô phỏng bộ nhớ cache của trình duyệt. Nếu bạn muốn đánh giá thời gian phản hồi khi bộ đệ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, điều này rõ ràng không phải là một sự 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 bất kỳ CSS, JS và đa phương tiện nào 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.
Ủy quyền
Tốt nhất là loại bỏ proxy hoàn toàn khỏi Môi trường thử nghiệm của bạn - điều này sẽ làm cho kết quả thử nghiệm 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 sẽ làm việc) với Không có cài đặt proxy. Bạn có thể lấy nó từ trình duyệt mặc định của mình. Tuy nhiên, đừng quên kiểm tra 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ì.
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.
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.
Xin 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 cấu hình nó cho tất cả các tập lệnh VUser của bạn.