Если на вашем сайте есть 3 страницы, которые могут посещать пользователи, и вы знаете, сколько раз каждая страница посещается пользователями, вы можете рассчитать «вес» каждой страницы и создать пользовательский сценарий, который имитирует посетителя того же типа. паттерн на сайте, который демонстрируют реальные пользователи. Это пример того, как это сделать.
Во-первых, мы должны выяснить, насколько популярна каждая из трех страниц. Это можно сделать, посмотрев статистику, например. Google Analytics, чтобы узнать, сколько раз каждая страница была посещена за последний месяц или около того. Допустим, у нас есть эти цифры:
==== Page ==== ==== Visits/day ====
/ 8453
/news.php 1843
/contacts.php 277
Общее количество посещений страницы 10573 (8453+1843+277). Если мы разделим каждое отдельное число на общее количество, мы получим «вес» (процент) для этой конкретной страницы, то есть насколько велика вероятность того, что случайная загрузка страницы на сайте приведет к загрузке этой конкретной страницы:
==== Page ==== ==== Visits/day ==== =========== Weight ===========
/ 8453 0.799 (79.9% of all page loads)
/news.php 1843 0.174 (17.4% of all page loads)
/contacts.php 277 0.026 (2.6% of all page loads)
Теперь мы можем создать наш пользовательский сценарий, который имитирует реальный трафик на нашем сайте, то есть будет использовать наш веб-сервер так же, как это делают настоящие пользователи. Вот код:
-- We create functions for each of the three pages. Calling one of these functions
-- will result in the simulated client loading all the resources necessary for rendering
-- the page. I.e. the client will perform one page load of that particular page.
--
-- Main/start page
local page1 = function()
-- First load HTML code
http.request_batch({
"http://test.loadimpact.com/"
})
-- When HTML code is done loading, start loading other resources that are
-- referred to in the HTML code, emulating the load order a real browser uses
http.request_batch({
"http://test.loadimpact.com/style.css",
"http://test.loadimpact.com/images/logo.png"
})
end
--
-- /news.php page
local page2 = function()
-- This example page consist of only one resource - the main HTML code for the page
http.request_batch({
"http://test.loadimpact.com/news.php"
})
end
--
-- /contacts.php page
local page3 = function()
-- This example page consist of only one resource - the main HTML code for the page
http.request_batch({
"http://test.loadimpact.com/contacts.php"
})
end
--
--
-- Get a random page to load, using our page weights that we found out earlier
--
-- Generate a value in the range 0-1
local randval = math.random()
-- Find out which page to load
if randval <= 0.799 then
-- 79.9% chance that we load page1
page1()
elseif randval <= (0.799 + 0.174) then
-- 17.4% chance that page2 gets loaded
page2()
else
-- ...and the rest of the time (2.7%), page3 gets loaded
page3()
end
person
Ragnar
schedule
01.04.2015