自动化测试

    xiaoxiao2025-07-14  20

    自动化测试到底是什么?

    我们可以简单的理解为 : 前期通过人工编码完成框架,后期来解放人力并自动完成规定的测试。

    更通俗点可以这么理解:现在有1号和2号两个机器人,你对其中的1号机器人进行编码告诉他“在每天中午12点的时候给2号机器人一巴掌”,那么当每天到了中午12点的时候,1号机器人就会按照你的编码要求执行,给2号机器人一巴掌,这样你就可以干其他事情去了,不需要自己来做,解放了人力,提升了效率。

     

    自动化测试分层模型

    1. UI层

    UI指的就是用户可以用肉眼看到的页面,大部分人都认为自动化测试就认为是UI层的,这是对自动化测试很深的误解。

    我们先来聊聊UI层自动化测试的原理。不论是Web端还是移动端,原理都是一样的:就是基于页面元素的识别和定位来进行模拟用户行为。首先识别到某个元素,比如一个按钮,然后定义一个动作,比如点击,这样就通过代码模拟完成了一次按钮的点击,代替了人工去点击。如果后期再加入数据驱动和PO (Page Object) 思想就基本可以形成一个UI层自动化测试框架了。

    对于UI层自动化测试的适用范围,不建议做大规模的应用,原因如下:

    ①UI变化频繁,计划根本赶不上变化。

    ②初期见效太慢,等不了,我们都希望恨不得用了自动化测试技术就能立马看到带来的效果,但事实总是相反,自动化测试的效果是在后期体现的。

    ③前端的开发不规范,导致很多元素识别和定位起来较为困难。

    那UI层自动化测试是不是就不能应用了呢?必然不是!保持一个客观、公正的态度来看待是非常重要的,比如UI层自动化测试可以应用到冒烟测试中,这里的冒烟测试是指主流程的测试,就是那些非常重要且不会频繁变化的流程,可以利用UI层自动化测试来完成。所以,用与不用关键在于它的适用范围,只有在合适的范围内使用了合适的技术才会表现出最好的效果。

     

    2. 接口层

    接口层是现在在企业中应用最为广泛的自动化测试方法之一,它的优点在于基本规避了UI层自动化测试的缺点,并且一旦形成较为稳定、完整的框架后基本上是比较通用的,不论是在Web端还是移动端都可以使用。但缺点也很明显,就是对测试工程师的编码能力要求较高,这也是很多测试工程师止步于此的重要原因。

    对于接口层自动化测试比较推荐,建议有能力多去学习一下,对于自身测试技术的提升还是有明显帮助的。一般接口层自动化测试都会用Python、Ruby等语言开发,比如,某租车公司的接口测试框架是用Ruby开发的,但是之前的接口测试框架是用Python开发的,所以这里大家不必纠结用什么语言开发,每个语言在编程思想上是通用的,只是在语法上稍有不同而已,基本上你熟悉了一门语言后学其他的语言都会非常快。

     

    3. 单元层

    单元层的自动化测试对测试工程师的编码能力要求较高,而且要能看懂业务的实现代码,这样才能针对被测代码编写单元测试代码,一般都是引入XUnit、TestNG等框架来完成。

    其实,自动化测试的难点在于框架的设计,并不在于写代码。框架的设计需要统筹全局,就好像一个指挥官。而最后来实现框架你招几个有代码能力的人怎么都可以实现。很多人在写代码的时候表现还不错,但是设计框架的时候毫无头绪,或者说是没有框架设计的思想,导致大脑一直空白,这样对自己职业发展是十分不利的,只有当你具备总体框架设计的思维能力,才能利用自己会的语言去实现,过程中无非就是在实现的过程中遇到问题了查查资料而已。可见,有时候思想是多么关键啊!

     

    任何无法服务于业务的技术都是没有价值的,自动化测试也是,只有自动化测试能真正的服务于业务,并带来较高性价比才有价值,单纯拿代码堆叠起来的自动化测试不可取。

    最新回复(0)