jenkins+selenium+eclipse+ant+testng整合心得

对于一个自动化测试新手,整合selenium还是需要注意很多地方,一个是Jenkins依赖插件包和其版本问题,一个是浏览器和selenium版本问题,还有就是浏览器驱动版本的问题,还要学会调试的方法,要是不注意,你会发现很郁闷,所有组件都已经ready,但是就是不能成功,下面给大家介绍一下我的整合心得,抛开很多错误的示范,直接上正确的。


一. 先安装Jenkins,安装Hudson Seleniumhq plugin插件,此处就不多说了,上网查一下安装方法,比较简单

系统配置:

selenium server配置:

先下载好对应版本的selenium-server包,按下图进行配置:

JDK和ant配置:

jenkins+selenium+eclipse+ant+testng整合心得_第1张图片


二. 环境准备eclipse+ant+testng

eclipse安装-略

ant,下载ant安装包,配置ANT_HOME环境变量,并添加path路径,eclipse如果没有按照ant的,可以安装ant插件

(这里解释一下,为什么需要安装两个,因为Jenkins通过ant构建的时候是使用自己安装的ant来构建的)

testng,在eclipse中安装testng插件


三.selenium和eclipse整合

1.版本选择

selenium2对火狐浏览器支持比较好,所以先来看看selenium和火狐浏览器的版本对应:

jenkins+selenium+eclipse+ant+testng整合心得_第2张图片

我的环境就是采用2.52.0->39.0.3


2. 创建项目

下载selenium2.52.0的包,把selenium-java-2.52.0.jar,selenium-java-2.52.0-srcs.jar,以及libs下所有jar都添加到eclipse项目里面

创建项目,项目右键,创建一个testNG的类,编写一个测试用例脚本(包含三个浏览器的实现):

package com.selenium;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.testng.Assert;
import org.testng.annotations.Test;

public class NewTest {
	@Test
	public void testbaidu() {
		//IE
//		System.setProperty("webdriver.ie.driver","src/resource/IEDriverServer.exe");
//		InternetExplorerDriver driver=new InternetExplorerDriver();
		
		//Chrome
//		System.setProperty("webdriver.chrome.driver","src/resource/chromedriver.exe");
//		ChromeOptions options = new ChromeOptions(); 
//		options.setBinary("D:/ToolSoftware/GoogleChromePortable52/App/Google Chrome/chrome.exe"); 
//		ChromeDriver driver = new ChromeDriver(options); 
		
		//Firefox
		System.setProperty("webdriver.firefox.bin", "C:/Program Files/Mozilla Firefox/firefox.exe");
		WebDriver driver = new FirefoxDriver();

		
		driver.get("https://www.baidu.com/");
		// we expect the title “Google “ should be present
		String Expectedtitle = "百度一下,你就知道";
		// it will fetch the actual title
		String Actualtitle = driver.getTitle();
		System.out.println("Before Assetion " + Expectedtitle + Actualtitle);
		// it will compare actual title and expected title
		Assert.assertEquals(Actualtitle, Expectedtitle);
		// print out the result
		System.out.println("After Assertion " + Expectedtitle + Actualtitle
				+ " Title matched ");
	}
	
}

在项目根目录创建一个testng.xml脚本:




  
  
     
      
    
   
 


在项目根路径创建build.xml文件:



    
    
        
        	
            
        	
        	
        	
        	
        	
         
        
            
        	
        
    
    
    
        
    
    
        
        
        
            
        
    
     
          
          
        
    
        
            
            
        
    


3.selenium和chromedriver/iedriver版本的对应关系

selenium2需要调用chrome或者ie浏览器,需要引入驱动文件,版本对应关系如下:

->selenium和chrome:

jenkins+selenium+eclipse+ant+testng整合心得_第3张图片

所有chromedriver均可在下面链接中下载到:

http://chromedriver.storage.googleapis.com/index.html

