前戏
相信大家对web自动化selenium都不陌生,是一个web自动化框架,我在第一家公司的时候,产品是两个星期一个版本,每一次发布测试都要进行回归测试,也就是大家说的点点点,后来我就想,能不能做成自动化,让代码来替我进行回归测试,每天下班之后,就学习selenium的api,后来也终于使用selenum+python写了一个web自动化测试框架,在每次回归的时候只要运行程序,程序就会自动替我执行,遇到失败的用例也会给我进行截图和错误信息的写入,我只需要看一下失败的用例就可以了,大大减少了我的回归测试时间。那selenium和QTP自动化相比怎样呢?来看一下下面的对比
* 免费,也不用再为破解QTP而大伤脑筋
* 小巧,对于不同的语言它只是一个包而已,而QTP需要下载安装1个多G 的程序。
* 这也是最重要的一点,不管你以前更熟悉C、 java、ruby、python、或都是C# ,你都可以通过selenium完成自动化测试,而QTP只支持VBS
* 支持多平台:windows、linux、MAC ,支持多浏览器:ie、ff、safari、opera、chrome
* 支持分布式测试用例的执行,可以把测试用例分布到不同的测试机器的执行,相当于分发机的功能
安装:
安装自动化环境是我们必不可少的一步,web自动化相对于appium安装环境要容易好多好多好多好多。。。
首先我使用的python版本是3.6,编辑器是pycharm,selenium的版本是3.12.0,谷歌浏览器的版本是74.0.3729.157
上面的几个软件我相信大家都会安装,这里就不详细说明
然后我们写一个简单的例子来看一看
from selenium import webdriver driver = webdriver.Chrome() # 实例化一个谷歌浏览器对象 driver.get("https://baidu.com/") # 打开百度网站
执行上面的代码,发现报错了
selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home
因为我们少安装一个谷歌驱动,大家可以去这里下载
下载的是一个chromedriver.exe文件,我们把它和python.exe放在一个目录下
然后我们重新运行上面的代码,这时就会打开浏览器,进入百度首页
如果我们想用firefox浏览器怎么办,很简单,可以去下载一个firefox的驱动,然后也放在那个目录下,然后把上面的代码改为
from selenium import webdriver driver = webdriver.Firefox() # 实例化一个谷歌浏览器对象 driver.get("https://baidu.com/") # 打开百度网站
如果你找不到python.exe的目录也没关系,我们可以在生成driver的时候,指明浏览器驱动的地址就可以了
from selenium import webdriver driver = webdriver.Chrome(executable_path=r'F:CJMDXTtestconfigdriverchromedriver.exe') # 实例化一个谷歌浏览器对象,指明驱动的地址 driver.get("https://baidu.com/") # 打开百度网站