80 самых популярных вопросов на собеседовании по Loadrunner & Ответы

Anonim

1) Какие протоколы поддерживает LoadRunner?

Начиная с LoadRunner 9.5 поддерживаются следующие протоколы. Это будет увеличиваться в будущих выпусках. Интервьюер не требует, чтобы вы перечислили все, кроме нескольких (скажем, 5-7 протоколов).

Решение для развертывания приложений: для протокола Citrix.

Клиент / сервер: для протоколов DB2 CLI, DNS, MS SQL, ODBC, Oracle (двухуровневый), Sybase
Ctlib, Sybase Dblib и Windows Sockets.
Пользовательский: для шаблонов C, шаблонов Visual Basic, шаблонов Java,
сценариев типов Javascript и VBScript.
Распределенные компоненты: для протоколов COM / DCOM, Corba-Java и Rmi -Java.
Электронный бизнес: для FTP, LDAP, Palm, Web (HTTP / HTML), веб-служб и двойных протоколов Web / Winsocket.
Корпоративные компоненты Java: для протоколов тестирования EJB и Rmi-Java.
ERP / CRM: для протоколов Baan, Oracle NCA, Peoplesoft-Tuxedo, Peoplesoft 8,
SAPGUI, SAP-Web и Siebel (Siebel-DB2CLI, Siebel-MSSQL, Siebel-Web и Siebel-Oracle).
Наследие: для эмуляции терминала (RTE).
Почтовые службы: обмен сообщениями в Интернете (IMAP), MS Exchange (MAPI), POP3 и SMTP.
Промежуточное ПО: протоколы Jacada и Tuxedo (6, 7).
Потоковая передача: для протоколов MediaPlayer и RealPlayer.

2) Какие компоненты вы использовали в LoadRunner?

Генератор Vuser - для генерации скриптов

Контроллер - для создания и выполнения сценариев

Анализатор - для анализа результатов.

Узнайте больше о LoadRunner и его архитектуре из этого видео-урока.

3) Что такое агент load runner?

Агент - это интерфейс между хост-машиной и контроллером.

4) Каков процесс разработки скрипта Vuser?

Есть четыре шага для разработки сценария vuser.

1-Запишите сценарий Vuser.
2-Воспроизведение / Улучшение записанного сценария vuser.
3- Определите различные настройки времени выполнения и проверьте

4- Включите сценарий в сценарий LoadRunner

Узнайте больше о разработке сценариев Vuser в видеоруководстве здесь.

5) Сколько VUsers требуется для нагрузочного тестирования?

По сути, это вопрос с подвохом.

Требуемое количество VUsers зависит от вашей тестируемой системы, конфигурации сети, настроек оборудования, памяти, операционной системы, программных приложений, которые ставятся перед тестом производительности. Для Vuser не может быть общего значения.

6) В чем разница в запуске Vuser как процесса и как потока? Какой способ запуска Vuser более выгоден?

Когда Vuser запускается как процесс, одна и та же программа драйвера загружается в память для каждого Vuser. Это займет большой объем памяти и ограничит количество пользователей Vusers, которые вы можете запустить на одном генераторе.

Когда Vuser запускается как поток, только один экземпляр программы драйвера используется для данного количества пользователей Vuser. Вы можете запустить несколько виртуальных пользователей на одном генераторе в многопоточном режиме.

7) Что означает "Vuser-init"?

Vuser-init записывает предварительные операции, также называемые операциями инициализации, перед запуском фактического приложения.

8) Что такое расширенный журнал?

В расширенном журнале будет храниться такая информация, как данные, возвращаемые расширенной трассировкой, подстановка параметров и многое другое, в зависимости от параметров, выбранных вами в настройках времени выполнения.

9) Зачем вы создаете параметр?

Чтобы создать параметр, вы замените жестко запрограммированное значение в скрипте и замените его параметром. Это позволяет запускать один виртуальный пользователь много раз и использовать разные данные при каждом запуске. Это помогает стимулировать больший спрос на сервер в реальной жизни, поскольку не позволяет серверу кэшировать результаты.

Узнайте больше о параметризации в этом видеоуроке.

10) Как вы разделите свой сценарий на несколько действий? Почему?

Я разделю скрипт на Действия в зависимости от функциональности. Например, однократное действие для входа в приложение, другое действие для бронирования и так далее.

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

11) Как установить количество пользователей Vusers в LoadRunner?

Вы можете установить количество виртуальных пользователей в разделе контроллера при создании сценариев. В разделе «Контроллер» также доступны многие другие расширенные параметры, такие как увеличение и уменьшение числа виртуальных пользователей.

Узнать больше о создании контроллера и сценария

12) Что такое мониторы?

Мониторы используются для «отслеживания» узких мест в производительности. Они используются в разделе «Контроллер» программы Load Runner.

13) Какие типы контрольных точек доступны в LoadRunner?

LoadRunner предоставляет два типа контрольных точек

a) Контрольные точки изображения: эта контрольная точка будет проверять наличие изображения на странице во время выполнения.

б) Текстовая контрольная точка: эта контрольная точка будет проверять наличие текстовой строки на странице во время выполнения.

Обе указанные выше контрольные точки могут быть добавлены в Vugen.

Узнать больше о контрольно-пропускных пунктах

14) С какими проблемами мы можем столкнуться в отношении аппаратного, программного обеспечения, узких мест в сети и памяти во время теста производительности?

Возможные проблемы среди прочего могут быть -

1. Отсутствие оборудования

2. Утечка памяти

3. Проблемы, связанные с сетью.

4. Ошибка приложения / программного обеспечения.

15) Что вы порекомендуете для улучшения показателей эффективности?

Рекомендуется точная настройка сети, базы данных, приложения и веб-сервера.

В сети уровень пытается оптимизировать задержку и полосу пропускания.

На уровне базы данных проверьте все индексы и последовательности, запустив профилировщики. Вы также можете оптимизировать запросы к базе данных.

На уровне сервера приложений запустите профилировщики для поиска утечек памяти в приложении.

На уровне веб-сервера вы можете использовать мониторы и оптимизировать пропускную способность и другие связанные показатели сервера.

16) Что такое точка рандеву?

Точка встречи - это точка синхронизации / ожидания. Точки рандеву инструктируют виртуальных пользователей во время выполнения теста ждать, пока несколько виртуальных пользователей не достигнут определенной точки, чтобы они могли одновременно выполнять задачу.

Смысл этого в том, чтобы имитировать некоторую большую нагрузку только для определенной части сценария и протестировать поведение приложения.

17) Что такое корреляция?

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

Узнайте больше о корреляции в этом видеоуроке.

18) Что такое ручная корреляция?

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

Изучите ручную корреляцию.

19) Как вы определяете узкие места в производительности? -

Узкие места в производительности можно обнаружить с помощью мониторов.

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

Они помогают обнаружить проблемную зону в нашем сценарии, что приводит к увеличению времени реакции.

Измерения обычно включают время отклика производительности, пропускную способность, количество обращений в секунду, графики задержки сети и т. Д.

20) Какая функция используется для завершения вложенной транзакции?

Функция - lr_end_sub_transaction

Узнайте больше о транзакциях в этом видео.

21) В чем разница между транзакцией и экземпляром транзакции в LoadRunner?

Транзакция используется для измерения времени между выполнением определенных операторов.

Экземпляр транзакции используется для анализа производительности

22) Во время работы скрипта мы находим некоторые значения, которые, возможно, необходимо скоррелировать? Можно ли выполнить корреляцию этих значений вручную?

НЕТ. Невозможно выполнить корреляцию во время выполнения сценария, но вы можете внести изменения после остановки сценария.

23) Что такое прошедшее время в Load Runner?

Прошедшее время указывает, сколько времени прошло с момента запуска текущего события, и измеряется по-разному для разных экранов, как показано ниже -

В окне состояния сценария - Прошедшее время измеряется с момента нажатия кнопки «Начать сценарий» или «Инициализировать / запустить Vuser?» кнопка.

В окне «Vuser» истекшее время измеряется с момента перехода Vuser в «рабочее» состояние.

24) Оказывает ли кеширование негативное влияние на результаты нагрузочного тестирования?

