如何在图表WPF应用程序上执行自动UI测试

时间:2019-03-18 15:15:36

标签: wpf testing automated-tests appium

假设我有一个像以下示例一样的WPF图表应用程序: https://www.codeproject.com/Articles/24681/WPF-Diagram-Designer-Part-4

  • 如何对以下功能进行自动UI测试:
  • 每次拖放插入新项目
  • 连接2个项目
  • 删除项目

我看到了像“ White”或“ Appium”之类的测试库,它对于某些文本输入非常有用,但是我不知道如何在自动测试中拖放项目。

1 个答案:

答案 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);

同样,识别像线这样的原始元素可能具有挑战性。在那种情况下,我将进行一些脚本编写,并查询应用程序的内部结构图结构及其元素位置。