此处引用:http://blog.csdn.net/wang8978/article/details/52934506

->selenium和ie:

下载IEDriverServer。进入索引页,首先选择版本号,IEDriverServer的版本号和Selenium的版本号一定要一致,因为我选择的是selenium-2.52,所以IEDriverServer也选择的是2.52版本的。

 针对windows vista和windows 7上的IE7或者更高的版本,必须在IE选项设置的安全页中,4个区域的启用保护模式的勾选都去掉(或都勾上),即保持四个区域的保护模式是一致的。如下图所示:

这里写图片描述

针对IE10和更高的版本,必须在IE选项设置中的高级页中,取消增强保护模式。如下图所示

这里写图片描述

浏览器的缩放比例必须设置为100%,这样元素定位才不会出现问题,如下图所示

这里写图片描述

针对IE11,需要修改注册表。如果是32位的windows,key值为

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet 
Explorer\Main\FeatureControl\FEATURE_BFCACHE

如果是64位的windows,key值为

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet 
Explorer\Main\FeatureControl\FEATURE_BFCACHE

如果key值不存在,就添加。之后在key内部创建一个iexplorer.exe,DWORD类型,值为0,我的windows是64位的,修改后的注册表如下图所示: 

这里写图片描述

这里写图片描述

此处引用:http://blog.csdn.net/zyl26/article/details/51011073


四、 创建Jenkins job

创建一个自由风格的job

jenkins+selenium+eclipse+ant+testng整合心得_第4张图片

配置ant:

jenkins+selenium+eclipse+ant+testng整合心得_第5张图片

报告配置:

jenkins+selenium+eclipse+ant+testng整合心得_第6张图片

开始构建:

Started by user guyingjie
[EnvInject] - Loading node environment variables.
Building in workspace D:\BuildSoftware\Jenkins\workspace\testngtest2
[WorkSpaces] $ cmd.exe /C "D:\BuildSoftware\apache-ant-1.9.6\bin\ant.bat -file Jenkins_selenium run && exit %%ERRORLEVEL%%"
Buildfile: E:\WorkSpaces\Jenkins_selenium\build.xml
     [echo] import libs
clean:
   [delete] Deleting directory E:\WorkSpaces\Jenkins_selenium\build

compile:
     [echo] mkdir
    [mkdir] Created dir: E:\WorkSpaces\Jenkins_selenium\build\classes
    [javac] E:\WorkSpaces\Jenkins_selenium\build.xml:26: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
    [javac] Compiling 1 source file to E:\WorkSpaces\Jenkins_selenium\build\classes
run:
   [testng] [Parser] Running:
   [testng]   E:\WorkSpaces\Jenkins_selenium\testng2.xml
   [testng] 
   [testng] Before Assetion 百度一下,你就知道 
   [testng] After Assertion 百度一下,你就知道 Title matched
   [testng] 
   [testng] ===============================================
   [testng] testng2
   [testng] Total tests run: 1, Failures: 0, Skips: 0
   [testng] ===============================================
   [testng] 
BUILD SUCCESSFUL
Total time: 46 seconds
[htmlpublisher] Archiving HTML reports...
[htmlpublisher] Archiving at PROJECT level E:\WorkSpaces\Jenkins_selenium\test-output\html to D:\BuildSoftware\Jenkins\jobs\testngtest2\htmlreports\HTML_Report
Finished: SUCCESS

如上代表成功,可以到项目路径下Jenkins_selenium\test-output\html 查看网页报告,也可以在Jenkins页面查看:

jenkins+selenium+eclipse+ant+testng整合心得_第7张图片

注意:在Jenkins上构建执行的时候,不会不会弹出浏览器,是后台运行的


五、在eclipse上运行测试脚本

右键run as,选择testng test运行,可以看到浏览器执行脚本。

你可能感兴趣的:(自动化测试,selenium,selenium,firefox,eclipse,ant)