Java+Selenium3基础篇5-第一个自动化测试脚本


前面几篇我们介绍了环境搭建和三大浏览器的启动方法,这篇文章我们介绍第一个自动化测试脚本。我的个人经验是,自动化脚本编写比较容易,最大的困难去如何去写测试断言。自动化测试,最重要的还是落在测试上面,而不是自动化,自动化只是手段。断言的写法,就考验出一个测试工程师是否考虑全面,体现出你的用例编写水平。

举例:验证打开链接是百度首页

分析问题:

我们输入了url,然后打开一个页面,如果判断这个页面是不是我们提前知道的页面呢。

1. 获取当前url是不是和输入的一致,假如链接没有发生重定向。

2. 获取当前页面title,是不是我们期待的结果。

3. 在页面元素body找一个特征元素,这个特征元素能够代表是该网站。

       我想,也大概只有上面三点依据可以判断我们访问的网站对不对。第一点,有时候不靠谱,不知道你们是否听说过盗链,就是输入一个网站URL,显示的内容是别人的网站,而不是你测试的网站。甚至有链接的重定向出现。第二点,还是比较考虑,title这个值是网站前端开发同学写入的,基本上可以代表是你要打开的网站。第三点,有点难找这样的特征元素,而且有时候找到了也不一定是正确的。下面的代码就用页面的title来作为我们判断的依据。

  1. package lessons;  
  2.   
  3. import java.util.concurrent.TimeUnit;  
  4.   
  5. import org.openqa.selenium.WebDriver;  
  6. import org.openqa.selenium.chrome.ChromeDriver;  
  7.   
  8. public class FirstScript {  
  9.   
  10.     public static void main(String[] args) {  
  11.           
  12.              System.setProperty("webdriver.chrome.driver"".\\Tools\\chromedriver.exe");    
  13.            
  14.          WebDriver driver = new ChromeDriver();    
  15.               
  16.          driver.manage().window().maximize();    
  17.                
  18.          driver.manage().timeouts().implicitlyWait(8, TimeUnit.SECONDS);       
  19.           
  20.          driver.get("https://www.baidu.com");    
  21.          //判断title是不是 百度一下,你就知道  
  22.            
  23.          try{  
  24.              String baidu_title = "百度一下,你就知道";  
  25.              assert baidu_title == driver.getTitle();  
  26.              System.out.println("Test Pass");  
  27.                
  28.          }catch(Exception e){  
  29.              e.printStackTrace();  
  30.          }  
  31.                 
  32.          //关闭并退出浏览器    
  33.          driver.quit();    
  34.     }  
  35.   
  36. }  
package lessons;

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class FirstScript {

	public static void main(String[] args) {
		
             System.setProperty("webdriver.chrome.driver", ".\\Tools\\chromedriver.exe");  
         
	     WebDriver driver = new ChromeDriver();  
	        
	     driver.manage().window().maximize();  
	         
	     driver.manage().timeouts().implicitlyWait(8, TimeUnit.SECONDS);     
	    
	     driver.get("https://www.baidu.com");  
	     //判断title是不是 百度一下,你就知道
	     
	     try{
	    	 String baidu_title = "百度一下,你就知道";
	    	 assert baidu_title == driver.getTitle();
	    	 System.out.println("Test Pass");
	    	 
	     }catch(Exception e){
	    	 e.printStackTrace();
	     }
	          
	     //关闭并退出浏览器  
	     driver.quit();  
	}

}
       Java中有一个方法叫assert,中文意思叫断言,assert后面跟着的是一个表达式,表达式的值是布尔型。上面的例子就是,当判断表达式值是true,就打印Tess Pass。这里可以看到,我把断言部分代码放在try cathc语句中。编写脚本或者编写代码要养成一个好习惯,习惯主动去捕获异常,并处理异常。这里我们自动化脚本,基本上没有需要去处理异常,一般选择直接打印出异常信息就可以。

       到这里,Selenium WebDriver基础篇就结束了,下面的文章,主要是介绍WebDriver的一些常见接口或者方法的实际使用,尽量多介绍一些Selenium方法,为后面的方法封装和框架设计做铺垫。

猜你喜欢

转载自blog.csdn.net/bnuyangwu/article/details/80759115