Selenium+Webdriver+Python自动化测试环境.ppt_第1页
Selenium+Webdriver+Python自动化测试环境.ppt_第2页
Selenium+Webdriver+Python自动化测试环境.ppt_第3页
Selenium+Webdriver+Python自动化测试环境.ppt_第4页
Selenium+Webdriver+Python自动化测试环境.ppt_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Selenium Webdriver Python自动化测试环境 一 Selenium Webdriver Python基本框架的介绍二 自动化测试环境的搭建三 selenium ide脚本录制和脚本写作四 unittest的简单介绍及使用五 网页元素的定位六 浏览器的基本操作七 拓展 1 测试报告的生成 2 数据驱动 文本 表格等 一 Selenium Webdriver Python基本框架介绍 Selenium是一个开源的和便携式的自动化软件测试工具 用于测试Web应用程序有能力在不同的浏览器和操作系统运行 相比QTP有以下优点 开源免费 不用为破解而大伤脑筋 小巧 对于不同的语言它只是一个包而已 而QTP需要下载安装1个多G的程序 支持多种脚本语言 这是最重要的一点 不管你以前更熟悉C java ruby python 或是C 你都可以通过selenium完成自动化测试 而QTP只支持VBS 支持多平台 Windows Linux MAC 支持多浏览器 IE Firefox Chrome Safari Opera等 一 Selenium Webdriver Python基本框架介绍 一 Selenium Webdriver Python基本框架介绍 Selenium 1 Selenium脚本录制和回放2 Selenium自动化脚本 py 编写3 Selenium测试套 Testsuite 初始化 预置条件用例执行部分清理 还原初始环境4 截图以及结果报告的生成 一 Selenium Webdriver Python框架的介绍 脚本开发 脚本执行 辅助 脚本录制 第一步 下载并安装Python 推荐使用2 7 x版本 exe文件运行安装即可 安装后环境变量中添加python的安装目录 第二步 下载并安装Python的SetupTools SetupTools就是一个帮助你安装第三方工具包的增强工具软件 下载文件后 对setuptools x x tar gz文件进行解压 进入windows命令提示下执行setup py X setuptools x x pythonsetup pyinstall没有报错表示安装成功 第三步 下载并安装Python的包管理工具pip pip 有点类似SetupTools 但是比它强大 下载文件后 pip x x tar gz文件进行解压 进入windows命令提示下执行setup py 如 X pipx x pythonsetup pyinstall没有报错表示安装成功 切换到X Python27 Scripts目录下输入 X Python27 Scripts easy installpip没有报错表示安装成功 二 自动化测试环境的搭建 第四步 下载并安装基于Python的Selenium包下载seleniumx xx x 并解压把整个目录放到X Python27 Lib site packages目录下 进入windows命令提示下执行setup py 如 X Python27 Lib site packages selenium x xx x pythonsetup pyinstall没有报错表示安装成功 第五步 验证Selenium安装是否成功 其他 Firefox浏览器 网页驱动 IE IEDriverChrome Chromedriver selenium ide插件 脚本录制 HTMLTesterRunner py 生成测试报告 xlrd 对xls表格进行读操作 等HTMLTesterRunner py 生成测试报告 xlrd 对xls表格进行读操作 将其放到Python的LIB库中 ImportHTMLTesterRunner Importxlrd就可实现相应的功能 二 自动化测试环境的搭建 二 自动化测试环境的搭建 验证Selenium安装是否成功 功能 打开巨潮网主页 在搜索栏输入000001进行搜索 coding utf 8fromseleniumimportwebdriver Keys提供键盘操作mon keysimportKeysimporttime 打开Firefox浏览器driver webdriver Firefox 打开巨潮网主页driver get Selenium的IDE 集成开发环境 是一个易于使用的Firefox插件 用于开发Selenium测试案例 它提供了一个图形用户界面 用于记录使用Firefox浏览器 用来学习和使用Selenium用户操作 但它只能用于Firefox浏览器不支持其它浏览器 然而 所记录的脚本可以被转换成由Selenium支持多种编程语言和脚本可以在各种其它的浏览器 以及被执行 脚本录制步骤 第一步 打开火狐浏览器 在地址栏上输入被测网页的URL 第二步 菜单栏 工具 selenium ide打开后 在的selenium ide地址栏输入相同的URL 第三步 点击开始录制第四步 在浏览器中进行相应的操作第五步 点击结束录制 查看并回放SeleniumIDE录制的结果第六步 脚本导出 选择导出需要的语言脚本 Python2 Unittest webdiver 三 selenium ide脚本录制和脚本写作 三 selenium ide脚本录制和脚本写作 三 selenium ide脚本录制和脚本写作 三 selenium ide脚本录制和脚本写作 IDE录制脚本存在局限和问题 1 脚本不稳定 回放经常出错 部分操作捕获不到 2 阅读性差 不知道自动化测试执行了具体哪些操作 和实现什么功能 注释 3 如果web页面中的个别元素发生了变化 所有涉及该元素的脚本需要修改 4 元素的id或部分文字是动态的 即每次执行的脚本都是不同的 参数化 5 缺少对实际结果进行判断的语句 断言 等等 打开IDLE pythonGUI OPEN 加载录制导出的脚本 进行脚本编写 三 selenium ide脚本录制和脚本写作 四 unittest的简单介绍及使用 TestCase 一个测试用例 或是一个完整的测试流程 包括测试前准备环境的搭建 setUp 执行测试代码 run 以及测试后环境的还原 tearDown 元测试 unittest 的本质也就在这里 一个测试用例是一个完整的测试单元 通过运行这个测试单元 可以对某一个问题进行验证 TestSuite 而多个测试用例TestCase集合在一起 就是TestSuite 而且TestSuite也可以嵌套TestSuite TestLoader 用来加载TestCase到TestSuite中的 其中有几个loadTestsFrom 方法 就是从各个地方寻找TestCase 创建它们的实例 然后add到TestSuite中 再返回一个TestSuite实例 TextTestRunner 是来执行测试用例的 其中的run test 会执行TestSuite TestCase中的run result 方法 测试的结果会保存到TextTestResult实例中 包括运行了多少测试用例 成功了多少 失败了多少等信息 整个流程 首先是要写好TestCase 然后由TestLoader加载TestCase到TestSuite 然后由TextTestRunner来运行TestSuite 运行的结果保存在TextTestResult中 整个过程集成在unittest main模块中 四 unittest的简单介绍及使用 TestFixture 对一个测试用例环境的搭建和销毁 通过覆盖TestCase的setUp 和tearDown 方法来实现 这个有什么用呢 比如说在这个测试用例中需要访问数据库 那么可以在setUp 中建立数据库连接以及进行一些初始化 在tearDown 中清除在数据库中产生的数据 然后关闭连接 注意tearDown的过程很重要 要为以后的TestCase留下一个干净的环境 一个完整的测试脚本包含 1 importunittest2 定义一个继承自unittest TestCase的测试用例类3 定义setUp和tearDown 在每个测试用例前后做一些辅助工作 4 定义测试用例 名字以test开头 5 一个测试用例应该只测试一个方面 测试目的和测试内容应很明确 主要是调用assertEqual assertRaises等断言方法判断程序执行结果和预期值是否相符 6 调用unittest main 启动测试7 如果测试未通过 会输出相应的错误提示 如果测试全部通过则不显示任何东西 也可以添加 v参数显示详细信息 四 unittest的简单介绍及使用 四 unittest的简单介绍及使用 介绍以下unittest的基本用法 第1种用法 以下代码是官方文档的sample importunittestclassTestSequenceFunctions unittest TestCase defsetUp self self seq range 10 deftest choice self element random choice self seq self assertTrue elementinself seq deftest sample self withself assertRaises ValueError random sample self seq 20 forelementinrandom sample self seq 5 self assertTrue elementinself seq defsetDown self passif name main unittest main 1 从unittest TestCase继承一个子类 2 定义测试方法 以test开头 3 调用unittest main 这个方法会自动执行所有以test开头的测试方法 四 unittest的简单介绍及使用 第2种调用方法 自己创建一个TestSuite 添加需要执行测试的TestCase 然后使用TestRunner run suite 执行测试 if name main suite unittest TestSuite suite addTest TestSequenceFunctions test choice suite addTest TestSequenceFunctions test sample unittest TextTestRunner run suite 四 unittest的简单介绍及使用 测试主要是调用assertEqual assertRaises等断言方法判断程序执行结果和预期值是否相符 常见的断言方法有 selenium对web各元素的操作首先就要先定位元素 定位元素的方法主要有以下几种 1 通过id定位元素 find element by id id vaule 2 通过name定位元素 find element by name name vaule 3 通过tag name定位元素 find element by tag name tag name vaule 4 通过class name定位元素 find element by class name class name 5 通过css定位元素 find element by css selector 6 通过xpath定位元素 find element by xpath xpath 7 通过link定位 find element by link text text vaule 或者find element by partial link text 五 网页元素的定位 五 网页元素的定位 下面是百度输入框的html代码 可以通过firebug或者谷歌的审查元素得 1 通过id定位 则百度的输入框即可表示为 find element by id kw1 2 通过name定位 则可以表示为 find element by name wd 3 通过tag name定位 input其实就是tag name 标签名 同样也可以表示成 find element by tag name input 注意 通过tag name查找时使用find element by tag name查找到的是第一个标签的tag nameHeadHeadName4 通过class name定位元素 top find element by className top 五 网页元素的定位 有时候不是一个输入框也不是一个按钮 而是一个文字链接 我们可以通过link定位baidu 7 通过link定位 baidu driver find element by link text baidu 5 通过css定位元素 用css定位是比较灵活的 想要完全弄懂 花费的时间是比较多的 个人觉得没有必要 尽量不使用6 通过xpath定位元素 XPath是一种在XML文档中定位元素的语言 因为HTML可以看做XML的一种实现 所以selenium用户可是使用这种强大语言在web应用中定位元素 XPATH的值可以通过firebug或者谷歌的审查元素中 右键功能 复制XPATH即可获得 例子 driver find element by xpath tr 7 td 2 六 浏览器的基本操作 选择浏览器 driver webdriver Firefox 打开url driver get 前进 后退 driver forward driver back 刷新 driver refresh 最大化 browser maximize window 返回当前页面标题 driver title返回当前页面url driver current url返回当前浏览器的所有窗口 driver window handles返回当前浏览器的窗口句柄 driver current window handle选择窗口 driver switch to window window name 对话框操作 driver switch to alert 选择窗口对象截取当前页面 driver get screenshot as file Screenshots foo png 关闭浏览器 driver quit driver close 常用操作 六 浏览器的基本操作 ActionChains类鼠标操作的常用方法 引入ActionChains类 mon action chainsimportActionChainscontext click 右击 如 RightClick driver find element by id id ActionChains driver context click RightClick perform double click 双击 如 DoubleClick driver find element by name name ActionChains driver double click DoubleClick perform drag and drop source target 鼠标拖放 source 鼠标按下的源元素 target 鼠标释放的目标元素 如 element driver find element by name name target driver find element by name name ActionChains driver drag and drop element target perform move to element 鼠标悬停在一个元素上 如 above driver find element by xpath xpath路径 ActionChains driver move to element above perform click and hold 按下鼠标左键在一个元素上 如 left driver find element by name name ActionChains driver click and hold left perform 六 浏览器的基本操作 键盘事件 引入Keys类包 mon keysimportKeyssend keys 输入框输入内容 如 driver find element by id id send keys XXX send keys Keys SPACE 输入空格 如 driver find element by id id send keys Keys SPACE send keys Keys CONTROL a ctrl a全选输入框的内容 如 driver find element by id id send keys Keys CONTROL a send keys Keys CONTROL x ctrl x剪切输入框的内容 如 driver find element by id id send keys Keys CONTROL x send keys Keys CONTROL c 复制 如 driver find element by id id send keys Keys CONTROL c send keys Keys CONTROL v ctrl v粘贴到输入框 如 driver find element by id id send keys Keys CONTROL v send keys Keys ENTER 回车代替点击 如 driver find element by id id send keys Keys ENTER send keys Keys TAB 制表键 Tab 如 driver find element by id id send keys Keys TAB send keys Keys ESCAPE 回退键 Esc 如 driver find element by id id send keys Keys ESCAPE 七 拓展 测试报告的生成 导入测试报告生成的模块importHTMLTestRunnersuite unittest TestSuite 定义生成测试报告的名称filename1 r result str time strftime Y m d H M S html fp file filename1 wb 定义测试报告的路径 标题 描述等内容runner HTMLTestRunner HTMLTestRunner stream fp title u 自动化测试报告 descripti

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论