假设我有一个像以下示例一样的WPF图表应用程序: https://www.codeproject.com/Articles/24681/WPF-Diagram-Designer-Part-4
我看到了像“ White”或“ Appium”之类的测试库,它对于某些文本输入非常有用,但是我不知道如何在自动测试中拖放项目。
答案 0 :(得分:0)
一个图应用程序与另一个图应用程序不同。即使在两种情况下都使用WPF。重要的是项目和连接线的建模。
如果项目是常规的WPF控件,则任何支持重播(甚至记录)单击,鼠标按下,释放和拖动等动作的测试工具都将支持上述动作的自动化。带有类似
的语句dragAndDrop(source, sx, sy, target, tx, ty)
这假设源对象和目标对象具有可靠的标识。它们是否具有独特的特性,例如线元素来自另一个?
如果被测应用程序将这些项目呈现在画布上(例如WPF图设计器似乎这样做),则基于对象的访问可能就没有问题了。那时,基于图像的方法可能是唯一可行的解决方案。使用image-based测试等效于上述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);
同样,识别像线这样的原始元素可能具有挑战性。在那种情况下,我将进行一些脚本编写,并查询应用程序的内部结构图结构及其元素位置。