在任何网站上,在测试前端时都必须模拟真实用户在网站上执行真实功能的情形。这就是所谓的真实浏览器测试,它不同于使用工具(Apache-Bench或Jmeter)执行的合成测试,后者只是模拟网站前端的流量负载。真实浏览器需要一定的时间才能构造出文档对象模型(DOM),这其中包括解析JavaScript,然后再渲染网页。Apache-Bench和Jmeter等工具无法测试真实浏览器在这些方面的加载过程。
有许多工具可以通过编程方式配置并执行网站的真实浏览器测试,它们可以自动化运行,并能与QA和持续集成过程相整合。我在前面提到过的Selenium就是一个Web应用测试系统,大多数主流浏览器都支持。而Watir(htp:p:/watir.com则是一个Rubygem库,它也可以自动执行Web浏览器测试操作。它的名称Watir是“使用Ruby执行Web应用测试(WebapplicationtestinginRuby)”的缩写。
对Web层的直接测试大多属于合成测试,它能够测试出应用程序支持多少会话,但对于应用程序在最终用户使用过程中的行为表现而言,这种测试的作用不大。使用Apache-Bench和Jmeter的合成测试可用于执行抽样测试、烟雾测试和性能测试,它们非常适合执行一些简单测试,如优化ApacheWeb服务器的KeepAlive变量,也适合执行其他一些Web服务器的优化操作,但是无法测试Selenium或Watir所支持的最终用户性能指标。这里一定要记住一点,在模拟某种用户活动(如加载一个照片集)的可控环境中执行的测试无法完全体现生产环境的运行方式。即使在一个分段环境中执行测试,也能发现许多关于应用执行或响应的信息,但是只有把应用程序部署到生产环境中,我们才能够真正测试出它的性能和表现。
Selenium是一个使用真实浏览器的自动化Web应用功能测试框架。它允许我们配置网站的工作流程和交互方式,模拟真实用户的操作方式。Selenium还会将这些交互记录在视频中,便于我们在测试完成之后检查测试是否通过。由于需要启动一个真实浏览器、记录交互过程和重放操作,所以测试过程会有一些开销,这个过程需要成百上千个虚拟机才能模拟出大量用户使用真实浏览器访问网站的效果。即使是一些大型组织,执行这种测试也会有一些难度。现在有一些服务可以执行这些活动,如KeynoteSystems、Gomez和BrowserMob(使用Selenium),它们有分布在世界各地的节点,这些服务都使用真实浏览器来执行地域分散的负载测试和性能监控。
无论采用何种方式,网站建设测试Web应用的所有组件都非常重要,而且最好能够记录Web应用程序的各个部分,以及各个层在一段时间的执行情况,这样就能够与Web应用程序的不同版本或修改进行比较。
>>> 查看《如何测试网站各个组件,并快速修复故障?》更多相关资讯 <<<
本文地址:http://tcgq.cn/news/html/4497.html