Web自动化测试

一、对自动化测试的理解

            一般是指在预设条件下做测试,评估运行结果,预先条件应包括正常条件和异常条件。只是这些测试不再是人来做,而是借助工具(不细说这里)去实现这一过程的自动化!我个人理解:自动化测试的目的更多的是完成功能测试!

            对于自动化测试,可以分很多快,下面可能只是小编学到的分类的一种

                               

         单元测试自动化 Unit :是整个金字塔的基石,如果基石不稳,Service 和 UI 何谈有构建意义呢?只有基石稳如磐石,上层建筑才够坚固。Jenkins 将作为自动化单元测试持续集成的平台, 实现自动化构建,当然也单元测试的方式还有其他。tip:单元测试关注的是代码的实现与逻辑。

         接口测试自动化Service:根据接口文档,到底是传get请求呢?还是post请呢?调用被测试的接口,构造相应的数据(id=1,name=zhangsan),得到返回值,是200成功,并返回查询结果。还是10021,用户名不能为空。不管输入的参数是怎样的,我们都将得到一个结果。最终断言返回的结果是否等于预期结果。如果相等,测试通过;如果不相等,测试失败。所以,tip:接口测试关注的是数据。只要数据正确了,功能就做成大半,剩下的无非是如何把这些数据展示在页面上。

        web测试的自动化UI,这种测试更贴近用户的行为,模拟用户点击了某个按钮,向个输入框里输入了什么。但是用户可以看到登录成功了,但web自动化并不知道它刚才的点击有没有生效。所以,要找“证据”,比如,登录成功后页面右上角会显示“欢迎,xxx”。这就是登录成功的有力“证据”。于是,当web自动化登录成功后,就去获取这个数据进行断言。断言如果相等,测试通过;如果不相等,测试失败。所以,tip:web自动化测试的关注点用户操作行为(但注意是预先条件下的用户行为,本质上用户行为不可预测)。

二、Web自动化测试

           既然已经知道web自动化测试是模拟用户行为,用户操作的是页面UI,这个时候我们就要明白我们的出发点和着手点!

           第一层次:首先得知道什么是元素?怎么去定位一个页面元素?怎么去控制元素?怎么控制浏览器?.....学完这些,那么恭喜你,你可以写简单页面的自动化功能测试了。

           第二层次:熟练的编写页面自动化脚本:碰到复杂的页面,比如嵌套很多,知道怎么去跳转。复杂元素,怎么去定位,各种页面元素的处理,比如表格、下拉框、弹出框等等。

           第三层次:熟练掌握上面技巧之后,开始学习怎么将页面元素与代码分离,学习数据驱动,以及怎么样结合各种数据源(比如Excel)去做自动化测试。

           第四层次:学习持续集成的方法,怎么样将自动化测试更加“自动化”。同时,开始学习自动化测试框架,能够根据产品的实际情况来编写合适的测试框架。

          当然上面说的是理论,小编目前就是第一层次,实践了第一层次,博客链接:Node.js的Web自动化测试https://blog.csdn.net/LyySwx/article/details/86741083欢迎大家阅读~

三、是否所有的项目都适合自动化测试?

            在这里要提一下不是所有的项目都适合实施自动化测试的,有的项目实时自动化过程困难重重,浪费大量成本和时间并且没有得到应有的收效。大家可以在去google,baidu下,也可以通过工作经验去体会!下面小编说一些些,如果有错误或者不全面的欢迎大家留言斧正?

         不适合自动化测试的情况
         1.定制型项目(一次性的)。为客户定制的项目,维护期由客户方承担的,甚至采用的开发语言、运行环境也是客户特别要求的,即公司在这方面的测试积累就少,这样的项目不适合作自动化测试。
         2.项目周期很短的项目。项目周期很短,测试周期很短,就不值得花精力去投资自动化测试,好不容易建立起的测试脚本,不能得到重复的利用是不现实的。
         3.业务规则复杂的对象。业务规则复杂的对象,有很多的逻辑关系、运算关系,工具就很难测试。
 美观、声音、易用性测试。人的感观方面的:界面的美观、声音的体验、易用性的测试,也只有人来测试。
         4.测试很少运行。测试很少运行,对自动化测试就是一种浪费。自动化测试就是让它不厌其烦的、反反复复的运行才有效率。
         5.软件不稳定。软件不稳定,则会由于这些不稳定因素导致自动化测试失败。只有当软件达到相对的稳定,没有界面性严重错误和中断错误才能开始自动化测试。
        6.涉及物理交互。工具很难完成与物理设备的交互,比如刷卡的测试,指纹签到机等。

        适合自动化测试的情况
         自动化测试之所以能在很多大公司实施起来,就是有它适合自动化测试的特点和高的投资回报率。
         1.产品型项目。产品型的项目,每个项目只改进少量的功能,但每个项目必须反反复复的测试那些没有改动过的功能。这部分测试完全可以让自动化测试来承担, 同时可以把新加入的功能的测试也慢慢地加入到自动化测试当中。
         2.增量式开发、持续集成项目。由于这种开发模式是频繁的发布新版本进行测试,也就需要频繁的自动化测试,以便把人从中解脱出来测试新的功能。
         3.能够自动编译、自动发布的系统。要能够完全实现自动化测试,必须具有能够自动化编译,自动化发布系统进行测试的功能。 当然,不能达到这个要求也可以在手工干预的情况下进行自动化测试。
         4.回归测试。回归测试是自动化测试的强项,它能够很好的验证你是否引入了新的缺陷,老的缺陷是否修改过来了。在某种程度上可以把自动化测试工具叫做回归测试工具。
         5.多次重复、机械性动作,将烦琐的任务转化为自动化测试。自动化测试最适用于多次重复、机械性动作,这样的测试对它来说从不会失败。比如要向系统输入大量的相似数据来测试压力和报表。
         6.需要频繁运行测试。在一个项目中需要频繁的运行测试,测试周期按天算,就能最大限度的利用测试脚本

                       推荐博客:实践篇Web自动化测试

                              希望对大家有帮助哦,喜欢的话右上角点赞呦??????????

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值