Selenium傻瓜入式门分享


(萌新左手) #1

先随便撩一撩

(版权所有!上海889亚西的萌新左手!有事请在群里找我!)

(很多东西都是个人理解,如果有不对的地方请大家批评指出,群里有我的联系方式)

此文档研究的不深,想让大家认清楚,克服大家心中对自动化的畏惧,自动化真的不难!我还想谈谈入行测试后的一些想法,希望对大家有帮助。

先“虾扯蛋”一发,入行测试已经有半年多了,从一开始什么都不知道的“小白”,到现在为止什么都知道一点但是好像都不知道
“小白”。

个人觉得软件测试的其实应该是像老师一样的“角色”,但是为什么在实际情况中却不是呢?它定位低,门槛低,无限重复和机械的工作,一个版本一遍又一遍的不休止。但是作为我们,难道愿意就这样不断的循环下去吗?

其实软件测试不可能做一辈子,没理由等我们老了还能抗住这么大的压力,我们要改变!而我们这种半路出家的人本身学软件这个东西的难度我是理解的,我们发展成为测试圈子里很有能力的路也是不容易的。不像那些本身就是技术出身的人,对待这方面的本身就有一定的“自我价值观”(指对软件的理解)。

而我们半路出家测试人的发展则更应向管理或者产品方向靠拢。虽然这话没毛病,但是我还是想说我们应该从做好一件事情开始,那么这件事情就是,测试!

讲讲自己所处的环境

我是做B/S架构的测试人员,我们的开发语言是JAVA。所以此处我只介绍JAVA方向的selenium。

当然它也有python方向和其他很多语言方向,不过我也不懂,如果有问题就不要问我啦。

申明一点,不管什么方向,自动化的基本原理都是一样的,不同的只是。。。。。。。。。。。。。。。。。。。开发JAVA的环境和python或者是ruby的环境当然不一样啊!

自动化测试到底是干嘛的?

“搞个脚本跑一下”

我觉得这句话已经概况了,如果还不理解,容我解释一下:回想一下我们的测试工作每天是怎么进行的?(目前只谈最基本的功能测试),是不是打开界面然后输入,确定,删除,点这个,点那个,校验这个,审核那个对吧。概括增、删、改、查。

那么“搞个脚本跑一下”就是,录制一个脚本然后跑一下;要么写一个脚本跑一下;最重要的是脚本可以重复使用!天啦噜,再也不用重复的!

说明一点:如果需求更新,项目更新什么的,脚本也是需要修改的,录制的脚本是百分之百需要修改的针对于JAVA来说我们可以加一些判断(if_else),业务逻辑也可以加进来,这个以后下面再谈。

自动化简单原理

请问浏览器是不是能打开一种叫做HTML的东西(超文本),先不管它是啥。

(不懂的话百度一下去认识下HTML的结构,大概认一下就好了,因为HTML博大精深特别是HTML5)。

意思就是说我们的浏览器打开的是服务器给我们反馈的HTML超文本。这话没毛病吧。

好,下面来场景化一下,现在有一个页面,上面有一个确定按钮,让你去点,你拿起鼠标就可以点上去。

那我搞个脚本是不是也让“它”拿鼠标去点一下呢?写到这里我有点怕了……………………

解释一波:其实页面上的每一个东西(其实叫元素)都有他的唯一的标识(主键),比如ID什么的,那脚本找到这个标识就可以区别它,然后“点击”它,并且执行里面的方法,(在selenium里点击是一个动作(action)叫click on left这个不用管,反正你写上click on left selenium就点了)。

其实这里我还想说一下,我们点击的保存按钮,其实点他只是触发它身后一段保存的代码(保存方法)。而我们测试时发现的一个保存按钮不能用,并不代表着他这个按钮问题
,真正问题是保存方法的问题。这里扯远了。。。。。。。。。。。。。。。

简单点说,就是找定位页面元素,然后加上我们自己写的判断,业务逻辑后就成了脚本。

这里定位元素大家可以体验一下:

下载一个Chrome浏览器,随便打开一个网站,比如百度,按下F12这个键,点击弹出窗口左上角的鼠标箭头,选择文本框内部区域,即可看到一个ID为KW的元素,代表着这个输入框。

