Web UI自动化测试的不稳定性有两个层面:
- 技术层面–没有构造健壮的能稳定运行的脚本
- 非技术层面–项目原因或者用Web UI自动化企图达到不合适的目标,造成脚本频繁改动,维护成本高
今天先说第一点。
首先,Web UI自动化测试是不稳定的,哪怕脚本写的很棒!为什么?因为Web应用本身就有不稳定的情况存在。以下这些情况想必我们都经历过:
- 点击网页上的按钮或者菜单没有响应(有时候第二次点击才有响应…)
- 网络延迟严重,页面响应慢
面对本身就不是100%稳定的Web UI,怎样构造高质量的自动化脚本?我的建议如下:
【关于控件定位】
定位条件多用组合,多留冗余,不要写死,比如:class包含form-arrow-button并且id以GroupName开头并且子节点数量大于1
如果写成id=GroupName-1024,那就很危险,下次在其他的测试用例里,先去某个也有类似控件的页面做一些事情再来这个页面找这个控件,那这个页面的控件可能就不是GroupName-1024了,可能是GroupName-1448。当然这不是绝对的,这是由前端代码和项目特质来决定的。
有时候控件也定位到了,但是操作它就是没有响应,那么,请检查下它的可见性,很可能我们定位到了一个很类似的控件上,而且这个控件当前是不可见的。一般是否可见放在了控件的style属性里。
构造脚本时考虑要全面,举个例子,下拉菜单当前只有3个元素ÿ