Снимок экрана во время тестирования

Это - приложение для рассмотрения тестов производительности. Простой в понятии, хитром для описания. Изображение:

1) Запись взаимодействий с программой WPF так исходные данные может быть воспроизведена.

2) Воспроизведение исходных данных при выполнении непрерывного снимка экрана.

3) Получение стенного времени, а также непрерывных процентов использования ЦП во время воспроизведения.

4) Повторение шагов (2) и (3) много времен.

5) Выписывание соответствующего материала в файлы/дб.

6) Чтение его и помещение всего этого в необычном UI для легкого обзора/анализа.

Уничтожитель для меня (2). Я мог использовать некоторое руководство на пользе, возможно коммерческий, снимок экрана SDK. Я также приветствовал бы новости, что моя целая проблема уже имеет решение. И конечно любые мысли о полной идее также были бы большими.

Спасибо.

Ed

8
задан Edwward 13 May 2010 в 19:35
поделиться

7 ответов

Windows API? Может быть, System.Drawing?

http://www.codeproject.com/KB/dialog/screencap.aspx

0
ответ дан 5 December 2019 в 21:17
поделиться

Вы можете сделать снимок экрана в собственном приложении с помощью DirectShow.

См. Video Capture для получения общих сведений о том, как делать видео. с использованием DirectShow и ссылок на пример кода. Для захвата непосредственно с экрана вам понадобится фильтр «Фильтр захвата экрана», находящийся в wmpsrcwp.dll, который находится в более новых версиях Windows и также может быть загружен как часть Windows Media Кодировщик.

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

DirectShow проще всего сделать в C ++ / CLR вместо C #, потому что вы можете легко включать файлы заголовков C ++ и выполнять неуправляемые вызовы, а Windows Hooks sho uld может выполняться только в машинном коде.

1
ответ дан 5 December 2019 в 21:17
поделиться

Вы создаете продукт для тестирования производительности или тестируете свой продукт на производительность?

В последнем случае вы можете ознакомиться с набором функций Team Foundation Server 2010, в частности, с инструментами тестирования. Кажется, там есть несколько хороших функций для исторической отладки, профилирования и интеграции группы QA (воспроизведение видео во время тестовой сессии и т. Д.).

В противном случае, если вы просто ищете инструмент vidcap, мне всегда нравился SnagIt .

1
ответ дан 5 December 2019 в 21:17
поделиться

Если вы собираетесь заниматься разработкой для этого, вы можете настроить Cucumber / SpecFlow с помощью Windows Automation ... и вот образец в WPF снимка экрана тестируемого приложения.

        /// <summary>
        /// Take screen shot
        /// </summary>
        /// <param name="left">left</param>
        /// <param name="top">top</param>
        /// <param name="width">width</param>
        /// <param name="height">height</param>
        /// <returns>screen shot in bytes</returns>
        public static byte[] TakeScreenShot(int left, int top, int width, int height)
        {
            // Set the bitmap object to the size of the screen
            var bmpScreenshot = new Bitmap(width, height,
                                                  PixelFormat.Format32bppArgb);

            // Create a graphics object from the bitmap
            var gfxScreenshot = Graphics.FromImage(bmpScreenshot);

            // Take the screenshot from the upper left corner to the right bottom corner
            gfxScreenshot.CopyFromScreen(left, top, 0, 0,
                                             new Size(width, height), CopyPixelOperation.SourceCopy);

            var buffer = new byte[bmpScreenshot.Size.Height * bmpScreenshot.Size.Width * 4];

            var stream = new MemoryStream(buffer);

            bmpScreenshot.Save(stream, ImageFormat.Png);

            return stream.ToArray();
        }
2
ответ дан 5 December 2019 в 21:17
поделиться

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

1
ответ дан 5 December 2019 в 21:17
поделиться

Вы говорите, что самая сложная часть для вас:

2) Воспроизведение входных сигналов во время выполнения непрерывный снимок экрана.

Вы можете рассмотреть возможность использования средств автоматизации и создания сценариев, таких как AutoIt или AutoHotKey. Каждый из этих инструментов позволит вам записывать ваше взаимодействие с приложением Windows. Вы можете записать базовый сценарий, а затем настроить детали и время в редакторе. Приятной особенностью AutoIt является возможность «компилировать» макрос в отдельный исполняемый файл.

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

Удачи в вашем проекте.

1
ответ дан 5 December 2019 в 21:17
поделиться

Поскольку вы ищете коммерческую версию для захвата экрана, я бы порекомендовал посмотреть коммерческую версию всего пакета: я бы порекомендовал Microsoft Test Manager 2010 (функции см. Здесь: http://msdn.microsoft.com/en-us/library/bb385901.aspx ). Он принимает видео, записи и воспроизводит ввод, что, как я могу сказать, составляет большую часть того, над чем вы работаете, но он также подключается прямо к приложениям .NET для целей отладки intellitrace, интегрируется с системой отчетов об ошибках Team Foundation Server и т. Д. Вы можете использовать его с WPF, XNA, ASP.Net или другими языками, если хотите пожертвовать возможностями intellitrace. Он даже автоматизирует воспроизведение входных данных и проверяет выходные данные на соответствие вашей спецификации для непрерывного интеграционного тестирования.

1
ответ дан 5 December 2019 в 21:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: