自动化测试(一)课件

上传人:嘀**** 文档编号:252018680 上传时间:2024-11-12 格式:PPTX 页数:45 大小:335.72KB
返回 下载 相关 举报
自动化测试(一)课件_第1页
第1页 / 共45页
自动化测试(一)课件_第2页
第2页 / 共45页
自动化测试(一)课件_第3页
第3页 / 共45页
点击查看更多>>
资源描述
,单击此处编辑母版文本样式,第二级,单击此处编辑母版标题样式,内容摘要,自动化测试简介,自动化测试类型,自动化测试优势、劣势,自动化测试适用范围,自动化测试工具,Selenium,简介,自动化测试框架,自动化测试简介,自动化测试是使用自动化测试工具或编写代码来替代手工测试的测试类型。,自动化测试只是辅助手工测试,并不能完全替代手工,自动化更多的是去做验证型测试而非探索性测试,目的是将手工测试从重复的劳动中脱离出来,节约时间、人力成本,并且在新增一个功能时,可以对其相关所有功能做回归测试,提高软件的质量。,敏捷测试与自动化测试,为什么引入自动化测试,敏捷开发的最大特点是高速迭代,有周期性,并且能够及时、持续的响应客户的频繁反馈。伴随着频繁的迭代,测试人员需要频繁的重新进行测试。在此由于系统是不稳定的系统,也造成了测试的不稳定,我们不知道这次的故事是否会影响到系统的其他功能。在敏捷测试过程中,项目后期不会给予测试人员很多的集成测试时间,而且测试人员也无法在每次的迭代完成之后对之前的迭代进行回归测试,基于这一点,就需要自动化测试在每个迭代完成时对之前的迭代进行集成测试,自动化测试类型,UI,自动化,性能自动化,接口自动化,单元测试自动化,自动化测试优势、劣势,优势:,节约人力,代码维护好,可自动执行,节约时间,测试脚本可在晚上进行执行,回归测试,提高软件质量,代码可复用,自动化测试优势、劣势,劣势,:,代码维护成本高,对测试人员的要求高,不易做探索性测试,不,适合频繁需求变更的项目,自动化测试适用范围,需求变更不频繁,回归测试,测试人员有一定的编码基础,产品型项目,项目周期长,重复工作量大,自动化测试工具,QTP,selenium,浏览器,IE/FireFox,IE/FireFox/Chrome/Opera,语言,VB,Java/python/ruby/C#,等,是否收费,有破解版,有部分插件是需要收费的,免费开源,是否容易上手,容易,有代码基础的容易,是否存在,GUI,存在,不存在,是否支持录制,支持,支持,Selenium,简介,Selenium,是一款基于,web,应用程序的开源测试工具。,Selenium,测试直接运行在浏览器中,就像真正的用户在操作一样。它支持,Firefox,、,ie,、,Chrome,等,众多浏览器。它,同时支持,JAVA,、,C#,、,Ruby,、,Python,、,PHP,、,Perl,等众多的主流语言。,Selenium,简介,Selenium Core:JavaScript Framework,Selenium Core,是,Selenium,的核心部分,它由一些纯,js,代码组成,可以运行在,windows/linux,的不同,browser,上,我们就是通过这些,js,代码,才可以实现程序对浏览器的控制。,IDE:Firefox,插件,IDE,是在,core,的基础上的一种应用,通过,UI,实现类似,QTP/Winner,的脚本录制回放功能;,Selenium IDE,是通过监听用户对,html,页面的操作来录制脚本的,是真正能够监听用户对,html,页面的操作的录制工具,Selenium,简介,RC(Remote Control),Selenium RC,模式,是客户端利用各种编程语言,通过网络向,Selenium Server,发送指令,,Selenium Server,接收到测试指令后,启动浏览器并向其发出,JavaScript,调用实现对,Html,页面的全面追踪,并通过网络把执行结果返回给调用者,Selenium Server,的实现原理是其打开浏览器时,把自己的,JavaScript,文件嵌入网页中。然后,Selenium,的网页通过,frame,嵌入目标网页。这样,就可以使用,Selenium,的,JavaScript,对象来控制目标网页,Selenium,简介,WebDriver,WebDriver,启动目标浏览器,并绑定到指定端口。该启动的浏览器实例,,做,web,driver,的,remoteserver,。,Client,端通过,CommandExcuter,发送,HTTPRequest,给,remoteserver,的侦听端口(通信协议:,thewebriverwireprotocol,),Remoteserver,需要依赖原生的浏览器组件(如:,IEDriver.dll,chromedriver.exe,),来转化转化浏览器的,native,调用,Selenium,RC,与,Selenium Webdriver,Selenium RC,Selenium WebDriver,Selenium RC,的结构复杂,因为服务器需要启动在开始试运行前。,webdriver,架构比,Selenium RC,简单,因为它控制着从操作系统层面的浏览器。,Selenium,服务器充当浏览器和,Selenese,的命令之间的中间人,webdriver,直接相互作用,以在浏览器和使用浏览器的引擎进行控制。,Selenium RC,的脚本执行速度较慢,因为它使用了,Javascript,来与,RC,互动,webdriver,的速度更快,因为它直接交互使用的浏览器。,Selenium RC,不能支持无头,因为它需要一个真正的浏览器一起工作,webdriver,可以支持无头执行,它是一个简单的,API,复杂,,API,相比,,RC,有点大,不能测试移动应用程序,可测试,iPhone/Android,应用程序,Selenium,安装(基于,Python,语言),下载并安装,Python,配置,python,环境变量,环境变量:,Path,变量值:,C:Python27,下载,setuptools【python,基础包工具,】,python,easy_install.py,安装,pip,python setup.py install,进入,C:,Python27Scripts,Easy_install.exe pip,Selenium,安装(基于,Python,语言),安装,selenium,进入,C:,Python27Scripts,执行,pipinstall-U,selenium,安装,java,下载并安装,selenium,服务端,在目录下执行:,java-,jar,安装,Chrome driver,把,chromedriver.exe,放置到,chrome,安装,目录下,并配置,chromedriver.exe,环境变量,浏览器操作,设置最大化,driver.maximize_window,(),设置浏览器大小,driver.set_window_size,(,宽,高,),设置浏览器前进后退,driver.back,(),driver.forward,(),关闭浏览器,driver.quit,(),打开浏览器,d,river.get,(“”),浏览器操作,对象定位,对象的定位和操作是自动化测试的核心部分,其中操作又是建立在定位的基础上,因此对象的定位又显得特别重要。,对象的定位分为以下几种:,Id,Name,Class name,Tag name,Link text,Xpath:,部分浏览器会提供计算,xpath,的插件。(,firefox,、,chrome,),Css selector,对象定位,-,单个元素定位,Id,定位:,find_element_by_id,(),Name,定位:,find_element_by_name,(),Class name,定位:,find_element_by_class_name,(),tag,name,定位,:,find_element_by_tag_name,(),link,text,定位:,find_element_by_link_text,(),find_element_by_partial_link_text,(),Xpath,定位:,find_element_by_xpath(),css selector,定位,:,find_element_by_css_selector(),对象定位,-,一组,元素定位,Id,定位:,find_elements_by_id(),Name,定位:,find_elements_by_name(),Class name,定位:,find_elements_by_class_name(),tag,name,定位,:,find_elements_by_tag_name(),link,text,定位:,find_elements_by_link_text(),find_elements_by_partial_link_text(),Xpath,定位:,find_elements_by_xpath,(),css selector,定位,:,find_elements_by_css_selector,(),对象定位,对象的定位要依据,id,namecssxpath,的顺序进行,定位,id,、,name,是最常用并且最容易的方式,Css,、,xpath,往往会与,id,、,name,配合使用,Xpath,是最脆弱的方式,units,Services compones,ui,对象定位,对象定位,对象定位,-id,对象定位,-name,对象定位,-xpath,操作测试对象,清除元素内容,Clear(),模拟按键输入,Send_keys(“”),单击,元素,Click(),提交表单,Submit(),获取,大小,Size,获取文本内容,Text,获取,相关属性值,get_attribute(name,),查看对象是否可见,is_displayed,(),获取对象属性,get_attribute(),鼠标事件,右击:,context_click(),双击:,double_click(),拖动:,drag_and_drop(source,,,target),鼠标悬停:,move_to_element(),按下鼠标左键在一个元素上:,click_and_hold(),键盘,事件,send_keys(Keys.BACK_SPACE),删除键(,BackSpace,),send_keys(Keys.SPACE),空格键,(Space),send_keys(Keys.TAB),制表键,(Tab),send_keys(Keys.ESCAPE),回退键(,Esc,),send_keys(Keys.ENTER),回车键(,Enter,),send_keys(Keys.CONTROL,a),全选(,Ctrl+A,),send_keys(Keys.CONTROL,c),复制(,Ctrl+C,),send_keys(Keys.CONTROL,x),剪切(,Ctrl+X,),send_keys(Keys.CONTROL,v),粘贴(,Ctrl+V,),设置等待时间,固定休眠时间,Sleep(,时间,),超时等待,设置最长等待时间,implicitly_wait,(,时间,),设置每隔一段时间内检测当前页面元素是否存在,WebDriverWait(driver,,,时间,).until,(,),WebDriverWait(,driver,,,时间,).,until_not,(),层级定位,元素有多层父元素,当定位子元素时需要先定位父元素,然后定位到子元素。,driver.find_element_by_id().,find_element_by_link_text,(),界面中多个,frame,,多个,frame,处于父级子级关系,先找到父级的,frame1,,再找到子级的,frame2.,(可通过,frame,的,id,及,name,进行定位),driver.switch_to_frame(“frame1),driver.switch_to_frame(frame2),窗口处理,获取当前窗口,current_window_handle
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!