最近没事看了一些自动化的文章,有些地方我同意,有些地方有些看法。所以想投一下稿,第一次写文章,请见谅。本文章不涉及具体的操作,只是讲讲心得。
先说说我,我做原来是做自动化外包的,用的QTP,做了差不多5年的测试。和我其他人解释自动化的时候,最直接的方式就是:你们看到的自动化就是按键精灵,不过他比按键精灵仔细,可以做我们想要做的东西,而且还可以出文档。说道QTP我想说的就是,录制是QTP的精华,不过要做自动化项目。只用录制是远远不够的。
为什么要引入自动化,网上有很多说法,具体我就不说了。我自己说一下我做过的自动化项目的结构,系统对大家有帮助。
我们一个自动化的包有这些:对象库、代码、函数库、数据、组装好的流程。如果项目经费充足的话,可以买一套框架。
对象库就是放对象库的,我们放对象库一般放得很少,如果是web一般就会放两次,浏览器+第一次页面。其他的都不会用到,如果第一次页面有变动量很大的话,可能对象库都不要用,都是用描述性编程。写的时候可能会难写,但是后期维护很好。
代码,重点说说代码。我看过有些人做的代码有一类是分得很细,会把每个控件都封装,交给业务人员来组装,我不同意这样的观点。我们一般封装是一个大的模块进行封装。例如:登陆模块,购物模块,支付方式模块、发货模块、退换货发起模块、审批模块等等,差不多就这几个模块,不要过于细分,细分可能会造成代码的冗余。
函数库,主要是放一些对控件特殊的处理,数据库处理,一些通用的逻辑处理。特别要说明的时候,我会把很多逻辑处理存放于函数库。让我的代码里面尽量少出现if。
数据,就不用多说了,我的做法是,吧所有用到是数据都放在表格中,而且这边表格数据一般情况下是不用修改的,如果是用户名之类的,没错都要修改的数据,我会放在TXT中,这种数据要尽量少一般不会多过5个数据,这些数据是每次运行脚本的时候都要修改的数据。
组装好的流程,也可以说成是案例。不过不像案例那要细。手工测试可能会把一次点击当成一个案例,自动化案例不需要那要细分,流程中就包含了这些,举例说购物的流程中包含这几个部分:一件商品的流程、多件商品流程、支付宝支付、自己的钱包支付、后台不出库、后台出库。把这几个部分做一个矩阵就有8条流程,足够覆盖购物流程。
前面都是铺垫,这一次重点说说代码。我们写代码一般都是通用性很强。例如:选择支付方式模块中有支付宝、自己的钱包、货到付款。这三种方式,应该吧三种方式都写着一个文件里面。而不是分开写,这样有助于后期的维护。只要通过输入的数据对他进行区分就好。例如:excel中支付方式为:支付宝,我的脚步就会运行支付宝部分的脚本。
而且在脚本中会放入很多的校验和动态等待的脚本,感兴趣以后可以讲讲这部分。
现在很多人不喜欢这样做,他们喜欢把每个模块更加的细化,脚步有自动化人员进行编写。然后由业务人员进行组装。我不同意这样的做法,原来我们也做过这样的细分,不过效果不佳。业务人员只关心他们的业务,他们在来模块的时候,经常忘记某个模块,而且在填写数据的时候,如果没有下拉数据,他们很难在没有页面的情况下填写数据。我们的做法是自动化还是由专门的自动化人员进行操作。这样可能人力方面增加,不过这样做可以有效的利用自动化的模式对系统进行测试。
... ...
查看全文内容,请点击下载:http://www.51testing.com/html/65/n-3704165.html
版权声明:51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。