1:理论知识
1、什么是Web自动化测试?
概念:让程序代替人为自动验证Web项目功能的过程
2. 什么Web项目适合做自动化测试?
1.需求变动不频繁
2.项目周期长
3.项目需要回归测试
3. 如何进行Web自动化测试?(主流测试-工具)
1. QTP(收费)
QTP是商业的功能测试工具,收费,支持web,桌面自动化测试。
2. Selenium(开源)【本阶段学习】
Selenium是开源的web自动测试工具,免费,主要做功能测试。
3. Jmeter(开源、Web、接口、性能)
Jmeter是由Apache公司使用Java平台开发的一款测试工具,支持(Web、接口测试、性能测试)
提示:Web测试在通信层(无UI界面)
5. Loadrunner(收费、Web、性能)
Loadrunner是商业性能测试工具,收费,功能强大,适合做复杂场景的性能测试
6. Robot framework
Robot Framework是一个基于Python可扩展地(关键字驱动)的测试自动化框架;
4、主流工具-汇结:
Web自动化测试:selenium、robot framework
App端自动化测试:Appium、Monkeyrunner、UIautomation
PC客户端(win32)自动化测试:QTP
接口自动化测试:Jmeter、Postman、httpUnit、RESTClient
云测平台:Testin Testbird
性能测试:Jmeter、LoadRunner
2:selenium工具
2.1. 什么是Selenium?
概念: Selenium是一个用于Web应用程序测试的工具;中文的意思(硒)
2.2 Selenium特点
1. 开源软件:源代码开放可以根据需要来增加工具的某些功能
2. 跨平台:linux 、windows 、mac
3. 核心功能:就是可以在多个浏览器上进行自动化测试
4. 多语言:Java、Python、C#、JavaScript、Ruby等
5. 成熟稳定:目前已经被google , 百度, 腾讯等公司广泛使用
6. 功能强大:能够实现类似商业工具的大部分功能,因为开源性,可实现定制化功能
2.3 Selenium家族(发展史) 【了解】
1、起源
2004年,ThoughtWorks的员工Jason Huggins不想让自己的时间浪费在无聊、重复的工作中;他和他的团队采用JavaScript编写了一个能驱动浏览器页面行为的JavaScript类库,这就是selenium core,同时也是seleniumRC、selenium IDE的核心组件。
有意思的是,当时的主流商业自动化测试工具是QTP mercury,mercury是汞,水银的意思,而selenium是化学元素硒,硒可以对抗汞。
从2004年到现在,selenium已经发展到了selenium3.0
2、Selenium1.0
Selenium 1.0 = Selenium IDE + Selenium Grid + Selenium RC
Selenium IDE
Selenium IDE是一个嵌入到Firefox浏览器的插件,可以实现简单的浏览器的操作录制和回放功能
Selenium Grid
Selenium Grid 是一种自动化测试的辅助工具,用来分布式执行测试用例脚本(在不同的系统、浏览器上运行同一份脚本)
Selenium RC
Selenium RC(remote control)的实现原理如下:
Selenium RC = Client Libraries + Selenium Sever
其中 Selenium Sever负责控制浏览器的行为,而Client Libraries是测试人员编写测试脚本控制Selenium Sever的库。
3、Selenium2.0
Selenium2.0又名Webdriver,selenium和webdriver本来是竞争对手,两个项目合并后发布于2011年,Selenium2.0即继承了webdriver的优点(脚本直接控制浏览器,模拟用户操作)和selenium支持广泛的浏览器Selenium 2.0 = Selenium1.0 +WebDriver
3、Selenium3.0
Selenium3.0做了许多更新:
(1)去掉了Selenium RC,Selenium 3.0 = Selenium2.0 - SeleniumRC
(2)只支持Java 8.0及以上的Java版本
(3)Selenium的FireFox驱动独立了,之前在2.0版本时下载Selenium就可以直接驱动FireFox浏览器。现在和Chrome一样,必须另外下载驱动
(4)MAC OS 集成Safari的浏览器驱动。默认在/usr/bin/safaridriver 目录下。
(5)只支持IE 9.0版本以上。
重点:
1. SeleniumIDE
2. Selenium2.0(WebDriver)
Selenium IDE安装与运行
1. Selenium IDE 是什么?
Selenium IDE:是一个Firefox插件,用于记录和播放用户与浏览器的交互。 (录制Web操作脚本)
1.1 为什么要学习Selenium IDE?
1. 使用Selenium IDE录制脚本,体验自动化脚本魅力
2. 使用Selenium IDE录制的脚本转换为代码语言
3:环境搭建
3.1 安装方式
1. 官网安装
Version: 2.9.1.1
通过官网安装插件:https://addons.mozilla.org/en-GB/firefox/addon/selenium-ide/versions/
2. 附加组件管理器
1). 火狐浏览器 V24-V35
2). 附加组件管理器-->搜索selenium IDE
提示:
1. IDE前面有个空格
2. 附加组件管理器启动方式-
1) 工具菜单->附加组件
2) Ctrl+Shift+A
3. 离线安装
下载:https://github.com/SeleniumHQ/selenium-ide/releases
安装:下载好selenium_ide-2.9.1-fx.xpi直接拖入浏览器安装
在线安装 搜索selenium IDE示意图,点击查看全部XX项结果
在线安装 选择selenium IDE安装
滚动条下拉选择 查看所有版本
火狐浏览器 V35.0 选择 selenium IDE 2.9.1.1
3.2 Selenium IDE运行
1. Ctrl+Alt+S
2. 工具栏—>Selenium IDE
1. 文件:创建、打开和保存测试案例和测试案例集。编辑:复制、粘贴、删除、撤销和选择测试案例中的所 有命 令。Options : 用于设置seleniunm IDE。
2. 用来填写被测网站的地址。
3. 速度控制:控制案例的运行速度。
4. 运行所有:运行一个测试案例集中的所有案例。
5. 运行:运行当前选定的测试案例。
6. 暂停/恢复:暂停和恢复测试案例执行。
7. 单步:可以运行一个案例中的一行命令。
8. 录制:点击之后,开始记录你对浏览器的操作。
9. 案例集列表。
10. 测试脚本;table标签:用表格形式展现命令及参数。source标签:用原始方式展现,默认是HTML语言 格式, 也可以用其他语言展示。
11. 查看脚本运行通过/失败的个数。
12. 当选中前命令对应参数。
13. 日志/参考/UI元素/Rollup
思考:
如何快速查找一个元素标签的属性和值?
2. 定位调试插件
1. FireBug【重要】
FireBug插件是火狐浏览器一款插件,能够调试所有网站语言,同时也可以快速定位HTML页面中的 元素;
作用:定位元素(获取元素定位和查看元素属性);
2.1 Firebug 插件安装
在线安装: 1). 火狐浏览器 V35
2). 附加组件管理器-->搜索FireBug
3:元素查看工具使用
3. Selenium IDE脚本编辑与操作 【了解】
目的:手动修改或编写脚本(采用录制方式很容易记录出多余的操作)
3.1 编辑一行命令
在Table标签下选中某一行命令,命令由command、Target、value三部分组成。可以对这三部分内容那进行 编辑。
3.2 插入命令
在某一条命令上右击,选择“insert new command”命令,就可以插入一个空白,然后对空白行进程编辑
3.3 插入注释
鼠标右击选择“insert new comment”命令插入注解空白行,本行内容不被执行,可以帮助我们更好的理解 脚本, 插入的内容以紫色字体显示。
3.4 移动命令
有时我们需要移动某行命令的顺序,我们只需要左击鼠标拖动到相应的位置即可。
3.5 删除命令
选择单个或多个命令,然后点击鼠标右键选择“Delete”
3.6 命令执行
选定要执行的命令点击单个执行按钮即可,注意:有一些命令必须依赖于前面命令的运行结果才能成功执行 ,否则会导致执行失败。
提示: 我们对脚本的编辑和操作已有所了解,那么我们练习1和练习2录制出来的脚本中那些命令又都是有什么作用?
4. Selenium IDE常用命令【了解】
在这里我们只对几个常用的命令做个介绍
4.1 open(url)命令
作用:打开指定的URL,URL可以为相对或是绝对URL;
Target:要打开的URL;value值为空
1). 当Target为空,将打开Base URL中填写的页面;
2). 当Target不为空且值为相对路径,将打开Base URL + Target页面。如,假设Base URL为http:/ / www.zhi97.com,而Target为/about.aspx,则执行open命令时,将打开http://www.zhi97.co m/about.aspx
3). 当Target以http://开头时,将忽略Base URL,直接打开Target的网址;
4.2 pause(waitTime)
作用:暂停脚本运行 waitTime:等待时间,单位为ms;//Target=1000
4.3 goBack()
作用:模拟单击浏览器的后退按钮; 提示:由于没有参数,所以Target和Value可不填;
4.4 refresh()
作用:刷新当前页; 提示:由于没有参数,所以Target和Value可不填;
4.5 click(locator)
作用:单击一个链接、按钮、复选框或单选按钮; 提示:如果该单击事件导致新的页面加载,命令将会加上后缀“AndWait”,即“clickAnd Wait”,或“waitF orPageToLoad”命令;
4.6 type(locator,value)
作用:向指定输入域中输入指定值;也可为下拉框、复选框和单选框按钮赋值.
Target:元素的定位表达式;
Value:要输入的值;
4.7 close()
作用:模拟用户单击窗口上的关闭按钮;
提示:由于没有参数,所以Target和Value可不填;
5. 总结
1. 为什么学习Selenium IDE插件工具
2. Selenium安装、启动方式
3. FireBug作用
4. Selenium IDE常用命令