Какой SQL используется для создания графа Running Vusers в LoadRunner Analysis? - PullRequest
0 голосов
/ 22 ноября 2011

В HP LoadRunner Analysis есть график запущенных пользователей, который показывает текущее количество виртуальных пользователей, которые работают на протяжении всего теста.Пример графика показан ниже.

Running VUsers Graph

Кто-нибудь знает, какой SQL используется для создания данных для этого графика?Я знаю, что данные хранятся в базе данных анализа MDR LoadRunner напрямую?то есть An_Session1.mdb, хотя я не могу определить SQL-запрос.

Спасибо

Ответы [ 2 ]

1 голос
/ 07 декабря 2011

Я немного уточнил запрос, поэтому вместо редактирования предыдущего отправляю новый ответ.

В результате создаются столбцы, в которых содержится CUMULATIVE-количество пользователей-пользователей для определенного действия с течением времени.Обратите внимание, что вывод не является линейным, он содержит только строку, когда что-то произошло (ось X).

SELECT
 M.[End Time] AS RelTimeSec, 
 M.[VUser ID] AS VuserID,  
 M.[VUser Status ID] AS StatusID, 
 S.[Vuser Status Name],
 ( SELECT 
     Count( VuserEvent_Meter.[VUser Status ID] )
   FROM 
     VuserEvent_Meter 
   WHERE 
     VuserEvent_Meter.[InOut Flag]=1 AND
     VuserEvent_Meter.[End Time]<=M.[End Time] AND
     VuserEvent_Meter.[VUser ID]>0 AND
     VuserEvent_Meter.[VUser Status ID]=1
 ) AS CumulReady,
( SELECT 
     Count( VuserEvent_Meter.[VUser Status ID] )
   FROM 
     VuserEvent_Meter 
   WHERE 
     VuserEvent_Meter.[InOut Flag]=1 AND
     VuserEvent_Meter.[End Time]<=M.[End Time] AND
     VuserEvent_Meter.[VUser ID]>0 AND
     VuserEvent_Meter.[VUser Status ID]=2
 ) AS CumulRun,
( SELECT 
     Count( VuserEvent_Meter.[VUser Status ID] )
   FROM 
     VuserEvent_Meter 
   WHERE 
     VuserEvent_Meter.[InOut Flag]=1 AND
     VuserEvent_Meter.[End Time]<=M.[End Time] AND
     VuserEvent_Meter.[VUser ID]>0 AND
     VuserEvent_Meter.[VUser Status ID]=3
 ) AS CumulPause,
 ( SELECT 
     Count( VuserEvent_Meter.[VUser Status ID] )
   FROM 
     VuserEvent_Meter 
   WHERE 
     VuserEvent_Meter.[InOut Flag]=1 AND
     VuserEvent_Meter.[End Time]<=M.[End Time] AND
     VuserEvent_Meter.[VUser ID]>0 AND
     VuserEvent_Meter.[VUser Status ID]=4
 ) AS CumulQuit

FROM
 VuserEvent_Meter M 
INNER JOIN 
 VuserStatus S ON M.[VUser Status ID] = S.[Vuser Status ID]
WHERE
  M.[InOut Flag]=1 AND M.[VUser Status ID] IN (1,2,3,4) AND M.[VUser ID]>0
ORDER BY
 M.[End Time]

Выводит что-то вроде:

RelTimeSec  VuserID StatusID    Vuser Status Name   CumulReady  CumulRun    CumulPause  CumulQuit
  15    1   2   Run     1   1   0   0
  15    1   1   Ready   1   1   0   0
  30    2   2   Run     2   2   0   0
  30    2   1   Ready   2   2   0   0
  45    3   1   Ready   3   3   0   0
  45    3   2   Run     3   3   0   0
  60    4   2   Run     4   4   0   0
  60    4   1   Ready   4   4   0   0
  75    5   1   Ready   5   5   0   0
  75    5   2   Run     5   5   0   0
  90    6   2   Run     6   6   0   0
  90    6   1   Ready   6   6   0   0
...
1687    88  4   Quit    82  82  0   19
1687    86  4   Quit    82  82  0   19
1687    85  4   Quit    82  82  0   19
1687    87  4   Quit    82  82  0   19
1697    113 2   Run     83  83  0   19
1697    113 1   Ready   83  83  0   19
1712    114 1   Ready   84  84  0   19
1712    114 2   Run     84  84  0   19
1727    115 1   Ready   85  85  0   19
1727    115 2   Run     85  85  0   19
1742    116 2   Run     86  86  0   19
1742    116 1   Ready   86  86  0   19
1747    89  4   Quit    86  86  0   23
0 голосов
/ 24 ноября 2011

Полагаю, вы имеете в виду проанализированные результаты в этом случае.

Если вы откроете файл .mdb и загляните в таблицу "VuserEvent_meter", вы найдете там все необходимые данные.

Он ссылается на таблицу VuserStatus для точного события.Вот SQL (написанный в Access):

SELECT
 [M.End Time] AS RelTimeSec, [M.VUser ID] AS VuserID,  [M.VUser Status ID] AS StatusID
FROM
 VuserEvent_Meter M 
WHERE
  [M.InOut Flag]=1 AND [M.VUser Status ID]>0 AND [M.VUser ID]>0
ORDER BY
 [M.End Time]

Если вы хотите включить фактическое имя события, то вам нужно присоединиться к столбцу [VuserStatus.Vuser Status Name], основываясь на [M.VUser StatusID] = [VuserStatus. ID статуса пользователя].

Надеюсь, это направит вас в правильном направлении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...