微信号:grzlwx

介绍:光荣之路官方资讯

WebDriver自动化测试的伟大演变之路(图解) (二)

2015-09-19 21:21 刘长新


演变之三 (操作方法二次封装)

为解决上述问題我们可以尝试将相同操作二次封装,可以精简每一行代码量。

这样简单的二次封装下代码量就减少了不少。

我们还可以将不同的操作放在一个方法里,比如网站登录多个操作封装成一个方法。

最终爆露给用户的就只要输入用户名,密码两个参数就可以完成网站打开,输入用户名,密码,点登录多个操作:

Login(driver,”张三”,“123456”);

演变之四 (数据驱动)

上述操作解决了个简化了部分代码,但如果数据要变化,就需要重新编写代码,所以我们可以继续优化操作,将代码与数据分离,比如上面登录操作,我们可以将用户名和密码放到一个Excel 文件中,




在每次执行时去读Excel相对应的数据,

第一次执行login 方法时:

Login(driver,”13764142840”,“QQQQQQ”);

第二次执行是:

Login(driver,”18721694074”,“QQQQQQ”);

类似于这样,相同测试步骤我们就只需要写一次用例,也就是网上所讲的数据驱动测试。

数据驱动方式有好多种,既可以从Excel中读取数据,也可以从XML中读取,还可以从代码数据提供者中读取。

演变之五 (POM 页面对象管理)

到这里我们了解到了数据驱动测试,但还是有个问題,如果公司以这种方式来实施自动化,首先公司得配置大量专业级别的有开发功底的自动化工程师,因为测试系统任意元素变化,与之相关的测试元素定位全要修改。所以我们可以再上面数据与代码分离的基础上继续优化,测试元素与代码实现分离。


使用一个专门的Excel 或TXT 文档来维护测试对象,如果元素有变化,只需要在元素管理的文档中稍作更新,与之相关的代码仍可使用。也可以用一个类来管理对象属性,如下我用一个page 的类来管理 登录属性。


后续要操作登录时就直接用page.username 引用那个属性,假如userrname 的属性变了,那我们只需要修改page 中的属性即可。

这种方式管理对象属性网上有一个专用名称叫Page Object Model | POM

现在我们知道可以将数据与代码分开,代码与元素分离,但实际还是存在一个问題,假如测试元素,测试数据都存在,如何样将这些步骤组合起来成为一个完整的测试用例呢,是继续用代码的方式一行行累积,还是换一种方式来编写用例呢。

演变之六 (关键字驱动)

为此我们可以设想下是否可以测试方法转义,比如click 给起个别名叫点击操作。

我编写用例时就不需要有太多英文的操作方法,同样每个对象属性我们也可以给个中文名称。

元素管理Sheet

用例编写Sheet


像上面我们将所有对象全转换成中文,编写用例时只需要选择对应的中文名称,系统就会自动匹配到相关xpath 路径出来。

(这种网上的叫法叫关键字驱动,就是编写自动化用例时不需要任何代码,全部用中文就可以实现编写完用例,这样公司也不需要自动化开发人员来编写代码,功能测试人员即可自主完成用例编写)


Excel 虽然看起来比较完美,但是可以存在文件易丢失,损坏,所以我们还可以继续优化,将元素,数据, 用例存放到服务器数据库中,执行时动态从数据为中读取数据。

演变之七 (自动化管理平台)

也可以像这样,开发一个自动化管理平台,元素录入,用例管理,测试报告检索,全在平台上进行。




(完)

(作者:刘长新 来源:http://blog.csdn.net/liuchangxin1982/article/details/47611299)


 
            
 
            
 
            
 
           
 
           
 
           
 
           
 
           
 
           
 
           
 
           
 
           
 
           

一字一句当思来之不易,感谢作者,传播测试知识、技能与正能量!

光荣之路软件测试培训

官网:http://www.gloryroad.cn/

微信公众号:gloryroadtrain

性能测试QQ群:415987441
软件测试招聘QQ群: 203715128
自动化3群QQ: 371211499

 
光荣之路 更多文章 今天晚上的 linux 公开课- Awk 编程 7月28日(今天)晚上的 linux 公开课- shell编程 8月4日(今天)晚上的 linux 公开课- shell编程 9月1日(本周一)晚8点半,光荣之路Web自动化系列基础课—javascript第二讲 推荐本好书《与机器赛跑》
猜您喜欢 技术驱动电商未来 IPv6 socket编程下--实现篇 逗逼程序猿养成记(一) 老司机教你“飙”EventBus3 你有一份六一儿童节礼物未领取