好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

自动化基础知识演示教学.ppt

34页
  • 卖家[上传人]:公****
  • 文档编号:589824599
  • 上传时间:2024-09-11
  • 文档格式:PPT
  • 文档大小:1.86MB
  • / 34 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 英文标题:20-30pt 字体￿:Arial中文标题:20-30pt字体:华文细黑加粗 首选颜色: R0G0 B0备选颜色: R255 G255 B255英文正文:18-20pt子目录￿(2-3级) :16pt 字体￿:Arial中文正文:18-20pt子目录(2-5级):16-20pt字体:华文细黑￿ 首选颜色: :R0G0 B0备选颜色: R234 G87 B3自动化基础知识 什么是功能自动化测试?•一般是指软件测试的自动化自动化测试可理解为测试过程自动化和测试结果分析自动化,包括测试活动的管理与实施、测试脚本的开发与执行•软件自动化测试模拟手动测试步骤,控制被测软件的执行,完成全自动或半自动测试的过程•全自动测试:指不需人工干预,由程序自动完成测试的全过程•半自动测试:指在测试过程中,需手动输入测试用例或选择测试路径,再由自动测试程序按照人工指定的要求完成自动测试 为什么需要功能自动化测试?•删除功能手动测试自动化测试 为什么需要功能自动化测试?•注意:自动化测试虽然具有很多优点,但它只是测试工作的一部分,是对手工测试的一种补充 功能自动化测试前提条件 如何实现功能自动化测试?•开源框架Selenium 2.0(WebDriver)、Watir等•商业工具QTP、Rational Robot、SilkTest等 开源框架与商业工具比较•开源(如Selenium 2.0)•商业(如QTP) 开源功能自动化框架比较 Watir WebDriver•Watir WebDriver是Selenium WebDriver的一个封装,使得Selenium WebDriver的API更加友好,同时使用了Watir的API组织形式,使得代码更简洁和优雅。

      Watir WebD• •当然,我们可以通过以下链接,非常方便的获取到当然,我们可以通过以下链接,非常方便的获取到Watir WebDriverWatir WebDriver的的APIAPI进行阅读进行阅读http://www.rubydoc.info/gems/watir-webdriver 常用API介绍 Browser•初始化浏览器browser = Watir::Browser.new :ie    browser = Watir::Browser.new :ie    # 其中,“:ie”表示IE浏览器,其他浏览器例如:“:chrome”,“:firefox”•访问站点browser.goto “url”browser.goto “url”•关闭浏览器browser.closebrowser.close Button•按钮单击browser.button(:id => “btn”).clickbrowser.button(:id => “btn”).click•按钮双击browser.button(:id => “btn”).double_clickbrowser.button(:id => “btn”).double_click•按钮是否存在browser.button(:id => “btn”).exists?browser.button(:id => “btn”).exists?           # 一般用于测试结果断言￿￿￿￿ Check Box•复选框勾选复选框勾选browser.checkbox(:id => “cbx”).setbrowser.checkbox(:id => “cbx”).set•复选框取消勾选复选框取消勾选browser.checkbox(:id => “cbx”).clearbrowser.checkbox(:id => “cbx”).clear•复选框是否勾选复选框是否勾选browser.checkbox(:id => “cbx”). setbrowser.checkbox(:id => “cbx”). set?         ?         # 一般用于测试结果断言•复选框是否存在复选框是否存在browser.checkbox(:id => “cbx”). exists?browser.checkbox(:id => “cbx”). exists?￿￿￿￿ Text Field•文本框设置值文本框设置值browser.text_field(:id => “txt”).set “value”         browser.text_field(:id => “txt”).set “value”         # 文本框自动清空,全量输入•文本框输入值文本框输入值browser.text_field(:id => “txt”).send_keys “value”  browser.text_field(:id => “txt”).send_keys “value”  # 文本框不清空,增量输入•是否存在是否存在browser.text_field(:id => “txt”).exists?browser.text_field(:id => “txt”).exists?                # 一般用于测试结果断言￿￿￿￿ Select L•下拉框根据值选择下拉框根据值选择browser.select_list(:id => sel”).select “value”browser.select_list(:id => sel”).select “value”•下拉框是否存在下拉框是否存在browser.select_list(:id => “sel”).existsbrowser.select_list(:id => “sel”).exists?      ?      # 一般用于测试结果断言￿￿￿￿ Radio•单选框勾选单选框勾选browser.radio(:id => “ra”).setbrowser.radio(:id => “ra”).set•单选框是否勾选单选框是否勾选browser.radio(:id => “ra”).set?               browser.radio(:id => “ra”).set?               # 一般用于测试结果断言•是否存在是否存在browser.radio(:id => “ra”).exists?           browser.radio(:id => “ra”).exists?           # 一般用于测试结果断言￿￿￿￿ L•超链接单击超链接单击browser.link(:id => “lnk”).clickbrowser.link(:id => “lnk”).click•超链接双击超链接双击browser.link(:id => “lnk”).double_clickbrowser.link(:id => “lnk”).double_click•是否存在是否存在browser.link(:id => “lnk”).exists?           browser.link(:id => “lnk”).exists?           # 一般用于测试结果断言￿￿￿￿ 如何定位元素? 如何定位元素•使用使用id定位定位HTML代码: >Ruby代码:browser.text_field(:id => “txtBox1”).set “user”browser.text_field(:id => “txtBox1”).set “user”￿￿￿￿ 如何定位元素Page21•使用使用name定位定位HTML代码: >Ruby代码:browser.text_field(:name => “browser.text_field(:name => “usertxtBoxusertxtBox”).set “user””).set “user”￿￿￿￿ 如何定位元素•使用使用class定位定位HTML代码: >Ruby代码:browser.text_field(:class=> “browser.text_field(:class=> “csscss”).set “user””).set “user”￿￿￿￿ 如何定位元素Page23•使用使用xPath定位定位HTML代码: >Ruby代码:browser.text_field(:xpath => “//*[@id=‘txtBox1’]”).set “user”browser.text_field(:xpath => “//*[@id=‘txtBox1’]”).set “user”￿￿￿￿ 如何定位元素•使用多种方式相结合定位使用多种方式相结合定位HTML代码:

      > >
      Ruby代码:browser.text_field(:name => “usertxtBox”, :index => 0).set “user”browser.text_field(:name => “usertxtBox”, :index => 0).set “user”￿￿￿￿ 如何定位元素•使用层级关系定位使用层级关系定位HTML代码: >
    Ruby代码:browser.div(:id => “kw”).text_field(:name => “usertxtBox”).set “user”browser.div(:id => “kw”).text_field(:name => “usertxtBox”).set “user”￿￿￿￿ 如何处理Frame•Frame有时定位了元素后,在运行程序时仍会提示我们找不到该元素。

    这时,很大的可能是该元素外部包围了frame我们可以通过下列方式定位Frame中的元素:HTML代码:…… >Ruby代码:browser.frame(:name => “mainFrame”).text_field(:name => “usertxtBox”).set browser.frame(:name => “mainFrame”).text_field(:name => “usertxtBox”).set “user”“user” 如何处理弹出的新浏览器•通过通过title定位定位browser.window(:title => "annoying popup").use dobrowser.window(:title => "annoying popup").use do  browser.button(:id => "close").click  browser.button(:id => "close").clickendend•获取最后一个窗口获取最后一个窗口browser.windows.last.use dobrowser.windows.last.use do  browser.button(:id => "close").click  browser.button(:id => "close").clickendend￿￿￿￿ 如何处理JS弹出窗口•Alert处理处理browser.alert do  browser.alert do    browser.button(:value => 'Alert').click    browser.button(:value => 'Alert').click  endend•Confirm处理处理browser.confirm(true) do  browser.confirm(true) do    browser.button(:value => 'Confirm').click    browser.button(:value => 'Confirm').click  endend￿￿￿￿ 断言 断言在Ruby1.9以上版本中,内置了MiniTest库,主要用于单元测试,我们需要用它来进行TestCase生命周期的管理和结果的断言。

    断言•MiniTest::Unit::TestCase类TestCase类提供了许多方法,我们一般会继承该类,并重写其中3个方法来搭建起一个测试用例,包括前置条件、操作步骤、预期结果、后置操作而在操作步骤中,利用Watir WebDriver提供的一系列方法模拟用户操作 断言•MiniTest::Assertions类类Assertions类中包含了许多断言方法,具体可查看以下文档:http://ruby-doc.org/stdlib-2.0/libdoc/minitest/rdoc/MiniTest/Assertions.html•常用断言方法常用断言方法assert(test, msg = nil)assert(test, msg = nil)#当test返回true时,代表测试通过;#当test返回false时,代表测试不通过,此时会输出msg￿￿￿￿ Thanks! 英文标题:20-30pt 字体￿:Arial中文标题:20-30pt字体:华文细黑加粗 首选颜色: R0G0 B0备选颜色: R255 G255 B255英文正文:18-20pt子目录￿(2-3级) :16pt 字体￿:Arial中文正文:18-20pt子目录(2-5级):16-20pt字体:华文细黑￿ 首选颜色: :R0G0 B0备选颜色: R234 G87 B3此课件下载可自行编辑修改,仅供参考!此课件下载可自行编辑修改,仅供参考!感谢您的支持,我们努力做得更好!谢谢感谢您的支持,我们努力做得更好!谢谢 。

    点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.