Одно приложение диаграммы не похоже на другое приложение диаграммы.Даже если WPF используется в обоих случаях.Что важно, так это моделирование предметов и соединительных линий.
Если элементы являются обычными элементами управления WPF, то любой инструмент тестирования, поддерживающий воспроизведение (и, возможно, даже запись) таких действий, как щелчок, нажатие мыши, отпускание и перетаскивание, будет поддерживать автоматизацию вышеуказанных действий.С такими утверждениями, как
dragAndDrop(source, sx, sy, target, tx, ty)
Это предполагает надежную идентификацию исходных и целевых объектов.Имеют ли они уникальные свойства, которые отличают один, например, линейный элемент от другого?
Если тестируемое приложение отображает элементы на холсте (как это делает дизайнер диаграмм WPF), тогда доступ на основе объектов может быть вневопрос.Основанный на изображении подход может быть единственным жизнеспособным решением.Эквивалент выше dragAndDrop()
вызова с использованием тестирования на основе изображения :
var img = waitForImage("MyItem");
var x = img.x;
var y = img.y;
mousePress(x, y, MouseButton.LeftButton);
mouseMove(x, y);
mouseRelease(x,y, MouseButton.LeftButton);
Опять же, идентификация примитивных элементов, таких как линии, может быть сложной.В этом случае я бы пошел по некоторым сценариям и запросил у внутренней модели приложения структуру диаграммы и положение ее элементов.