GUI-рекордер и воспроизведение событий - PullRequest
3 голосов
/ 06 ноября 2008

Мы пишем относительно тяжелый графический интерфейс C # с некоторыми компонентами syncFusion (GUI framework). Я хотел бы добавить возможность ведения журнала клиента, которую впоследствии QA мог бы использовать для воспроизведения клиентских событий для анализа ошибок или другого рабочего процесса, который клиент использовал в работе.

Существует ли такой готовый модуль для записи и воспроизведения всех нажатий клавиш клиента, событий мыши и т. Д.? (Модуль C ++ тоже может работать, если его легко интегрировать в клиент Windows C #.)

Я также хотел бы использовать сгенерированные журналы для анализа того, какие функции клиента использовались чаще всего и какие функции редко когда-либо использовались, чтобы решить , какие ошибки должны получить приоритет и какие функции должны быть отброшены / улучшены? Поэтому я бы хотел, чтобы клиент записывал журнал на локальный диск или по сети обратно на сервер.

Я также несколько обеспокоен производительностью, некоторые попадания приемлемы, но любая идея , насколько регистрация каждого события ухудшит производительность клиента ?

Смысл в том, чтобы регистрировать все клиентские события в рабочей среде , а не тестирование QA как таковое.

Редактировать на основе комментариев Айдсмана: После прочтения старого аналогичного обсуждения , а также сайта Бенджи похоже, что есть большой интерес к этому типу "панели инструментов", но в настоящее время не существует открытого или закрытого продукта или решения. Я разместил вопрос о статусе на сайте Бенджи, но сайт выглядит довольно тихо, с июня ответов нет. Идеи Бенджи более или менее точно соответствуют тому, что я искал, но, похоже, еще нет продукта, что довольно удивительно, я полагаю, что отсутствие существующих продуктов означает, что внедрение такой системы должно быть более сложным, чем я первоначально думал. Будет продолжать искать и надеяться найти что-нибудь позже.

Ответы [ 3 ]

1 голос
/ 16 ноября 2008

Как уже упоминалось другими авторами, есть коммерческие продукты, которые делают подобные вещи. Если вы хотите написать свой собственный, вам нужно создать так называемую системную библиотеку DLL. Это можно сделать в C ++ довольно просто. Если вы создадите его, вы можете легко интегрировать его, используя pinvoke. На самом деле, я бы начал с просмотра pinvoke.net для людей, которые уже сделали нечто подобное.

Подключаемая DLL позволяет перехватывать все события мыши и клавиатуры. Вы также можете вводить события мыши и клавиатуры. Так что, если вы соедините эти два: intercept = record, и inject = воспроизведения.

Вот хороший список статей, с которых можно начать: Библиотеки кодов Project Code

0 голосов
/ 14 ноября 2008

Вы слышали о log4net? Я использовал его в небольшом масштабе в одном проекте - он может удовлетворить ваши потребности. Я также провел некоторые исследования в аспектно-ориентированных и IoC методах для ведения журналов. В зависимости от конкретной методики существует некоторое влияние на производительность, но это может упростить обслуживание зарегистрированного кода. Порт Spring.NET для Spring Framework предлагает несколько вариантов общего назначения, ведение журналов на уровне методов. Вы можете использовать некоторую их комбинацию для генерации «сценариев» файлов действий и модуля «воспроизведения», который может считывать и повторно выполнять зарегистрированные действия в тестовой среде.

0 голосов
/ 06 ноября 2008

Зачем писать код, если вы можете купить продукт для автоматического тестирования графического интерфейса?

...