浅谈自动化功能测试

        接触了一段时间的自动化测试,总结整理一下吧,如有不妥之处,敬请指正。自动化测试是指用脚本代码模拟手工的操作,对一个软件进行相应的输入,判断相应的输出,以实现测试的功能。对于手工执行案例,如果案例要执行多次,那么就会非常的耗时间,而且测试人员也会非常的无聊。自动化测试只要实现一次代码,后面可以根据相应的框架关联起来,自动执行案例,比如几十个案例关联起来自动执行,可以节约大量的时间。其次,自动化测试还有一个非常重要的功能是可以与冒烟测试关联起来,搭建持续集成环境,开发方面代码有改动时,自动执行相应的案例,以确保新提交的代码对以往的案例没有影响,确保测试可以进行下去。

我这一段时间接触的主要是基于web的功能测试,也有涉及对Linux后台的一些相关的文件操作。


一、自动化原理

很多应用软件、产品都是基于web与用户交互的。比如对于一些平台的管理,对于一个公司内部的上网管理,管理员在web上下发一些配置,拦截某些IP,怎么知道拦截成功呢,或者说怎么知道web页面展示的数据是正确的呢?最简单的办法是检测用这个IP去访问相关的网页,是否可以操作成功。手工测试的话肯定是一一的去点页面,看看是否可以操作成功。

其实我们的浏览器对于某个请求,是转换成json数据格式,即get/post/put/delete 请求 + url +相应参数与服务器请求的,只要我们用脚本基于自动化框架构造出相应的json数据格式,就能模拟通过浏览器与服务器交互的过程,这就是自动化实现的原理。

对于涉及后台的一些相关操作,比如构造相应的数据,取后台的文件,我们可以用ssh命令连接到后台,同样可以用脚本模拟对后台的操作。


二、功能测试自动化实现

不同公司的框架不一样,但最终目的都是一样的,即构造相应的json数据,模拟浏览器与服务端进行交互,检测对应的功能是否正确,软件是否可以发布。

(1)基于关键字的自动化

有一种实现方法是,根据相应的框架,每个页面请求,即每一个URL有相应的关键字,只要给关键赋予不同的参数就可以构造出同一个页面请求的不同种类。比如模拟输入一个序列号输入过程,对于输入序列号这个关键字,我们可以给其赋予不同的参数,就可以模拟出浏览器输入序列号的过程。先检测错误的序列号是否可以注册成功,只要实现一次代码,一运行就可以检测这个案例,而不用每次都去页面手动输入,非常简单方便。

(2)基于请求的自动化

上面的关键字自动化会产生一个问题就是关键字的数目会比较多,会比较繁琐。想一下,既然普通的页面请求都有一样的格式,为何不用页面请求一个关键字来代表全部的普通请求。但是怎么标识这么多的普通请求呢?我们可以用不同的名字来标识,用键-值来对应名字-URL请求,即请求的名字是唯一的,我们用名字对应到相应的URL,请求的参数可以修改,这样子一个关键字可以代表很多请求,是非常棒的一个选择。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值