您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 其它办公文档 > 自动化基础知识(PPT34页)
英文标题:30-40pt副标题:24-28pt字体颜色:R0G0B0内部使用字体:Arial外部使用字体:Arial中文标题:32-40pt字体:宋体副标题:24-28pt字体颜色:R0G0B0字体:华文细黑Web功能自动化测试——WatirWebDriver第一讲:基础知识什么是功能自动化测试?•一般是指软件测试的自动化。自动化测试可理解为测试过程自动化和测试结果分析自动化,包括测试活动的管理与实施、测试脚本的开发与执行。•软件自动化测试模拟手动测试步骤,控制被测软件的执行,完成全自动或半自动测试的过程。•全自动测试:指不需人工干预,由程序自动完成测试的全过程。•半自动测试:指在测试过程中,需手动输入测试用例或选择测试路径,再由自动测试程序按照人工指定的要求完成自动测试。为什么需要功能自动化测试?•删除功能手动测试自动化测试手动单击删除按钮肉眼查看记录是否存在编写或录制脚本调试或回放脚本运行查看测试报告为什么需要功能自动化测试?•注意:自动化测试虽然具有很多优点,但它只是测试工作的一部分,是对手工测试的一种补充。增加软件信任度节省人力资源提高工作效率功能自动化测试前提条件1•软件需求变动不频繁•稳定的模块进行自动化测试2•项目周期足够长•自动化测试是开发过程,需要较长时间3•自动化脚本可重复使用•成本应不大于所创造的经济价值如何实现功能自动化测试?•开源框架Selenium2.0(WebDriver)、Watir等•商业工具QTP、RationalRobot、SilkTest等开源框架与商业工具比较•开源(如Selenium2.0)•商业(如QTP)免费丰富的代码库易维护功能强大可视化界面支持脚本录制开源功能自动化框架比较Selenium2.0多浏览器支持多语言支持Watir语法简单易扩展WatirWebDriver•WatirWebDriver是SeleniumWebDriver的一个封装,使得SeleniumWebDriver的API更加友好,同时使用了Watir的API组织形式,使得代码更简洁和优雅。Selenium2.0WatirWatirWebDriverWatirWebDriverwww.foundertech.com•当然,我们可以通过以下链接,非常方便的获取到WatirWebDriver的API进行阅读。•初始化浏览器browser=Watir::Browser.new:ie#其中,“:ie”表示IE浏览器,其他浏览器例如:“:chrome”,“:firefox”•访问站点browser.goto“url”•关闭浏览器browser.closeButton•按钮单击browser.button(:id=“btn”).click•按钮双击browser.button(:id=“btn”).double_click•按钮是否存在browser.button(:id=“btn”).exists?#一般用于测试结果断言CheckBox•复选框勾选browser.checkbox(:id=“cbx”).set•复选框取消勾选browser.checkbox(:id=“cbx”).clear•复选框是否勾选browser.checkbox(:id=“cbx”).set?#一般用于测试结果断言•复选框是否存在browser.checkbox(:id=“cbx”).exists?TextField•文本框设置值browser.text_field(:id=“txt”).set“value”#文本框自动清空,全量输入•文本框输入值browser.text_field(:id=“txt”).send_keys“value”#文本框不清空,增量输入•是否存在browser.text_field(:id=“txt”).exists?#一般用于测试结果断言SelectListwww.foundertech.com•下拉框根据值选择browser.select_list(:id=sel”).select“value”•下拉框是否存在browser.select_list(:id=“sel”).exists?#一般用于测试结果断言Radio•单选框勾选browser.radio(:id=“ra”).set•单选框是否勾选browser.radio(:id=“ra”).set?#一般用于测试结果断言•是否存在browser.radio(:id=“ra”).exists?#一般用于测试结果断言Linkwww.foundertech.com•超链接单击browser.link(:id=“lnk”).click•超链接双击browser.link(:id=“lnk”).double_click•是否存在browser.link(:id=“lnk”).exists?#一般用于测试结果断言如何定位元素?如何定位元素•使用id定位HTML代码:inputtype=textclass=“cssid=“txtBox1name=usertxtBoxRuby代码:browser.text_field(:id=“txtBox1”).set“user”如何定位元素www.foundertech.comPage22•使用name定位HTML代码:inputtype=textclass=“cssid=“txtBox1name=usertxtBoxRuby代码:browser.text_field(:name=“usertxtBox”).set“user”如何定位元素•使用class定位HTML代码:inputtype=textclass=“cssid=“txtBox1name=usertxtBoxRuby代码:browser.text_field(:class=“css”).set“user”如何定位元素www.foundertech.comPage24•使用xPath定位HTML代码:inputtype=textclass=“cssid=“txtBox1name=usertxtBoxRuby代码:browser.text_field(:xpath=“//*[@id=‘txtBox1’]”).set“user”如何定位元素•使用多种方式相结合定位HTML代码:divinputtype=textname=usertxtBoxinputtype=textname=usertxtBox/divRuby代码:browser.text_field(:name=“usertxtBox”,:index=0).set“user”如何定位元素•使用层级关系定位HTML代码:divid=“kw”inputtype=textname=usertxtBox/divRuby代码:browser.div(:id=“kw”).text_field(:name=“usertxtBox”).set“user”如何处理Frame•Frame有时定位了元素后,在运行程序时仍会提示我们找不到该元素。这时,很大的可能是该元素外部包围了frame。我们可以通过下列方式定位Frame中的元素:HTML代码:iframename=“mainFrame”……inputtype=textname=usertxtBox/iframeRuby代码:browser.frame(:name=“mainFrame”).text_field(:name=“usertxtBox”).set“user”如何处理弹出的新浏览器•通过title定位browser.window(:title=annoyingpopup).usedobrowser.button(:id=close).clickend•获取最后一个窗口browser.windows.last.usedobrowser.button(:id=close).clickend如何处理JS弹出窗口•Alert处理browser.alertdobrowser.button(:value='Alert').clickend•Confirm处理browser.confirm(true)dobrowser.button(:value='Confirm').clickend断言模拟用户操作结果断言断言在Ruby1.9以上版本中,内置了MiniTest库,主要用于单元测试,我们需要用它来进行TestCase生命周期的管理和结果的断言。MiniTest::Unit::TestCaseMiniTest::Assertions断言•MiniTest::Unit::TestCase类TestCase类提供了许多方法,我们一般会继承该类,并重写其中3个方法来搭建起一个测试用例,包括前置条件、操作步骤、预期结果、后置操作。而在操作步骤中,利用WatirWebDriver提供的一系列方法模拟用户操作。•在test_*()方法运行之前运行,一般可看成前置条件,若没有可不写setup()•Testcase的主体部分,一般包括操作步骤和预期结果(即断言)test_*()•在test_*()方法运行之后运行,一般为关闭浏览器等后置操作,若没有可不写teardown()断言•MiniTest::Assertions类Assertions类中包含了许多断言方法,具体可查看以下文档:•常用断言方法assert(test,msg=nil)#当test返回true时,代表测试通过;#当test返回false时,代表测试不通过,此时会输出msgThanks!
本文标题:自动化基础知识(PPT34页)
链接地址:https://www.777doc.com/doc-20322 .html