自动化测试(一)47522.pptx

上传人:muj****520 文档编号:83279798 上传时间:2023-03-29 格式:PPTX 页数:46 大小:505.64KB
返回 下载 相关 举报
自动化测试(一)47522.pptx_第1页
第1页 / 共46页
自动化测试(一)47522.pptx_第2页
第2页 / 共46页
点击查看更多>>
资源描述

《自动化测试(一)47522.pptx》由会员分享,可在线阅读,更多相关《自动化测试(一)47522.pptx(46页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、内容摘要内容摘要n自动化测试简介n自动化测试类型n自动化测试优势、劣势n自动化测试适用范围n自动化测试工具nSelenium简介n自动化测试框架自动化测试简介自动化测试简介自动化测试是使用自动化测试工具或编写代码来替代手工测试的测试类型。自动化测试只是辅助手工测试,并不能完全替代手工,自动化更多的是去做验证型测试而非探索性测试,目的是将手工测试从重复的劳动中脱离出来,节约时间、人力成本,并且在新增一个功能时,可以对其相关所有功能做回归测试,提高软件的质量。敏捷测试与自动化测试敏捷测试与自动化测试n为什么引入自动化测试敏捷开发的最大特点是高速迭代,有周期性,并且能够及时、持续的响应客户的频繁反馈

2、。伴随着频繁的迭代,测试人员需要频繁的重新进行测试。在此由于系统是不稳定的系统,也造成了测试的不稳定,我们不知道这次的故事是否会影响到系统的其他功能。在敏捷测试过程中,项目后期不会给予测试人员很多的集成测试时间,而且测试人员也无法在每次的迭代完成之后对之前的迭代进行回归测试,基于这一点,就需要自动化测试在每个迭代完成时对之前的迭代进行集成测试自动化测试类型自动化测试类型nUI自动化n性能自动化n接口自动化n单元测试自动化自动化测试优势、劣势自动化测试优势、劣势优势:n节约人力,代码维护好,可自动执行n节约时间,测试脚本可在晚上进行执行n回归测试,提高软件质量n代码可复用自动化测试优势、劣势自动

3、化测试优势、劣势劣势:n代码维护成本高,对测试人员的要求高n不易做探索性测试n不适合频繁需求变更的项目自动化测试适用范围自动化测试适用范围n需求变更不频繁n回归测试n测试人员有一定的编码基础n产品型项目,项目周期长n重复工作量大自动化测试工具自动化测试工具QTPselenium浏览器IE/FireFoxIE/FireFox/Chrome/Opera语言VBJava/python/ruby/C#等是否收费有破解版,有部分插件是需要收费的免费开源是否容易上手容易有代码基础的容易是否存在GUI存在不存在是否支持录制支持支持SeleniumSelenium简介简介nSelenium是一款基于web应用

4、程序的开源测试工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。它支持Firefox、ie、Chrome等众多浏览器。它同时支持JAVA、C#、Ruby、Python、PHP、Perl等众多的主流语言。SeleniumSelenium简介简介nSelenium Core:JavaScript FrameworknSelenium Core是Selenium的核心部分,它由一些纯js代码组成,可以运行在windows/linux的不同browser上,我们就是通过这些js代码,才可以实现程序对浏览器的控制。nIDE:Firefox插件nIDE是在core的基础上的一种应用,

5、通过UI实现类似QTP/Winner的脚本录制回放功能;nSelenium IDE是通过监听用户对html页面的操作来录制脚本的,是真正能够监听用户对html页面的操作的录制工具SeleniumSelenium简介简介nRC(Remote Control)nSelenium RC模式,是客户端利用各种编程语言,通过网络向Selenium Server发送指令,Selenium Server接收到测试指令后,启动浏览器并向其发出JavaScript调用实现对Html页面的全面追踪,并通过网络把执行结果返回给调用者nSelenium Server的实现原理是其打开浏览器时,把自己的JavaScri

6、pt文件嵌入网页中。然后Selenium的网页通过frame嵌入目标网页。这样,就可以使用Selenium的JavaScript对象来控制目标网页SeleniumSelenium简介简介nWebDrivernWebDriver启动目标浏览器,并绑定到指定端口。该启动的浏览器实例,做webdriver的remoteserver。nClient端通过CommandExcuter发送HTTPRequest给remoteserver的侦听端口(通信协议:thewebriverwireprotocol)nRemoteserver需要依赖原生的浏览器组件(如:IEDriver.dll,chromedriv

7、er.exe),来转化转化浏览器的native调用SeleniumSelenium RCRC与与Selenium WebdriverSelenium WebdriverSelenium RCSelenium WebDriverSeleniumRC的结构复杂,因为服务器需要启动在开始试运行前。webdriver架构比SeleniumRC简单,因为它控制着从操作系统层面的浏览器。Selenium服务器充当浏览器和Selenese的命令之间的中间人webdriver直接相互作用,以在浏览器和使用浏览器的引擎进行控制。SeleniumRC的脚本执行速度较慢,因为它使用了Javascript来与RC互动

8、webdriver的速度更快,因为它直接交互使用的浏览器。SeleniumRC不能支持无头,因为它需要一个真正的浏览器一起工作webdriver可以支持无头执行它是一个简单的API复杂,API相比,RC有点大不能测试移动应用程序可测试iPhone/Android应用程序SeleniumSelenium安装(基于安装(基于PythonPython语言)语言)n下载并安装Pythonpython-2.7.10.msin配置python环境变量环境变量:Path变量值:C:Python27n下载setuptools【python基础包工具】python easy_install.pyn安装pippy

9、thon setup.py installn进入C:Python27ScriptsEasy_install.exe pipSeleniumSelenium安装(基于安装(基于PythonPython语言)语言)n安装selenium进入C:Python27Scripts,执行pipinstall-Useleniumn安装javan下载并安装selenium服务端selenium-server-standalone-2.39.0.jar在selenium-server-standalone-2.39.0.jar目录下执行:java-jarselenium-server-standalone-2.

10、39.0.jarn安装Chrome driver把chromedriver.exe放置到chrome安装目录下,并配置chromedriver.exe环境变量浏览器操作浏览器操作n设置最大化driver.maximize_window()n设置浏览器大小driver.set_window_size(宽,高)n设置浏览器前进后退driver.back()driver.forward()n关闭浏览器driver.quit()n打开浏览器driver.get(“”)浏览器操作浏览器操作对象定位对象定位n对象的定位和操作是自动化测试的核心部分,其中操作又是建立在定位的基础上,因此对象的定位又显得特别重

11、要。n对象的定位分为以下几种:nIdnNamenClass namenTag namenLink textnXpath:部分浏览器会提供计算xpath的插件。(firefox、chrome)nCss selector对象定位对象定位-单个元素定位单个元素定位nId定位:nfind_element_by_id()nName定位:nfind_element_by_name()nClass name定位:nfind_element_by_class_name()ntagname定位:nfind_element_by_tag_name()nlinktext定位:nfind_element_by_lin

12、k_text()nfind_element_by_partial_link_text()nXpath定位:nfind_element_by_xpath()ncss selector定位:nfind_element_by_css_selector()对象定位对象定位-一组一组元素定位元素定位nId定位:nfind_elements_by_id()nName定位:nfind_elements_by_name()nClass name定位:nfind_elements_by_class_name()ntagname定位:nfind_elements_by_tag_name()nlinktext定位:

13、nfind_elements_by_link_text()nfind_elements_by_partial_link_text()nXpath定位:nfind_elements_by_xpath()ncss selector定位:nfind_elements_by_css_selector()对象定位对象定位n对象的定位要依据idnamecssxpath的顺序进行定位nid、name是最常用并且最容易的方式nCss、xpath往往会与id、name配合使用nXpath是最脆弱的方式unitsServicescomponesui对象定位对象定位对象定位对象定位对象定位对象定位-id-id对象定

14、位对象定位-name-name对象定位对象定位-xpath-xpath操作测试对象操作测试对象n清除元素内容nClear()n模拟按键输入nSend_keys(“”)n单击元素nClick()n提交表单nSubmit()n获取大小nSizen获取文本内容nTextn获取相关属性值nget_attribute(name)n查看对象是否可见nis_displayed()n获取对象属性nget_attribute()鼠标事件鼠标事件n右击:context_click()n双击:double_click()n拖动:drag_and_drop(source,target)n鼠标悬停:move_to_el

15、ement()n按下鼠标左键在一个元素上:click_and_hold()键盘键盘事件事件nsend_keys(Keys.BACK_SPACE)删除键(BackSpace)nsend_keys(Keys.SPACE)空格键(Space)nsend_keys(Keys.TAB)制表键(Tab)nsend_keys(Keys.ESCAPE)回退键(Esc)nsend_keys(Keys.ENTER)回车键(Enter)nsend_keys(Keys.CONTROL,a)全选(Ctrl+A)nsend_keys(Keys.CONTROL,c)复制(Ctrl+C)nsend_keys(Keys.CON

16、TROL,x)剪切(Ctrl+X)nsend_keys(Keys.CONTROL,v)粘贴(Ctrl+V)设置等待时间设置等待时间n固定休眠时间nSleep(时间)n超时等待,设置最长等待时间nimplicitly_wait(时间)n设置每隔一段时间内检测当前页面元素是否存在nWebDriverWait(driver,时间).until()nWebDriverWait(driver,时间).until_not()层级定位层级定位n元素有多层父元素,当定位子元素时需要先定位父元素,然后定位到子元素。driver.find_element_by_id().find_element_by_link_

17、text()n界面中多个frame,多个frame处于父级子级关系,先找到父级的frame1,再找到子级的frame2.(可通过frame的id及name进行定位)driver.switch_to_frame(“frame1)driver.switch_to_frame(frame2)窗口处理窗口处理n获取当前窗口current_window_handlen获取所有窗口window_handlesn切换窗口switch_to_window(待切换窗口)对话框处理对话框处理n定位对话框alert=driver.switch_to_alert()n获取对话框文本内容alert.text()n点击对

18、话框确认按钮alert.accept()n点击对话框取消按钮alert.dismiss()下拉框下拉框处理处理test1test2test3test4test5test6下拉框处理下拉框处理例子例子#-*-coding=utf-8fromseleniumimportwebdriverimportos,timedriver=webdriver.Chromefile_path=file:/+os.path.abspath(test.html)driver.get(file_path)time.sleep(2)#先定位到下拉框m=driver.find_element_by_id(“optionte

19、st)#再点击下拉框下的选项m.find_element_by_xpath(/optionvalue=test2).click()time.sleep(1)driver.quit()执行执行jsjs文件文件n当遇到WebDriver无法完成的操作时,可以通过执行js文件来完成。n方法:execute_script(js)cookiecookie处理处理n获取所有cookie信息get_cookies()n获取制定cookie信息get_cookies(name)n添加cookie信息add_cookie(name,value)n删除特定cookiedelete_cookie(name)n删除所