屁话说完,正文开谈

JAVA环境

既然要学习关于JAVA方向的自动化,那么首先我们必须要有JAVA环境。

1、安装JDK并配置环境变量;

2、安装eclipse,并会新建项目,导包,新建类;(不明白类没关系,至少认识class这个单词)

3、会解决简单问题,比如粘贴复制乱码这类问题等;(这个都不知道我借你把刀,你自己解决)

4.会百度;(最重要!!!最重要!!!最重要!!!)

自动化环境

都知道,搞软件就要用工具来搞,自动化工具也不例外。先要搞好工具:

1、 安装火狐浏览器;

2、 在插件里搜索selenium
IDE安装;(它是一个脚本录制工具),下载好如下图:

3、 在插件里搜索Firebug
安装;(它是一个辅助查看HTML原码工具,按F12)

(火狐浏览器低版本与高版本的Firebug安装会有不一样,没关系谷歌浏览器可以查看)

4、 在插件里搜索Firepath安装;(它是一个辅助工具验证xpath是否正确)

(就是通过xpath验证定位的元素对不对)

怎么用selenium IDE

它是一个录制文件,并且仅支持firefox;

启动,如下图,:

代码区域的认识

选项卡设置:

说明:设置需要了解一下,至少知道这个软件有哪些功能,对照英文看一遍,毕竟下次设置时

如何录制脚本

如何调试脚本

调试脚本的主要功能有:

1、 插入新命令;

2、 添加断点;

3、 单步执行;

4、 步骤详细信息;

5、 导出脚本;

JAVA的selenium自动化环境

那么从上面导出的脚本怎么跑起来呢?往下看:

1、 配置好JAVA 环境后,需要下载一个jar包;(如果不知道哪里下载可以联系我)

2、 打开eclipse,新建一个工程;

3、 导包,右击项目,选择如图;

如下图点击,把刚下载的jar包导进来;

4、 在src源包下新建一个package(包),在包下新建一个junit;(先建package后在右击这个包新建junit,先1后2,别问为什么项目结构的规范就是这样)

5、 然后就是见证奇迹的时刻!如下图的地方可以填写代码,把刚刚IDE录制导出的junit文件用编译器打开(别问我什么是编译器。。。)然后根据结构复制到下图红框框内。

6、 复制后记得保存(ctrl+S),保存后请右键选中此junit文件,点击run as;

运行成功了吧!!!!!!哈哈哈!!!!!!

你觉得很简单?其实不然!

我真的不想打击你们,上面的只是告诉大家这个东西真的不难,是可以学的。而且是我们能够学的好的!

试想一下,我们现在的测试工作就是一个一个点,太繁琐。弄个脚本跑一下多简单,还可以重复使用!
下面我要强调的就是这个“弄”字!

并不是说脚本导出来就万事大吉了,没错,他是可以运行,但是并测不到什么问题,测试出问题就必须一条一条用例去执行,一个一个场景去复现,覆盖越广,考虑的越周全才有可能发现尽可能多BUG。

脚本也是一样,在导出来时只是一个基本的流程,我们还需要强化脚本,比如加入条件判断(此处需要知道关于JAVA的循环,逻辑判断语句的用法)。

比如出现弹框arlet时候,出现切换窗口的时候,输入框(inputbox)的时候,单选框的时候(checkbox),复选框的时候(radiobutton)等等,这些功能的脚本语句处理方法。(这个叫WebDriver,去好好百度学习吧!!!)

到最难的就是加入业务逻辑!!!!!!!

当版本更新,需求更新,我们只需要修改这些逻辑即可。并且脚本重复!!!!

最后一哆嗦说了这么多,希望大家沉下心来看,希望大家多学一点(这样到时候有问题我就直接问你了还百度个什么。。。。。)

吃水不忘挖井人,希望大家深入学习后回来教教我。我懒,我不想看!!!!!!!


(冰河) #2

你这个文章需要好好编辑下,内容不错,但是格式并且少了很多图片。


(nanshoy) #3

你说好的如图,怎么额没有看见图片