Да. Кеширование имеет негативный эффект. Кэш - это временная память, в которой хранится история просмотров. Когда вы посещаете страницу в течение ВТОРОГО времени, время, необходимое для загрузки страницы, будет меньше, чем время, необходимое для загрузки страницы при вашем первом посещении, поскольку большая часть информации, необходимой для загрузки страницы, берется из кеша, а не с сервера. . Это повлияет на время отклика в вашем тесте. Следовательно, рекомендуется отключить кеширование.

25) В чем разница между графиком наложения и графиком корреляции?

Наложенный график: он будет наложить содержимое двух графиков, которые имеют общую ось абсцисс.

График корреляции : он отобразит ось Y двух графиков относительно друг друга.

Узнать больше об анализаторе

26) В чем разница между lr_error_message и lr_debug _message?

lr_error_message - отправляет сообщение об ошибке в окно вывода контроллера LoadRunner.

lr_debug _message - отправляет сообщение отладки в окно вывода контроллера LoadRunner.

27) В чем разница между нагрузочным тестированием и тестированием производительности?

Целью тестирования производительности является проверка того, загружается ли приложение / обновляется в течение установленного срока (скажем, 2 секунды). Он использует такие показатели, как время ответа, запросов в секунду. Это осуществляется в условиях нагрузки, аналогичной производственной.

Целью нагрузочного тестирования является проверка масштабируемости системы. Например, определение максимального количества пользователей, поддерживаемых системой в рамках определенных спецификаций.

28) Вы создали несколько правил автокорреляции. Новый тестировщик в вашей команде готовится записать группу скриптов для одного и того же приложения на своей рабочей станции. Что вы можете сделать, чтобы предоставить тестеру правила корреляции?

Я бы экспортировал правила автокорреляции в файл .cor, а затем попросил бы нового члена команды импортировать файл .cor в свои правила автокорреляции.

29) Вы хотите имитировать колл-центр авиакомпании. Все представители входят в систему утром, выполняют свои бизнес-процессы и выходят из системы ночью. За один день представитель создаст 40 бронирований рейсов, изменит 10 бронирований рейсов и выполнит поиск 20 бронирований рейсов. Представитель не может выполнить изменение без предварительного поиска. Как бы вы спроектировали логику выполнения?

Создать - 67% Поиск - 16% Блок0 - 17% Поиск Изменить

30) Где нужно добавить в скрипт функцию web_reg_save_param?

Перед шагом, который извлекает динамическое значение

31) Вы хотите, чтобы каждый шаг в вашем сценарии измерялся как транзакция в контроллере и не отображался в журнале воспроизведения в VuGen. Как этого добиться?

Это можно сделать, включив автоматическую транзакцию в настройках времени выполнения.

32) Какой уровень записи веб-протокола генерирует функцию web_submit_form?

Запись на основе HTML генерирует эту функцию.

33) Что такое нагрузочное тестирование?

Нагрузочное тестирование предназначено для проверки того, хорошо ли приложение работает с нагрузками от большого количества одновременных пользователей и транзакций. Он также используется для определения того, может ли он выдерживать периоды пиковой нагрузки.

34) Что такое load runner?

Load Runner - это инструмент для тестирования производительности от HP. Этот инструмент поддерживает все аспекты, такие как нагрузка, стресс, выносливость, объем данных и пиковое тестирование.

35) Что входит в состав LoadRunner?

Ниже приведены компоненты LoadRunner.

  • Генератор виртуальных пользователей
  • Контроллер и процесс агента
  • LoadRunner Анализ и мониторинг
  • Электронная документация по LoadRunner

36) Какой компонент LoadRunner используется для записи скрипта?

Компонент Virtual User Generator (VuGen) используется для записи сценария и позволяет разрабатывать сценарии Vuser для различных типов приложений и протоколов связи.

37) Что такое место встречи?

Точки рандеву вводятся в скрипты Vuser для имитации большего количества пользователей на сервере. Точки рандеву заставляют виртуальных пользователей ждать во время выполнения теста, чтобы выполнять задачи одновременно.

Например, в банковском приложении точки рандеву вставляются для более чем 100 пользователей, чтобы вносить деньги одновременно.

38) Что такое сценарий?

Сценарий - это не что иное, как событие, которое происходит для каждого сеанса тестирования.

Например, сценарий определяет

  • Количество пользователей
  • Действие, которое необходимо выполнить
  • Система виртуальных машин

39) Как мы можем отладить сценарий LoadRunner?

VuGen содержит две опции для отладки скриптов Vuser.

  • Выполнить пошаговую команду и
  • Контрольные точки.

Мы также можем вручную установить класс сообщения в вашем скрипте с помощью функции lr_set_debug_message.

40) Как провести функциональное тестирование под нагрузкой?

Функциональность под нагрузкой можно проверить, запустив одновременно несколько виртуальных пользователей. Увеличивая количество виртуальных пользователей, необходимо определить, какую нагрузку может выдержать сервер.

41) Какая связь между временем отклика и пропускной способностью?

Пропускная способность показывает количество данных в байтах, которые виртуальные пользователи получили от сервера за секунду. По сравнению со временем отклика транзакции пропускная способность и время отклика уменьшаются.

Пиковая пропускная способность и максимальное время отклика будут происходить примерно в одно и то же время.

42) Что содержат действия vuser_init и vuser_end?

Действие Vuser_init содержит процедуры входа на сервер, а раздел Vuser_end содержит процедуры выхода из системы.

43) В чем разница между стандартным журналом и расширенным журналом?

Стандартный журнал отправляет подмножество функций и сообщений в выходной журнал, и подмножество функций зависит от типа Vuser.

Расширенный журнал отправляет подробные сообщения о выполнении сценария в выходной журнал. В основном он используется во время отладки, когда пользователю нужна информация о подстановке параметров.

44) Каковы все типы целей в целевом сценарии Load Runner?

Load Runner предлагает пять различных типов целей:

  • Количество одновременных пользователей Vusers
  • Количество ударов в секунду
  • Количество транзакций в секунду
  • Количество страниц в минуту
  • Время отклика транзакции

45) Что представляет собой функция для захвата динамических значений в скрипте веб-пользователя?

Web_reg_save_param - это функция, которая сохраняет информацию о динамических данных в параметр.

46) Что такое процесс тестирования Load Runner?

Ниже приведен процесс тестирования в LoadRunner:

  • План нагрузочного теста
  • Создание скриптов Vuser
  • Определить сценарий
  • Выполнить сценарий
  • Анализировать результаты

47) Что такое программа запуска удаленных команд?

Средство запуска удаленных команд позволяет контроллеру запускать приложения на главном компьютере.

48) Как мы можем разработать скрипт vuser базы данных?

Скрипты Vuser могут быть разработаны либо путем записи с помощью генератора скриптов load vuser, либо с помощью шаблона скрипта Load runner vuser.

49) Как загрузить агент загрузчика?

Во время выполнения сценария контроллер LoadRunner дает команду диспетчеру удаленного агента запустить агент LoadRunner. Контроллер дает команду агенту LoadRunner инициализировать, запускать, приостанавливать и останавливать виртуальных пользователей.

50) В чем разница между хитами в секунду и запросами в секунду?

Хитов в секунду означает количество совпадений, которые сервер получает за одну секунду от пользователя.

Запрос в секунду - это количество запросов, которые пользователь запросит с сервера.

51) Каковы преимущества load runner?

Ниже приведены преимущества Load Runner:

  • Снижает вмешательство человека
  • Снижает потребность в системах
  • Помогает более эффективно использовать время и деньги
  • Эффективное использование автоматизации
  • Одноточечное исполнение

52) Какой вьюсер в сценарии?

Вьюсер - это виртуальные пользователи, которые могут имитировать реальных пользователей. Виртуальные пользователи, которые заменяют клиентское программное обеспечение реальных пользователей, такое как IE, отправляющее запросы по протоколу HTTP на веб-серверы IIS или Apache.

53) Как написать пользовательскую функцию в LoadRunner?

Использование должно создать внешнюю библиотеку, содержащую функцию. Затем эту библиотеку необходимо добавить в каталог bin VuGen. Затем пользовательская функция может быть назначена в качестве параметра.

54) Какие изменения можно внести в настройки времени выполнения?