20、有cookiedelete_all_cookies()cookiecookie处理处理n获取所有cookie信息get_cookies()n获取制定cookie信息get_cookies(name)n添加cookie信息add_cookie(name,value)n删除特定cookiedelete_cookie(name)n删除所有cookiedelete_all_cookies()验证码处理验证码处理n去掉验证码n设置万能验证码nPython图片验证码获取(识别率不是百分之百)n通过添加登录cookien通过挡板断言断言处理处理nassert:验证失败了,测试终止nVerify:验证失败了,

21、其余测试案例继续执行nWaitfor:待某一条件为True时测试案例执行,待某一条件为false时测试案例失败并暂停测试。断言断言处理处理nassertLocation(判断当前是在正确的页面)nassertTitle(检查当前页面的title是否正确)nassertValue(检查input的值,checkbox或radio,有值为”on”无为”off”)nassertSelected(检查select的下拉菜单中选中是否正确)nassertSelectedOptions(检查下拉菜单中的选项的是否正确)nassertText(检查指定元素的文本)nassertTextPresent(检查在

22、当前给用户显示的页面上是否有出现指定的文本)nassertTextNotPresent(检查在当前给用户显示的页面上是否没有出现指定的文本)nassertAttribute(检查当前指定元素的属性的值)nassertTable(检查table里的某个cell中的值)nassertEditable(检查指定的input是否可以编辑)nassertNotEditable(检查指定的input是否不可以编辑)nassertAlert(检查是否有产生带指定message的alert对话框)nwaitForElementPresent(等待检验某元素的存在。为真时,则执行。)自动化测试框架自动化测试框架

23、n为什么引入自动化测试框架 有别于传统的桌面应用开发,Web应用因为其迭代周期短,需求变化快特殊性质,越来越多的Web开发团队在拥抱敏捷。同时随着前端技术Javacript,Html5,等不断被推出和完善,Web应用也变得越来越复杂很绚丽。这都给我们的测试带来了挑战。自动化测试框架自动化测试框架n为什么引入自动化测试框架n持续变化的需求n复杂的UIn往往一个测试团队需要应付多个项目的测试工作n非常有限的资源(人力,成本)n跨平台、跨浏览器自动化测试框架自动化测试框架n为什么引入自动化测试框架没有框架的自动化测试是找不到对象的,即使找到了也不会很幸福,就像没有车没有房很难找到对象是一样的道理。自动化测试框架自动化测试框架n自动化测试框架的特性n数据驱动n关键字驱动n对象库的分离和管理n自动化测试脚本的组织和管理n脚本的可重用和可配置演讲完毕,谢谢观看!

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 考试试题 > 一级建造

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