使用 UIAutomator 做 UI 自动化,当 UI 改变后,对编写的代码有影响吗? 使用这个 UIAutomator 工具有什么前提条件吗??
这个问题和传统的 web 自动化测试是一样的。 UI 的改变对自动化测试的代码影响有多大。
最基础的自动化,就是把所有的控件都 hard coding 在代码里。 稍微好一点,可以把控件抽离出来,放到资源文件中去。 最好的就是封装。在 web 中,有 page object。 我想在 app 里面应该也有 view object 或者类似的封装。
把控件之间的逻辑和控件本身解耦,是关键。
ui 要变,肯定对代码有影响,因为开发者在对 ui 结构上做大的改动时,对于元素的命名继续沿用以前的可能性很小。而且对于元素的行为操作也可能有变化,以前可能是是点击,之后改成长按。所以,经常会有改动的页面也好,app 也好,非常不适合用自动化来进行测试,有点得不偿失。自动化更适合那些很基础的功能测试,或者重复性很高的测试。
如果能够快速重建起来对应的测试用例, 也是可以接受的. 让实现自动化测试的成本变小, 也是一种解决途径.
#3 楼 @seveniruby 对,就看 ROI 是否是在一个合理的范围