app测试中,随着功能的不断增多,每次发版本的时候需要回归内容就越来越多,回归需要花费的时间从1小时扩大到4小时,8小时甚至多天。为了减少投入回归的时间成本,人力成本,无数的测试人员开始尝试UI自动化。
其实无论是web UI还是app UI 自动化都是存在一定的共性内容。就是通过控件的位置、名称、属性等获取控件对象,并且通过操作控件对象或者坐标来模拟用户的操作。它包括三个核心部分:
动作执行需要先有动作,然后再进行执行,动作的获取有两种方式,一种是通过录制脚本,主要是记录空间的位置坐标和发生的事件,通过回放脚本完成测试事件,像airtest框架就提供比较方便的录制回放功能。
另一种方法就是通过工具(比如:airtest、UIAutomatorviewer等)获得测试界面的控件布局,找到目标控件的ID、名字、描述或者位置信息等。测试框架可以通过这些信息得到控件对象,并对控件对象执行一系列事件操作,例如Airtest提供的poco库。
结果判断,即断言判断。UI自动化的断言判断可以从2个方向进行判断。首先判断存在,然后判断值是否正确。
(1)截图对比。针对于按钮类或者页面其他样式类的,可以采用截图判断。如是否出现登录按钮、是否出现礼物拆分样式等。
(2)控件对比。对于页面内容的判断可以使用控件对比,即将获取控件上的信息与预期的信息进行对比,判断测试结果是否通过。如文本的改变等。
进行自动化操作后,执行结果是什么,我们自己可以在ide里看到,但是如果需要将结果展示给其他成员看的话,就需要考虑测试结果报告的输出与展示。
报告展示一般是指给出整个测试的结果信息汇总并进行简单的分析,测试结束后直接输出预警和初步的数据报告,以邮件或者其他形式直接周知项目参与人员。需要包含测试时间、执行的操作、执行的结果、每个操作执行的具体时间、内容等信息。
以上就是UI自动化的原理分析,UI自动化共性上都具备动作执行、结果判断、结果报告输出三个内容,如有疑问,欢迎评论区讨论。
作者:赵糖糖
链接:https://zhuanlan.zhihu.com/p/369984252