一、Selenium概述
准备:
1.ECShop
2.MyEclipse
3.从ftp下载Selenium1.zip
4.解压缩Selenium1.zip,使用Firefox_Setup_33.1.1exe 安装该版本的Firefox到默认路径下。
QTP Mercury(汞) 支持vbs语言
一、Selenium概述
1.Selenium是一款针对Web应用程序的功能自动化测试工具。(B/S架构,在浏览器运行)
2.Selenium(硒)主要用于回归测试、兼容性测试、大数据量测试。
3.Selenium特点(支持“三多”):
(1)支持多种平台:Windows、Mac、Linux
(2)支持多种浏览器:Firefox、IE、Chrome等
(3)支持多种编码语言:Java、Python、C#、Ruby等
4.Selenium优势(和QTP对比):
(1)支持“三多”
(2)开源免费
(3)代码小巧灵活
(4)更好集成其它测试框架
5.Selenium劣势(和QTP对比):
(1)功能不强大(只支持B/S,不支持C/S)
(2)学习成本高(图形化界面几乎没有)
(3)没有同意的工具,是一个工具集,有很多组件
6.Selenium组件
(1)Selenium Core:核心,是JavaScript代码组成的资源库,是Selenium IDE和Selenium RC的引擎。
(2)Selenium IDE:是Firefox的插件,有图形化界面,支持录制和回放,是初学者使用的组件。
(3)Selenium RC: Romote Control,支持“三多”,是一个代码库,没有图形化界面。是Selenium 1.0版本的最主要组件。
(4)Selenium WebDriver:支持“三多”,是Selenium 2.0和3.0的最主要组件。
——重点!!!
(5)Selenium Grid:用于做分布式测试,可以并行执行多个测试任务,提升测试效率。
7.Selenium测试代码的内容:
(1)定位页面元素(识别控件)——难点!!
(2)操作页面元素
(3)断言页面元素(验证页面元素,类似于检查点)
(4)记录测试结果
提示:一般(3)和(4)利用JUnit和TestNG框架来实现。(本来是用作单元测试)
8.Selenium实现测试的基本流程(适合初学者):
(1)在Firefox中使用Selenium IDE组件录制
(2)转换代码格式
(3)使用高级语言语法增强代码(循环、分支等)
(4)批量运行后查看结果
9.Selenium官网: http:// seleniumhq.org/
下载:download
二、Selenium IDE
1.安装Selenium IDE:
(1)准备:
a.安装Firefox,版本33.1.1,最好安装在默认路径下。
C:\Program Files\Mozilla Firefox (32位系统)
C:\Program Files(x86)\Mozilla Firefox (64位系统)
b.取消自动更新
Firefox菜单 工具 选项 高级 更新 选择“不检查更新”,取消选中“使用一项写服务以静默安装更新”和“搜索引擎”的复选框,点击“确定”,重启Firefox后该配置生效。
注意:联网情况下,先断网,再安装Firefox,取消自动更新后再连接外网。
(2)方式一:离线安装(不连接外网)
a.下载安装文件(selenium-ide-2.9.0.xpi)
b.启动Firefox
c.拖拽安装文件到Firefox的网页区域
d.在弹出框上点击“立刻安装”
e.重启Firefox
(3)方式二:在线安装(连接外网)
a.启动Firefox
b.Firefox菜单 工具 附加组件
c.点击“获取附加组件”
d.点击右侧的“了解更多”
e.输入Selenium IDE回车来搜索
f.在搜索结果中找到Selenium IDE的组件,点击“+添加到Firefox
g.重启Firefox
2.启动Selenium IDE :
Firefox菜单 工具 Selenium IDE,或使用快捷键Ctrl+Alt+S。
3.Selenium IDE代码的组织层次
(1)测试套件(Test Suite):包含多个测试用例
(2)测试用例(Test Case):包含多个测试步骤(Step)
4.Selenium IDE视图:
(1)Test Case视图:记录当前测试套件包含哪些测试用例,是测试用例名称的列表。
(2)Table视图:用表格形式记录当前测试用例包含哪些步骤。
(3)Source视图:用源代码形式记录当前测试用例包含哪些步骤,和Table视图的步骤一一对应。默认是HTML格式的源代码。
(4)Log视图:记录运行日志
(5)Reference视图:记录当前步骤的参考信息,描述当前步骤是什么操作动作。类似帮助文档的功能。
(6)Table视图的列:
- Command列:记录Selenium设计的命令,一般描述操作的动作。
- Target列:记录当前行命令的第一个参数值,一般是用于描述操作哪个页面元素的 页面元素定位器。
说明:页面元素定位器是一种表达式,又称为Element locator,简称为locator。
- Value列:记录当前行命令的第二个参数值,一般用于描述操作时使用的具体数据,如果命令没有第二个参数,那么value列留空。
(7)Target列编辑区的两个按钮:
- Find:查找当前locator能定位到哪个页面元素,用于校验locator是否正确。
- Select:选择网页上的元素,生成其locator,显示在Target列中,用于调试代码 时修正locator。
5、录制回放基本步骤
(1)启动Firefox,打开被测系统,关闭防病毒软件
(2)启动Selenium IDE
说明:一启动,就默认创建了一个新的测试套件,一个新的测试用例,并且已经开始录制了。
(3)在Firefox中操作被测系统
注意:不支持其他浏览器,而且录制过程中不要点击Table视图的任何行。
(4)点击红色圆点来停止录制
(5)保存代码
a)先保存当前的测试用例
Selenium IDE菜单 文件 Save Test Case,或快捷键Ctrl+S,选择文件夹,输入文件夹,点击“保存”。
例如:文件名是TC001.html
b)再保存当前的测试套件
Selenium IDE菜单 文件 Sava Test Suite,选择文件夹,输入文件名,点击“保存”。例如:文件名是TS1.html
注意:保存的顺序不要颠倒!
(6)打开已保存的代码:建议以套件为单位打开,使用Selenium IDE菜单 Open Test Suite,选择测试套件文件,点击“打开”
注意:不建议使用“Open”菜单
(7)运行代码:四种方式
方式一:运行整个测试套件(三个绿线)
方式二:运行当前的一个测试用例(一个绿线)
方式三:从开始点运行
说明:设置或清除开始点,就在某个步骤行上点击右键,从菜单中选择Set/Clear Start Point
方式四:双击某个步骤就可以只运行这一个步骤
注意:运行前手动启动Firefox,并且打开被测系统的网页。
(8)查看结果:
a)首先查看Test Case视图下方的 测试总结报告,状态条绿色成功,红色失败。
Runs代表运行的测试用例数,Failures代表失败。
b)如果a看到失败,就查看Test Case视图中每行的背景色,绿色成功,红色失败,就可以确认出错的测试用例是哪几个。
c)双击左侧用例名称,查看Table视图的每行的背景色,就可以确认出错的步骤。
白色:未运行(NoRun)
黄色:正在运行(Running)
浅绿色:运行完毕(Done)
深绿色:断言成功(Passed)
浅粉色:出现警告(Warning)
深粉色(红色):断言失败(Failed)或运行错误(Error)
d)查看Log视图,黑色正常,红色文字是错误或失败。
练习:在Firefox中打开ECShop前台首页,录制点击“登录”,输入正确的用户名,输入正确的密码,点击“立即登录”,点击“退出”的步骤。 TC002.html TS2.html
前提:手动注册一个账号。(Mascot wasdzxc2)
http:// localhost/ecshop/upload /goods.php?id=23
6.常见回放错误
(1)[error] Timed out after 1ms
原因:在默认的超时时间内,动作未执行完毕。
解决方案:修改默认的超时时间为更长的时间
Selenium IDE菜单 Options Options Default timeout value of recorder command in milliseconds
或者:可能需要把带wait单词的命令换成不带wait单词的命令
(2)[error] Element link=退出 not found
[error] Element css=#ECS_MEMBERZONE > a > img not found
原因:在当前网页中找不到指定的页面元素
调查方法:手动操作被测系统,到达指定网页后,使用Find按钮试着查找一下。
解决方案:
a)测试数据错误,无法到达指定的目标网页,需要修改测试数据。
(把用户名换成了错误的)
b)测试步骤顺序错误,需要通过拖拽步骤来移动步骤的顺序,或删除或增加一个其他步骤
c)回放前,需要手动恢复被测系统的状态为录制前的状态
(在登录状态后运行脚本)
d)由于步骤之间需要多等待一会儿,需要书写等待固定时间的步骤(使用pause命令)
(需要插入一个步骤)
e)由于版本升级,旧版本的locator无法定位新版本的页面元素,那么需要里哟经Target列的Select按钮重写生成locator
(3)[error] Unexpected Exception: Error: Access to 'file:///C:/example/message.html' from script denied.
原因:由于JavaScript的技术限制,无法进行跨域访问
解决方案:运行前,打开被测系统。