自动化测试框架-webDriver的二次封装
Posted sea
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自动化测试框架-webDriver的二次封装相关的知识,希望对你有一定的参考价值。
selenium作为当前流程的web自动化测试框架,每一次版本的更新都会给自动话测试带来质的飞跃。webDriver作为selenium 2.0的核心组件,利用浏览器原生的API,封装成一套更加面向对象的Selenium WebDriver API,直接操作浏览器页面里的元素,甚至操作浏览器本身(截屏,窗口大小,启动,关闭,安装插件,配置证书之类的)。
WebDriver的工作原理
一:webdiver的代码结构
从这张图可以清晰的看到如下几点:
1>webdiver针对不同的浏览器定义的driver都是继承与父类RomoteWebdriver。
2>对每一种浏览器的驱动都有对应的驱动程序,如FirefoxDriver,IEDriver等。
3>自动化脚本是通过HTTP请求来调用webdriver的restful接口来实现自动化脚本的执行。
二:webdriver的工作原理
这张图可以清晰看到自动化脚本从下至上是如何驱动被测试的应用系统在不同的浏览器上运行。
下面这张图可以展现出selenium所支持的语言,操作系统,设备类型
WebDriver的二次封装
webdriver虽然给我们提供了大部分的功能,但是在实际使用的过程中还需要我们稍微的加工一下才会用的更加顺手,通过下面这张图可以看看我们做了哪些加工。
一:UI元素定位-延时查找
应用场景:
运行脚本的时候经常会出现由于UI元素动态加载缓慢,或者是Ajax异步请求的实现,导致UI元素定位不到,就会抛空指针异常。这个时候我们就要用延时查找的机制,来提高脚本的稳定性。
代码实现:
二:异常日志记录-log4j
使用场景:
脚本在运行过程中,为了能快速准确的定位到脚本出错的原因与位置,这个时候我们通过查看日志往往能起到事办功倍的效果,从而能够快速的解决问题。
log4j配置:
异常处理代码:
三:运行失败截图
使用场景:
通常当我们的脚本写的比较长,其中某一步骤运行出错的时候,我如果从代码来判断问题的可以会花比较长的时间,这个时候如果能看到运行失败的截图那么就很容易定位问题。
四:Excel数据驱动测试
使用场景:
通常我们在编写脚本的时候会遇到两种或多种不同业务场景,只是跟输入的数据与输出的结果有关,整个业务流程与操作步骤都一致,那么这个时候可以把输入与输出参数化,即一套脚本对应多个输入输出就为数据驱动。
代码实现:
以上是关于自动化测试框架-webDriver的二次封装的主要内容,如果未能解决你的问题,请参考以下文章
pyse基于selenium(webdriver)进行了简单的二次封装,比selenium所提供的方法操作更简洁。