Можно выполнить четыре настройки времени выполнения:

  • Время размещения: содержит количество итераций.
  • Журнал: ведение журнала может быть стандартным или отключенным.
  • Время обдумывания: возможность игнорировать или заменять время обдумывания.
  • Общие: позволяет настраивать виртуальных пользователей для процессов или многопоточности.

55) Как мы можем найти проблемы, связанные с базой данных?

Мониторы и график ресурсов данных можно использовать для поиска проблем, связанных с базой данных. LoadRunner позволяет тестеру указать ресурс, который необходимо измерить перед запуском контроллера.

56) Сколько типов графиков доступно в LoadRunner?

Есть пять типов графиков:

  • График времени задержки сети - отображает время, которое проходит между запросом и ответом
  • Два графика времени отклика транзакции - один график времени отклика перевода для нагрузки, а другой - для процентиля.
  • График ударов в секунду - показывает объем трафика приложения.
  • График загрузки страниц за секунду - показывает скорость загрузки страниц в секунду.

57) Как можно определить узкие места в производительности?

Мониторы могут использоваться для обнаружения узких мест в производительности. К ним относятся мониторы сети, веб-сервера, сервера приложений и сервера базы данных.

Эти мониторы могут использоваться для обнаружения проблемных мест в сценариях, которые вызывают увеличение времени отклика и пропускной способности, сетевых задержек, времени отклика производительности, попаданий в секунду и т. Д.

58) Что такое нарастание и как его можно настроить?

Нарастание постепенно увеличивает нагрузку на сервер, и его можно смоделировать, постепенно увеличивая количество пользователей Vuser. Эту функцию можно найти в параметрах планирования сценария.

59) Как можно провести корреляцию?

Корреляцию можно провести двумя способами:

  • Используйте функцию сканирования для поиска корреляций и выбора значения из результата.
  • Запишите пару сценариев, а затем сравните их друг с другом.

60) Где устанавливаются параметры автоматической корреляции?

Автоматическая корреляция устанавливается в области параметров записи на вкладке корреляции. Можно включить корреляцию для всего сценария и определить правила корреляции.

Автоматическая корреляция может быть выполнена в базе данных путем просмотра окна вывода, поиска корреляции и выбора значения, которое будет использоваться.

61) В чем преимущество запуска сценария Vuser как потока?

Преимущество запуска сценария Vuser как потока, что позволяет использовать больше пользователей Vuser для одного генератора нагрузки. Запуск сценариев Vuser в качестве процессов требует много памяти, поскольку все загруженные сценарии используют один и тот же драйвер.

Это ограничивает количество скриптов Vuser, которые могут быть запущены на одном генераторе.

62) В чем разница между графиком наложения и графиком корреляции?

График наложения:

График наложения имеет одну ось X и две оси Y. Левая ось Y на объединенном графике показывает значение текущего графика, а правая ось Y показывает значение оси Y объединенного графика.

График корреляции:

Есть два графика, и ось Y активного графика становится осью X объединенного графика. Ось Y объединенного графика становится осью Y объединенного графика.

63) Каковы три раздела сценария Vuser и какова цель каждого из них?

Ниже приведены три раздела сценария Vuser:

  • Vuser_init - используется для записи входа в систему.
  • Действия - используются для записи бизнес-процесса.
  • Vuser_end - используется для записи выхода из системы.

64) Каковы четыре метода выбора при выборе данных из файла данных?

Ниже приведены четыре метода выбора:

  • Последовательный
  • Случайный
  • Уникальный
  • Имя параметра

65) Что нужно сделать для просмотра подстановки параметров в журнале выполнения?

Подстановку параметров можно посмотреть в расширенном журнале в настройках времени выполнения.

66) Какие инструменты требуются для анализа результатов запуска Vuser?

Для анализа результатов запуска Vuser требуются следующие инструменты:

  • Журнал выполнения
  • Средство просмотра времени выполнения и
  • Окно результатов теста на ртуть

67) В чем разница между ручным сценарием и сценарием, ориентированным на достижение цели?

Ниже приведены различия между сценарием, ориентированным на ручной режим и сценарием, ориентированным на достижение цели.

Ручной сценарий

Сценарий цели

Основная цель - узнать, сколько пользователей Vuser могут работать одновременно. Целью может быть пропускная способность, время отклика или количество одновременно работающих пользователей Vuser.
Дает вам ручной контроль над тем, сколько пользователей Vusers запускается и в какое время Load Runner автоматически управляет виртуальными пользователями

68) Каковы все причины использования монитора ресурсов сервера?

Монитор ресурсов сервера используется для определения объема данных, поступающих из кэша, и помогает выяснить, какие части системы имеют узкие места.

69) Какова цель выбора «Показать браузер» во время воспроизведения в настройках общих параметров?

Настройка «Показать браузер» используется для просмотра страниц, которые появляются во время воспроизведения. Это полезно для отладки Vuser на начальных этапах создания Web Vuser.

70) С какой целью пользователь будет использовать ошибку «продолжить»?

Параметр «Продолжить» следует устанавливать только в том случае, если журналы выполнения становятся более информативными или добавляются логики для Vuser.

71) Какова цель транзакции LoadRunner?

Цель транзакции Load Runner - измерить один или несколько шагов / действий пользователя бизнес-процесса.

72) Зачем вы создаете параметры?

Параметры подобны переменным сценария, и они используются для изменения ввода на сервер для имитации реальных пользователей.

  • При каждом запуске сценария на сервер отправляются разные наборы данных.
  • Лучше смоделируйте модель использования для более точного тестирования с помощью контроллера, и один сценарий может имитировать множество разных пользователей в системе.

73) Что такое lr_output_message?

Lr_output_message - это функция, которая отправляет уведомления в окно вывода контроллера и в файл журнала Vuser.

74) На веб-сервере база данных и сеть работают нормально, и теперь, где может быть проблема?

Проблема может быть в самой системе, на сервере приложений или в коде, написанном для приложения.

75) Что такое запись и сценарии VuGen?

Код сценария LoadRunner получается путем записи в синтаксисе языка ANSI C, и его можно просмотреть в представлении сценария.

76) Что такое тестирование производительности в LoadRunner?

Тестирование производительности может быть выполнено путем расчета времени для транзакций чтения и обновления и проверки того, выполняются ли системные функции в приемлемые временные рамки. В многопользовательской среде необходимо определить влияние нескольких транзакций на время одной транзакции.

77) Какова конфигурация систем при использовании Load Runner?

Конфигурация систем относится к конфигурации клиентских машин, на которых мы будем запускать виртуальных пользователей. Конфигурация клиентского компьютера включает в себя его аппаратные настройки, память, операционную систему, программные приложения, инструменты разработки и т. Д.

Эта конфигурация компонентов системы должна соответствовать общей конфигурации системы для достижения целей нагрузочного тестирования.

78) Какая польза от функции lr_abort?

Функция lr_abort используется для прерывания выполнения скрипта Vuser. Он инструктирует Vuser прекратить выполнение раздела Actions, выполнить раздел vuser_end и завершить выполнение.

79) Что такое время размышлений?

Время обдумывания - это время, когда реальный пользователь ждет между действиями.

Когда пользователь получает данные от сервера или других приложений, он может подождать несколько секунд, чтобы просмотреть данные, прежде чем ответить. Эта задержка называется временем обдумывания.

80) Как Load Runner взаимодействует с приложением?

Протокол используется в Load Runner для взаимодействия с приложением.

81) Какая последняя версия и на каком языке используется в Load Runner?

По состоянию на 20 февраля 2013 года Load Runner 11.5 является последней версией, а сценарий VUser используется как язык C.

LoadRunner поддерживает следующие языки:

  1. Язык C
  2. Сценарии Visual Basic
  3. Visual Basic для приложений
  4. Сценарии Java

82) Какие все важные протоколы поддерживает Load Runner?

Ниже приведены протоколы, которые поддерживает Load Runner:

  • Запись / отображение .NET
  • База данных
  • DCOM
  • Сеть
  • Oracle E-Business
  • SAP
  • SOA
  • Интернет и мультимедиа
  • Беспроводной
  • GUI
  • Запись и воспроизведение Java
  • Удаленный рабочий стол
  • Веб 2.0

Бесплатная загрузка PDF: Вопросы и ответы на собеседовании по LoadRunner