Вопрос

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

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

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

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

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

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

Это было полезно?

Решение

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

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

Вот хороший список статей, с которых можно начать: DLL-файлы кода проекта

Другие советы

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top