最近浏览了很多同学的简历,大部分都有自动化测试,基本都有selenium。但很少有人真正弄清selenium。一个是selenium的提供了很多组件,让人容易上手,然后很多人就没有然后了。二是selenium的更新伴随着工具的合并,很多人压根没高清自己用的是selenium RC 还是 webdriver。
根据最近面试的情况,把很多同学在实践selenium的时候没弄清的问题总结了一下,顺便教大家如何快速玩转selenium!
10分钟玩转Python+Selenium自动化测试,快速入门通道!
现在测试工程师都在聊什么?
1、python会了吗最近?
2、selenium自动化你们团队进度怎么样?
3、你们自动化框架应用的如何?
4、一直搞手工职业发展会有瓶颈啊,测试真心要往测试开发走啊,搞自动化……
5、我们招聘自动化工程师都10K起,但是到目前还没有招到合适的人选哦,赶紧也学学自动化,涨薪或跳槽去……
自动化工程师的规划之路
10分钟玩转Python+Selenium自动化测试,快速入门通道!
如何玩转Selenium自动化?
目前市场上的自动化工具很多,selenium只是其中的一个突出代表。近几年随着开源风、selenium的稳定、版本更新等越来受到市场的欢迎。当然这里不可忽略Python的作用哦!
如果你是小白,想学习自动化,强烈推荐python+selenium。
不要一提代码就恐怖哦(很多测试工程师的通病),其实python与selenium就是一个【纸老虎】,要勇于面对,勇于挑战哦,要不自己没有技术上的竞争力,谁来给你涨薪呢?
!、python上手容易,语法简单、大量第三方模块的支持- selenium针对b/s支持非常好,目前各大主流浏览器均支持。当然我还是喜欢FireFox。
学习selenium,IDE部分不是主要的点,重点放在webdriver API部分。
2、千万不要把大部分精力放在IDE部分哦
前端知识要适当储备:html、css、js基础等,但是不要把自己搞成前端工程师哦,当然那样对你也是非常有益的。
Selenium是什么?
Selenium是什么,相信从事自动化测试的同学或者有过Python爬虫经历的同学都会有了解。
Selenium是一个Web自动化测试软件,正如Selenium官网所言:Selenium主要是为了测试目的而进行自动化的Web应用程序,但是当然并不限于此,一些基于Web的无聊的管理任务也可以使用Selenium进行自动化。嗯,比如爬虫。
网络爬虫应该是Selenium除了Web自动化测试之外,最为人所熟知的应用场景了,它在面对一些JS生成的动态网页时能够有效的获取到页面上的数据。可以说是Python网络爬虫的必备良品。
Python+selenium环境搭建
1、Python环境安装
· 下载和安装Python
· 设置环境变量:已管理员身份运行cmd,输入如下命令:path=%path%;C:\Python27
· 运行python:在命令行中输入python运行python
10分钟玩转Python+Selenium自动化测试,快速入门通道!
2、PIP的安装
· pip类似RedHat里面的yum,安装Python包非常方便。(点击图片即可下载)
·下载后解压,使用命令行进入解压出来的目录,运行命令:python setup.py install
· 增加环境变量:命令行中输入path=%path%;C:\Python27\Scripts
· 看下是否安装成功:输入pip -v
3、安装selenium for python
· 命令行输入:pip install selenium(点击图片即可下载)
·验证是否安装成功:在cmd输入python进入python环境,然后输入 from selenium import webdriver,如果不报错就代表selenium安装成功。
10分钟玩转Python+Selenium自动化测试,快速入门通道!
4、PyCharm的安装与使用
· 在Python开发过程中,比较流行,很优秀的一款IDE工具-PyCharm,这里关于它的介绍就一句话,它就相当于Java开发中的Eclipse软件一样。(点击图片即可下载)
· 创建工程 ·
10分钟玩转Python+Selenium自动化测试,快速入门通道!
5、通过脚本打开关闭浏览器
要用selenium打开浏览器。首先需要去下载一个driver插件(不同的浏览器对应不同的driver插件),这里以chrome为例,下载好后将该插件放在Python安装目录下即可。
10分钟玩转Python+Selenium自动化测试,快速入门通道!
这样,一个完整的测试框架和Demo就搭建完成了,你学会了吗?
使用selenium做自动化测试常见问题
1、selenium中如何判断元素是否存在?
答:isElementPresent
2、selenium中hidden或者是display = none的元素是否可以定位到?
答:不可以定位到
3、自动化测试的时候是不是需要连接数据库做数据校验?
答:UI自动化不需要,接口测试会需要
4、webdriver可以用来做接口测试吗?
答:有一定难度,不推荐做接口测试
5、如何去定位页面上动态加载的元素?
答:触发动态加载元素的事件,直至动态元素出现,进行定位
6、如何去定位属性动态变化的元素?
答:xpath或者css通过同级、父级、子级进行定位
7、点击链接以后,selenium是否会自动等待该页面加载完毕?
答:会的等待该页面加载完的
8、自动化测试用例从哪里来?
答:手工用例中抽取出来,可以参考自动化用例的执行策略
9、你觉得自动化测试最大的缺陷是什么?
答:不稳定、可靠性、不易维护、成本与收益不成正比
10、什么是分层测试?
答:UI测试、集成/接口测试、单元测试这些都可以算做分层测试
总结:
随着对测试开发的逐渐流行,测试人员的代码能力也在提升。在selenium的学习中,更需要掌握webdriver的api,探索selenium的更多特性。
没有过不去的火焰山,没有吭不掉的技术难题,只要你敢,肯下功夫,都会取得最终的胜利。