假设我有一个像这个例子的WPF图表应用程序:https://www.codeproject.com/Articles/24681/WPF-Diagram-Designer-Part-4
我看过像“White”或“Appium”这样的测试库,这对于某些文本输入很有用,但我没有胶水如何做,例如在自动化测试中拖放项目。
一个图表应用程序不像另一个图表应用程序。即使两种情况都使用WPF。重要的是项目和连接线的建模。
如果项目是常规WPF控件,则任何支持重放(甚至可能记录)诸如单击,鼠标按下,释放和拖动等操作的测试工具将支持上述操作的自动化。有这样的陈述
dragAndDrop(source, sx, sy, target, tx, ty)
这假设可靠地识别源和目标对象。它们是否具有可以告诉一个例如来自另一个的线元素?
如果“测试中的应用程序”在画布上呈现项目(如WPF图表设计器似乎这样做),那么基于对象的访问可能是不可能的。基于图像的方法可能是唯一可行的解决方案。使用dragAndDrop()
测试相当于上面的image-based调用:
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);
同样,识别像线条这样的原始元素可能具有挑战性。在这种情况下,我会寻找一些脚本并查询应用程序的图结构的内部模型和元素的位置。