概念
为什么先要从概念说起呢?对于新手而言可能总是把自动化看得很高端和牛逼。
我们先来想想常见的功能测试是如何进行的:设计测试用例,然后测试人员执行测试用例,对比执行后的实际结果与预期结果是否相等。如果相等,测试通过。如果不相等,测试失败。
其实自动化测试做的事情和功能测试没有差别,自动化测试主要分三个层面去自动化,单元测试自动化、接口测试自动化、web测试自动化。
单元测试自动化
调用被测的类或者方法,根据类或者方法的参数,传入对应的参数,然后得到一个返回结果。最终断言判断返回的结果是否与预期结果相等。相等,测试通过,不相等,测试失败。所以呢在单元测试
里面主要是关注的代码实现与逻辑,这个当然一般是由开发完成。
接口测试自动化
根据接口文档,编写设计测试用例,根据测试用例向接口提交请求,根据返回的结果数据去判断状态码,响应的msg去判断接口测试是否通过。所以在接口测试关注的是数据,只要数据正确了,功能就基本完成一大半了
,剩下的就是把数据展示在前端页面上。
web测试自动化
web测试自动化,这中测试更加贴近用户的行为,模拟用户点击了某个按钮,向输入框输入了什么。比如一个登陆功能,用户输入了账号密码点击到哪里,是可以看见登陆有没有成功的。单web自动化就并不知道
用户刚才的点击有没有生效。所以这个时候就要数据证明了,比如登陆成功后页面会跳转到主页面,页面上会显示“欢迎 xxxx”。这个就是登陆成功的有效数据证明,于是,web自动化登陆成功后,就会去获取这个数据进行断言。
如果相等,测试通过。如果不相等,测试是吧。web测试自动化关注的是用户的操作行为,页面上的按钮和输入框是否可用。
从测试的行为本质上去分析,功能测试和自动化测试没有区别。唯一的却别,一个是人工操作,一个是由代码工具执行。
误区
很多朋友都会认为,有了自动化,我们就可以高枕无忧的坐等测试报告了,其实并没有。因为能做自动化的项目,一定是经过很多次测试,并且框架和功能相对是比较稳定的才能去编写自动化测试代码;也不能说你掌握了自动化,
你就可以走上人生巅峰,迎娶白富美了。主要还是看自动化框架在公司是否实用,对于公司项目而言,如果产品三天一小改,半月一大改,那自动化也就只能说说而言,可能你自动化脚本才刚开始起步,然而产品就已经有所改动了。
所以自动化测试也是一种辅助的方式,最重要的是一切要以做好功能测试为前提。