您的位置:软件测试 > 开源软件测试 > 开源功能测试工具 > Selenium
利用Selenium自动化web测试
作者:网络转载 发布时间:[ 2016/6/15 16:19:26 ] 推荐标签:Selenium 功能测试 自动化测试

  清单 4. 自动化选择的 RC 代码
  //click on the date field by id you defined;
  selenium.clickAt("dateBox","");
  //wait for the drop down date box by id;
  selenium.waitForCondition("selenium.isElementPresent("widget_dateBox_dropdown")",
  "2000");
  //click previous year 2008;
  selenium.clickAt("//span[contains(@class,'dijitCalendarPreviousYear')]", "");
  //click on the month increase;
  //previous month would contains  ‘dijitCalendarIncrease’.
  selenium.clickAt("//img[contains(@class,'dijitCalendarIncrease')]","");
  //click on the date such as 28 of current month; If you do not specify
  //the td with the attribute of current month class, it will click
  on the //first 28 of previous month;
  selenium.click("//td[contains(@class,'dijitCalendarCurrentMonth')]/span[text()='28']");
  如本例所示,Dojo 应用程序不能通过简单的 IDE 记录进行测试。这些脚本有可能不能通过测试。脚本中有一些丢失的操作,或者操作并不真正工作。脚本应该调整成能够在 IDE 和 RC 中顺利地执行。对于复杂的 Dojo 小部件,一种可能的解决方案是使用 runScript(String) 函数,因为 Selenium 对 JavaScript 提供很好的支持。清单 5 提供一个 JavaScript 语句来模拟组合框选择。
  清单 5. 运行 JavaScript 语句在组合框上进行选择
  selenium.runScript("dijit.byId("offeringType").setValue("Stack(SWG)");");
  如何利用 Ant 构建 Selenium 测试
  诸如 Ant 这样的集成工具可以方便地构建 Selenium 测试和顺畅地运行测试用例,无需单独启动 Selenium 服务器。如果 Selenium 测试由 TestNG 驱动,那么定义清单 6 所示 TestNG Ant 任务。清单 6 中假设 classpath 是 TestNG.jar 文件的文件路径。
  清单 6. TestNG Ant 任务
  <taskdef resource="testngtasks" classpath="testng.jar"/>      
  主要的目标是启动服务器、运行测试,然后停止服务器。这些任务按照 bulid.xml 中定义的顺序实现在清单 7 中。
  清单 7. 启动服务器、运行测试用例并停止服务器的 Ant 任务
  <target name="run_test" description="start,run and stop" depends="dist">
  <parallel>
  <antcall target="start-server" />
  <sequential>
  <echo taskname="waitfor" message="Waitforproxy server launch" />
  <waitfor maxwait="2" maxwaitunit="minute" checkevery="100">
  <http url="http://localhost:4444/selenium-server/driver/?cmd=testComplete" />
  </waitfor>
  <antcall target="runTestNG" />
  <antcall target="stop-server" />
  </sequential>
  </parallel>
  </target>
  代码更可取的地方是使用 waitfor 任务来测试 Selenium 服务器是否已成功启动,而不是暂停一段固定的时间。如果 URL http://localhost:4444/selenium-server/driver/?cmd=testComplete 可用,意味着 Selenium 已经成功启动。在清单 7 中,它多等待两分钟,并且每 100 毫秒在本地主机上检查一次 Selenium 服务器,以提供完整的 URL。
  start-server 任务的详细内容定义在清单 8 中。Firefox profile 模板位置和其他参数可以指定在标记 <arg> 中。
  清单 8. 详细的启动服务器的 Ant 任务
  <target name="start-server">
  <java jar="lib/selenium-server.jar" fork="true">
  <arg line="-firefoxProfileTemplate ${selenium}/profile/" />
  </java>
  </target>
  runTestNG 任务的详细内容定义在清单 9 中。testng 任务的常用属性包括 outputDir 和 xmlfileset。属性 outputDir 用于设置输出报告位置。属性 xmlfileset 用于包含启动 XML 文件。更多选项请参考 TestNG 正式网站。
  清单 9. 运行测试用例的 Ant 任务
  <target name="runTestNG">
  <testng outputDir="${testng.report.dir}" sourcedir="${build}"
  classpathref="run.cp" haltOnfailure="true">
  <xmlfileset dir="${build}" includes="testng.xml" />
  </testng>
  </target>
  stop-server 任务的详细内容定义在清单 10 中。
  清单 10. 停止 Selenium 服务器的 Ant 任务
  <target name="stop-server">
  <get taskname="selenium-shutdown"
  src="http://localhost:4444/selenium-server/driver/?cmd=shutDown" ignoreerrors="true" />
  <echo taskname="selenium-shutdown" message=" Errors during shutdown are expected" />
  </target>
  上面列出了关键任务。将它们组合到您的构建文件,以便利用 Ant 完成良好集成的测试。
  如何支持测试 HTTPS 网站
  随着互联网日益强调信息安全,越来越多的 web 应用程序在使用 SSL 身份认证。Selenium IDE 默认支持 HTTPS,但是 Selenium RC 不是这样的。Internet Explorer 和 Firefox 中的解决方案各不相同。
  对于 IE,在 setup 目录下的 SSL 支持文件夹中在安装一个证书。如果使用的版本早于 Selenium-RC 1.0 beta 2,请使用 *iehta 运行模式,对于 Selenium-RC 1.0 beta 2 或更晚的版本,使用 *iexplore 运行模式。
  如果测试 HTTPS 网站时出现一个如下所示的安全警告,那么单击 View Certificate 并安装 HTTPS 网站的证书。如果继续弹出警告,那么考虑在 IE 中进行配置。打开 Tool > Internet Options > Advanced,并取消选择 security 分类下的 Warn about invalid site certificates 和 Check for publisher's certificate revocation。
上一页12345下一页
软件测试工具 | 联系我们 | 投诉建议 | 诚聘英才 | 申请使用列表 | 网站地图
沪ICP备07036474 2003-2017 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd