探索企业自动化流程优化之道——提升Selenium Java自动化测试效率的策略解析
如何增强自动化测试的执行效能 selenium java
在实施自动化测试过程中,提升测试执行效能是众多开发者关注的焦点。本文将阐述如何在Java环境下运用Selenium进行自动化测试,以增强执行效能。
首先,我们必须搭建开发环境。1.1安装并配置Java环境,此处选取JDK,可从官方网站下载并依照安装向导进行安装。1.2挑选Java集成开发环境,此处推荐使用Eclipse,可从官方网站下载并解压。
然后是Selenium的安装配置。1.3在Selenium官方网站下载Selenium IDE、Selenium Server和Selenium Client Driver。Selenium IDE用于录制脚本,执行脚本和修改脚本;Selenium Server用于启动浏览器,接收Client端的请求执行测试;Selenium Client则是向Server端发送请求。
在Eclipse中编辑并执行测试代码。2.1创建一个Java项目,选择File-New-Java Project。2.2在新创建的项目上右键点击,选择Build Path-Add External Archives...,将下载的selenium-java-2.21.0.jar和selenium-server-standalone-2.21.0.jar添加进来。
启动Selenium Server。进入cmd,运行"java-jar selenium-server-standalone-2.21.0.jar",确保能正确找到jar包。这将启动一个独立的Selenium服务器,执行信息如下:[java] view plaincopy信息: 启动一个独立服务器 22:16:21.484 INFO- Java: Sun Microsystems Inc. 17.1-b03 22:16:21.500 INFO- OS: Windows XP 5.1 x86 22:16:21.515 INFO- v2.21.0, with Core v2.21.0. Built from revision 16552 22:16:21.859 INFO- RemoteWebDriver instances should connect to: . 1:4444/wd/hub 22:16:21.875 INFO- Version Jetty/5.1.x 22:16:21.875 INFO- Started HttpContext[/selenium-server/driver,/selenium-server/driver] 22:16:21.875 INFO- Started HttpContext[/selenium-server,/selenium-server] 22:16:21.875 INFO- Started HttpContext[/,/] 22:16:22.062 INFO- Started org.openqa.jetty.jetty.servlet.ServletHandler5d173 22:16:22.062 INFO- Started HttpContext[/wd,/wd] 22:16:22.093 INFO- Started SocketListener on 0.0.0.0:4444 22:16:22.093 INFO- Started org.openqa.jetty.jetty.Server32fb4f [java] view plain copy信息: 启动一个独立服务器 22:16:21.484 INFO- Java: Sun Microsystems Inc. 17.1-b03 22:16:21.500 INFO- OS: Windows XP 5.1 x86 22:16:21.515 INFO- v2.21.0, with Core v2.21.0. Built from revision 16552 22:16:21.859 INFO- RemoteWebDriver instances should connect to: . 1:4444/wd/hub 22:16:21.875 INFO- Version Jetty/5.1.x 22:16:21.875 INFO- Started HttpContext[/selenium-server/driver,/selenium-server/driver] 22:16:21.875 INFO- Started HttpContext[/selenium-server,/selenium-server] 22:16:21.875 INFO- Started HttpContext[/,/] 22:16:22.062 INFO- Started org.openqa.jetty.jetty.servlet.ServletHandler5d173 22:16:22.062 INFO- Started HttpContext[/wd,/wd] 22:16:22.093 INFO- Started SocketListener on 0.0.0.0:4444 22:16:22.093 INFO- Started org.openqa.jetty.jetty.Server32fb4f
编写测试代码。2.4示例代码如下:
[java] view plaincopyimport com.thoughtworks.selenium.DefaultSelenium;
public class SeleniumDemo01{
public static void main(String[] args){
String host="localhost";
int port= 4444;
String url="";
String browserType="*firefox";
String keyWordsLocator="document.getElementById('kw')";
String search="document.getElementById('su')";
DefaultSelenium selenium= new DefaultSelenium(host,port,browserType,url);
selenium.start();
selenium.open(url);
selenium.type(keyWordsLocator,"java selenium");
selenium.click(search);
selenium.waitForPageToLoad("50000");
selenium.stop();
}
}
运行结果如下:
1.打开Firefox浏览器
2.访问百度主页
3.在搜索框中输入"java selenium"
4.点击"百度一下"按钮
5.等待页面加载50秒
6.关闭浏览器
如何提升网站页面加载速度
网页加载时间的一半在于代码的加载,包括各种文件以及一些因素,那么我们可以从这些因素考虑:
1、合并Js文件和CSS
将JS代码和CSS样式分别合并到一个共享的文件,这样不仅能简化代码,而且在执行JS文件时,如果JS文件较多,就需要进行多次“Get”请求,延长加载速度,将JS文件合并在一起后,自然就减少了Get请求次数,提升了加载速度。
2、使用CSS Sprites技术
Spriting是一种网页图片应用处理方式,它是将一个页面涉及到的所有零星图片都包含到一张大图中去,然后利用CSS技术展现出来。这样一来,当访问该页面时,载入的图片就不会像以前那样一幅一幅地慢慢显示出来了,可以减少了整个网页的图片大小,并且利用CSS Sprites能很好地减少网页的http请求,从而极大地提高页面的性能。CSS Sprites在国内很多人叫css精灵,很早就有了,在很多大型网站都有应用,特别是一些所有页面都存在的图标用得比较多,很好地提升了加载速度。
Spriting技术是一种针对网页图像的应用处理方法,它将一个页面所涉及的所有分散的图片整合成一张大图,并通过CSS技术来呈现。这样一来,当访问该页面时,加载的图片将不再逐个慢慢显示,从而减少了整个网页的图片体积,同时利用CSS Sprites技术能有效降低网页的HTTP请求,显著提升页面性能。CSS Sprites在国内通常被称为css精灵,它早已存在,被许多大型网站所采用,尤其是在需要频繁使用图标的页面上,它显著提升了加载速度。
3、文本与图片的压缩
压缩技术如gzip能够有效缩短页面加载时间。这包括HTML、XML、JSON(JavaScript对象符号)、JavaScript和CSS等,压缩率可达到70%左右。文本压缩使用较为普遍,通常在空间开启时直接进行,而图片的压缩则相对自由,许多都是直接上传,实际上还有很大的压缩空间。
4、延迟加载可见区域外的内容
为确保用户能迅速看到可见区域的网页内容,可以延迟加载或展示可见区域外的内容。为了避免页面变形,可以使用占位符标签来设定正确的高度和宽度。例如,WP的jQuery Image LazyLoad插件可以在用户停留在第一屏时,不加载任何第一屏以下的图片信息,只有当用户向下滚动时,这些图片才开始加载。这样明显提升了可见区域的加载速度,改善了用户体验。
5、确保功能图片优先加载
网站主要考虑可用性的重要性,功能按钮应提前加载,用户进入下载页时,一个只需8秒的下载过程,如果在等待和寻找下载按钮图片上花费了5秒,谁能忍受?
6、调整Call-to-Action按钮的位置
这与前一条类似,都是从用户体验速度的角度出发,忽略了网页的整体加载速度。速度并未改变,只是将一些行为按钮提前。Call-to-Action按钮通常设计在页面底部,这种习惯对于用户来说并不总是好的,因为购买用户需要等到最下面才能点击下一步操作。可以调整CTA按钮的位置或使用滑动的图片按钮。许多大型购物网站的加入购物车就是这种类型。
7、优化图片格式
不恰当的图像格式是减缓加载速度的常见原因。正确的图片格式可以让图片缩小数倍,如果保存为最佳格式,可以节省大量带宽,减少处理时间,显著提高页面加载速度,这是一种常见的做法。
8、使用Progressive JPEGs
Progressive JPEGs是JPEG格式的一个特殊变体,被称为“高级JPEG”。在创建高级JPEG文件时,数据是这样安排的:在装入图像时,最初只显示一个模糊的图像,随着数据的装入,图像逐步变得清晰。它类似于交织的GIF格式的图片。高级JPEG主要是考虑到使用调制解调器的慢速网络而设计的,对于使用快速网络的用户,通常不会感受到它与正常JPEG格式图片的区别。对于网速较慢的用户,这无疑有很好的体验。
9、精简代码
这是最直接的方法,也是常用的方法,即对网页代码进行优化,删除不必要的冗余代码,如不必要的空格、换行符、注释等,包括JS代码中的无用代码也需要清除。其中,对于注释代码的清除可能有些人存在误区,甚至有的在里面堆砌关键词。
10、延迟加载和执行非必要脚本
网页中有很多脚本在页面完全加载前都不需要执行,可以延迟加载和执行非必要脚本。这些脚本可以在onload事件之后执行,避免对网页上重要内容的呈现造成影响。这些脚本可能是自己网页的代码,也可能是第三方脚本,如评论、广告、智能推荐、百度云图、分享等,这些完全可以等主体内容加载完后再执行。
11、使用AJAX
AJAX即“Asynchronous Javascript+XML”,是一种创建交互式网页应用的网页开发技术。通过在后台与服务器进行少量数据交换,AJAX可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。传统的网页(不使用AJAX)如果需要更新内容,必须重载整个网页面。
12、自动化页面性能优化
自动化的页面性能优化就是借助工具,网站提速工具有很多,这里Radware推荐了自家的Radware FastView,这也算是Radware为自家产品做了一次广告,这里不多说了。