您的位置:首页 > 产品设计 > UI/UE

UI Automation开发 心得笔记四

2010-06-01 18:27 302 查看
1.现在对UI自动化有了更深的认识,现在来纠正下我们普通人对她的看法。

首先,UI自动化做的事不是简单的点击鼠标和发送字符,这些操作仅仅是UI Automation的一个表现形式。

其次,UI自动化是根据一定的现实规律(包括系统,软件的特定规律),按照指定的步骤去进行一系列有规则的操作。

举例来讲,在不同的系统环境,UI element tree在存储某一个元素会把他们存放在不同的位置;

依据系统的特点,对UI element的属性甚至元素的初始化都不相同;

同一个软件但不同版本,UI展现是不同的,怎样保证同一个UI Automation应用程序能自适应不同的环境,需要程序员仔细斟酌的;

UI element有各种不同的类型,有下拉列表,有单选框,有文本框,有按钮,对于这些类型的UI element的点击方式是不同的;

最后还包括怎样执行不同的托、拉、拽不同的行为和确定移动像素的大小。

很多因素都是UI Automation需要考虑到的。所以UI Automation不像表象那样,告诉应用程序怎么去移动鼠标而已,表面背后藏着一些研究和规律在里面。



2.UI Automation还需要考虑一种情况:当UI automation执行的过程中,发生与期盼的行为不同的情况时,UI automation该如何去处理。



3.还有一个情况比较复杂:就是时间问题。

举三个例子:

a)查找UI element的时候,此时该元素消失了怎么办?或者该元素初始化时间过长;

b)查找UI element的方法在指定的时间内没有找到对象该怎么办?

c)在什么时候去验证是否弹出了某个不期望的对话框或错误提示(这些对话框或错误提示在不同系统环境下存储的位置是不同的,而且出现的时间也不一定。)



举个更具体的例子,这个“时间”包括确保在WaitForClose/WaitForShow/FindUIElement之前中后,不会发生UI element Not availableException 或者NullObjectReferenceException或者NotFoundOutUIException。



然而,这些问题不应该在具体test case里面去解决,应该在这个automation执行的框架上去解决。



4.自动化有这个一个要求,就是不需要人在一旁盯着自动化的执行。

所以需要有详细的日志来记录自动化执行的过程中所有的执行过程,甚至包括if else这样的判断语句。



5.UI automation不仅仅能应用在测试当中,因为UI Automation的本质是不需要人的参与就能自动地对UI进行操作,所以她还能应用中办公中(比如聊天,发邮件,进行数字统计),还能应用中游戏中(打怪物)。前提是这些操作的对象都是可识别的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: