Selenium入门介绍
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 观点四:自动化能实现100%的测试覆盖率 自动化测试可以增加测试覆盖的深度 和广度,利用白盒测试工具可能实现语句 全覆盖、逻辑路径全覆盖等,但因为穷举 测试必须使用所有可能的数据,包括有效 的和无效的测试数据,所以在有限的资源 下也不可能进行100%的测试。
• 观点五:自动化测试工具容易使用 对于这一点,很多测试工程师有同样的 错误观点,认为测试工具可以简单地通过捕 获(录制)客户端操作生成脚本,且脚本不 加编辑就可用于回放使用。事实上,自动化 测试不是那么简单的,捕获的操作是否正确 ,以及脚本编辑是否合理都会影响测试结果 。
工具名称 HP QuickTest Professional(QTP) IBM Rational Functional Tester Parasoft SOATest Selenium WebDriver SilkTest TestComplete Test Partner Appium 发布公司 HP IBM Parasoft Thoughtworks MicroFocus SmartBear Software Micro Focus
controlKeyDown() controlKeyUp() shiftKeyDown() shiftKeyUp() keyDown(locator,keySequence) keyPress(locator,keySequence) 按着Ctrl不放 松开Ctrl 按着shift 松开shift 按着某一键不放 模拟敲击某一个键
自动化测试和selenium简介
崔剑飞 北京搜狗科技发展有限公司
自动化测试基础
• • • •
(一)自动化测试简介 (二)常见的自动化测试架构 (三)自动化测试的基本流程(见图) (四)关于自动化测试的一些的认知
自动化测试简介
软件测试一般是由测试人员执行的,如果由 机器来代替人执行软件测试,那么就叫做自 动化测试
2.getLocation() API介绍:获取当前的网址
3.getValue(locator) API介绍:获取input的值
• 4.getText(locator) API介绍:用于存储某个元素的文本值。
5.isChecked(locator) API介绍:存储复选框或单选框的勾选情况。
模拟键盘鼠标
安装前的FireBug
FirePath安装步骤 一.打开FF,单击主菜单,选择“附加组件” 二.进入“搜索”页面,在文本框中输入 firepath,并搜索安装。
安装后的FireBug
Selenium RC 浏览器导航操作: Open(url) GoBack(url)
Refresh() WindowMaximize() Close()
• 最常用的保存方式 captureEntirePageScreenshot(filename,kwar gs) 参数: filename:截图保存的路径 kwargs:设定截图的保存方式 类似方法: captureScreenshot(filename)
• 获取页面元素内容 1.getTitle() API介绍:返回当前网页的标题
自动化测试的误区
• • • • • •
自动化测试工具是“万能”的 自动化测试比人工测试更高级先进 测试工具能使工作量大幅度减少 测试工具能实现100%的测试覆盖率 自动化测试工具容易使用 自动化测试能发现大量新缺陷
观点一:自动化测试工具是“万能”的
显然,这是一种理想状态,现实中还 没有哪个测试工具有这个能力,并且将来也 不会有。在现实中有关的测试设计、测试案 例,以及一些关键的测试任务还是需要人工 参与的,即自动化测试是对手工测试的辅助 和补充,它永远也不可能完全取代手工测试
Selenium的特点 • • • • 开源,轻量 运行在浏览器中 简单灵活,支持七大主流语言 IDE可以提供录制功能
Selenium组件 • • • • Selenium IDE Selenium RC Selenium Webdቤተ መጻሕፍቲ ባይዱiver Selenium Grid
• Selenium IDE Selenium IDE是一个测试集成开发环境, 是FF的附加组件,可以结合FF实现录制,编 辑和调试测试脚本,并在浏览器中模拟用户 真实操作进行回放。 IDE不仅仅是一个录制工具,它是完整的 集成开发环境,可以录制,也可以手工编辑 脚本。
一.软件需求变动不频繁 二.项目周期较长 三.测试脚本可重复使用
代码驱动测试(测试驱动开发) 特点: 1.大量的输入参数和对应结果 2.代码覆盖率高 图形用户界面测试 定义:模仿用户产生界面事件,并捕获相关 动作所导致的界面改变。 代表:Webdriver,QTP
自动化测试的基本流程
当前流行的自动化测试工具
1.Server端:负责启动和关闭浏览器,类似HTTP代理。 2.Client端:由针对各种编程语言设计的开发库构成。
RC提供了一个代理服务器,允许用程序语言 编写测试用例。这样做的好处是可以将 Selenium与其他测试框架(如JUnit)进行集 成测试。
Selenium RC架构图
• Selenium RC的环境搭建 1.安装JAVA环境 2.安装eclispe 3.下载Selenium,地址为 http://seleniumhq.org/download/,位于 Selenium Client Drivers栏。
Selenium简介
• Selenium是一款基于Web应用程序的开源测 试工具。Selenium测试直接运行在浏览器中 ,就像真正的用户在操作一样。它支持FF, IE,Chrome等众多浏览器。同时支持Java, C#,Ruby,Python,PHP,Perl,JS等众多 主流语言。
• Selenium的演变进程
• 观点六:自动化测试能发现大量缺陷 就发现缺陷而言,自动化测试的效率低于 人工测试。根据我的经验,自动化测试只能 发现30%以下的缺陷,而人工测试能够发现 绝大数缺陷。
我的建议: • 一.重视测试,重视测试能力的基础能力培养 • 二.心态要端平,正确认识自动化测试的定位 • 三.培养自己的英文阅读能力。
keyUp(locator,keySequence) mouseDown(locator)
mouseDownRight(locator) mouseUp(locator) mouseUpRigth mouseOver(locator)
模拟松开某一个键 按下鼠标左键不放
按着鼠标右键不放 松开之前使用mouseDown的元素 … 模拟hover操作
Selenium RC Demo代码
• DefaultSelenium的构造函数中有4个参数, 具体如下:
1.serverHost:Selenium服务器的主机名称或者IP地址
2.serverPort:Selenium服务器的端口号 3.browserString:用于加载对应的浏览器,以“*浏览器 ”的方式呈现,也可使用相关浏览器的安装路径。 4.browserURL,初始化的URL,启动selenium后跳转至 此URL。
• Selenium-IDE的特点 1.非常容易在页面上进行录制 2.能自动通过id,name和Xpath来定位页面 元素 3.自动执行selenium命令 4.能够进行高度和设置断点 5.录制生成的脚本能够转化成各种语言 6.在每个录制的脚本中能够加入断言
• Selenium RC 即Selenium Remote Control,由两部分组成:
备注:这些模拟操作可以以组合键的形 式出现。
有毒的工具:FireBug和FirePath 一.FireBug 初学者的痛点:HTML源码太乱。 Case:百度首页
FireBug的安装 一.打开Firefox浏览器,单击主菜单,选择“ 附加组件” 二.进入“获取附加组件”页面,在搜索文本 框中输入Firebug,搜索 三.安装此组件
• FirePath FireBug可以很方便查找元素, 也可以将元素的xpath复制。但原生 的FireBug并不支持按Xpath查找元 素,需要在FireBug中集成FirePath 。
Selenium Webdriver • Webdriver作为最新版的Selenium工 具,代表着Selenium的未来方向。 它提供了许多功能,包括一套组织 性更好的,面向对象的API。 • Webdriver完全就是一套类库,不依 赖于任何测试框架,不需要像RC那 样先启动服务器。
Selenium Grid • Grid能够让RC的测试在多个不同的 环境中运行,也能让测试并行执行 。能够大幅度的提高测试的效率。
optionlocator常用定位方式。 label=文本值 value=真实值 id=id index=index
• 操作页面元素 5.focus(locator) API介绍: 将焦点移至指定的元素上
• 设置等待时间 waitForPageToLoad(timeout)
参数: timeout:等待时间,单位为毫秒。
2.需求变动大,项目迭代快
3.接口或功能频繁变动 4.功能测试点繁杂。 5.项目进度压力较大 6.测试人员不具备编程能力
• 观点三:测试工具能使工作量大幅度减少
在更多情况下,首次引入自动化测试工具 ,会使测试工具立马更艰巨。只有正确合理使 用测试工具,并有一定技术积累后,自动化测 试的付出才能逐渐有所收获。
• 观点二:自动化测试比人工测试更高级 自动化测试只是测试方法中一种。相 比于人工测试,有自身优势,也有局限性 。只能说,更炫酷,而已。
适合情况对比
自动化测试 1.任务明确,不会频繁变动 人工测试 1.一次性项目或软件维护周期很短
2.项目的日常验证(监控)
3.接口稳定,变动少 4.大量重复的测试任务 5.项目进度压力较轻 6.项目周期长 7.测试人员具备较强的编程能力
刷新 窗口最大化 关闭
• 操作页面元素 1.type(locator,value) 参数: locator—元素的定位表达式 value—要输入的值 API介绍: 在input类型中输入指定的值。
• 操作页面元素 2.Click(locator) 参数: locator:元素定位表达式 API介绍: 对链接,复选框或单选框 等进行单击。
• 操作页面元素 3.doubleClick(locator) API介绍: 双击链接,复选框或者单 选框。(不常用)
• 操作页面元素 4.select(selectlocator,optionlocator)
参数: selectlocator:下拉框的定位式 optionlocator:下拉选项框的定位
• Selenium RC的环境搭建 4.解压selenium的客户端jar。 5.下载Selenium的服务端jar。地址 为: http://docs.seleniumhq.org/downloa d/,位于Selenium Standlone Server 一栏。
• Selenium RC的环境搭建 6.启动Selenium服务器: 可以直接双击刚才的jar文件启 动Selenium服务器。也可以通过下 面的命令来执行: java –jar <selenium服务器文件路 径>.jar 7.新建一个java工程,并引入 Selenium的Client包。 8.输入Demo代码并运行。