玩玩自动化测试之selenium篇
现如今社会科技发展太快了,纯功能点点点已经落后别人好几条街了,所以为了让自己多点职业生涯年限,得挺起肩,傲起头,学学自动化测试,但其本质是用代码程序测试程序,所以其实第一步应该学好编程语言,后再自己开发自动化测试工具、框架,这就到了高级测试工程师的位置了,在这之前就要学习掌握许多的相关知识,那首先我们可以先学习探索几个自动化测试工具,这篇主讲selenium
一 前言:
1、为了要代替繁琐重复的手动回归,这时利用上自动化工具是多么妙的感觉,在市面上自动化测试工具有很多,目前最常用的就是QTP和selenium,但是更喜欢selenium,因它开源免费,可定制,多语言,还跨平台(手机、windows、mac和Linux),唯一不足就是不支持桌面应用程序,只支持浏览器
2、什么项目适合做UI自动化:①项目周期长 ②业务流程复杂 ③项目相对来说比较稳定 ④项目基于Adobe flash的话就不适合 ⑤定制化的项目
3、selenium三个版本:①selenium 1版,基于JS,通过向浏览器植入JS,完成操纵网页的目的
②selenium 2版,引入webdriver,基于HTTP协议,代码相当于客户端跟selenium的服务器会开一个session,代码传给selenium的服务器,服务器把代码翻译成driver能听懂的语言,就是一个API接口,通过driver去驱动浏览器,简单讲把浏览器原生的API封装成WebDriver API,就可以直接操作浏览器页面里的元素,所以就像真正的用户在操作一样
③selenium 3版,跟selenium2没多大区别,主要区别是使用Firefox时是必须下载驱动 geckodrive
二 java+selenium框架:
所需环境,搭配好jdk
下载selenium-server-standalone和各个浏览器的driver,链接:https://pan.baidu.com/s/1U8umo6dL908EUfUDu92yBg 密码:3m7s
打开eclipse,在项目里新创建一个folder,把selenium-server-standalone-3.12.0.jar包放到这文件夹里来,然后在项目上右键点击build path—-configure build path…—添加jre,ok.
为了运行代码时能随时随地找到这个driver,可放到项目里文件夹里,或是把driver的目录放在环境变量path里,或放在java/bin里面去,也可以把driver放到各个浏览器目录下边来.
谷歌,火狐,IE,edge等浏览器,其中edge在做自动化时,需要新建一个用户,使用非内置用户,若是系统管理员账号的话是会报错,其他浏览器没影响。
这边开始来如何实现 打开各个浏览器
1 //把webdriver实例化,启动火狐 2 WebDriver dr=new FirefoxDriver(); 3 //WebDriver dr=new ChromeDriver(); 4 //WebDriver dr=new InternetExplorerDriver(); 5 dr.get("https://www.baidu.com"); 6 dr.close();//关掉浏览器 7 dr.quit();//退出驱动
成功打开
注意一点驱动和浏览器版本的兼容问题
嗑个selenium的API,写段代码来操作页面元素
定位页面元素优先考虑id和name,其次是xpath、LinkText,这边还是用百度网址
1 WebDriver dr=new ChromeDriver(); 2 //WebDriver dr=new InternetExplorerDriver(); 3 dr.get("https://www.baidu.com"); 4 //定位到百度搜索框的元素,输入happy 5 dr.findElement(By.id("kw")).sendKeys("happy"); 6 //清除 7 dr.findElement(By.id("kw")).clear(); 8 //重新输入cake 9 dr.findElement(By.id("kw")).sendKeys("cake"); 10 //dr.close(); 11 //dr.quit();
三 Python+selenium框架:
Python官网下载地址:https://www.python.org/downloads/,目前最新版是3.7.0,这版本还不是太稳定,建议下载3.4-3.6版本,配置好环境变量,如下图代表安装成功了
下载安装selenium,只要在命令行输入 pip install selenium会自动安装
用Python敲一段打开浏览器
1 from selenium import webdriver 2 import time 3 #dr=webdriver.Ie() 4 dr=webdriver.chrome() 5 dr.get('http://www.baidu.com') 6 time.sleep(3) 7 dr.close() 8 dr.quit()