WebDriver自动化测试的伟大演变之路(图解)
Posted 光荣之路
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WebDriver自动化测试的伟大演变之路(图解)相关的知识,希望对你有一定的参考价值。
Web自动化现状
据我观察,想学自动化的同仁都是冲着以下几点去学:
1:为了找工作学自动化,觉得这个高大上,面试时说了这个有加分项
2:看到人家学,自已也想跟风
3:在实际测试过程中重复操作太多,跳过重复测试项又担心测试不严,担心出现线上Bug
带着以下几个问题,我带大家来了解下自动化前世今生,如何一步步优化让自动化真正服务于企业。
演变之一 Selenium IDE
首先大家刚入门肯定会听到过IDE吧,对,我也是从IDE录制入门,录完之后就能看到画面在动,选择文件导出之后就可以自动生成代码,觉得好兴奋,感觉一下子就可以成为会自动化的测试人员了!
在这顺便也将最入门的知识一普及下,如何使用IDE工具。
首先下载xpi(http://down.51cto.com/data/2041803)并解压缩,之后拖动文件到游览器。
可以选择不同语言安装。
重启浏览器,在菜单栏找这个图标。
将会弹出如下窗口。
在浏览器输入网址执行任意操作,执行之后切换到Selenium IDE窗口。
就能看到有部分控件id,点击运行之后浏览器会自动执行相关操作。
选择文件导出之后可以自动生成自动化代码。
IDE在刚入门时部分控件定位方式不知怎么写时,可以试着录制一次,之后导出源代码,查test()方法中的定位方式。
还有另一种方法是在IDE窗体中选中一行控件,之后点find按键,系统会在浏览器对应元素上高亮一下,如可能高亮,代表定位方式是正确的,另外IDE窗体中Command和Target下拉菜单是可以选择的。
优点:入门简单,安装之后就可以使用,也能自动生成代码,对无代码功底同仁不失为一个很好的学习范例。
缺点:脚本录制之后只能执行一次完全相同的操作,即使是数据相同,操作完全相同也无法执行第二次。
演变之二 手工编写硬代码(元素,数据,代码全集成在一起)
基于以上缺点我们将代码做一些优化,手动编写代码的方式,可以对关键操作之后增加断言,确认结果是否与预期相同。
publicstaticvoid test() {
WebDriver driver=newFirefoxDriver();
driver.get("http://www.baidu.com/");
driver.findElement(By.id("kw")).sendKeys("迅银网");
driver.findElement(By.id("su")).click();
String text=driver.findElement(By.xpath("//h3/a[@target='_blank'][text()='-互联网金融综合服务平台']/em[text()='迅银']")).getText();
Assert.assertEquals("迅银", text);
System.out.println("验证PASS"+text);
}
类似于上面手工编写代码如果步骤比较多的话,相同代码会很多,比如点击操作,那一条操作会要写一次。
优点:手工编写代码较IDE 生成代码要灵活,可以断言,可以任意增加删除代码
缺点:相同操作代码要重复编写,而已每一行还很长
(未完待续)
一字一句当思来之不易,感谢作者,传播测试知识、技能与正能量!
光荣之路软件测试培训
官网:http://www.gloryroad.cn/
微信公众号:gloryroadtrain
以上是关于WebDriver自动化测试的伟大演变之路(图解)的主要内容,如果未能解决你的问题,请参考以下文章
免费送书 | 《Selenium WebDriver 3 实战宝典(Java版)》