可自動切換登陸不一樣系統測試實例

一、可自動切換登陸不一樣系統php

import java.io.FileInputStream;
import java.io.IOException;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Properties;
import java.util.Scanner;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

/** 
 * @author 蘇寶伢 E-mail:by.su@qq.com 
 * @version 建立時間: 2017年11月01日 上午11:03:18
 */
public class LoginAdmin {

    public static void main(String[] args) throws InterruptedException {
        System.out.println("請輸入須要登陸的系統編號:");
        System.out.println("1.後管平臺;2.testlink;3.jira-PASTOCK;4.jira-oas;5.短信平臺;6.pafa5運管平臺。");
        System.setProperty("webdriver.chrome.driver", "D:/myselenium/selenium-kuanjia2016/chromedriver_win32/chromedriver.exe");
        Scanner scan = new Scanner(System.in);//Scanner類能夠直接接收控制檯命令行的輸入
        int chooseNo = scan.nextInt();//將輸入信息的下一個標記掃描爲一個 int
        scan.close();
        WebDriver driver = new ChromeDriver();
        
        loginStart(chooseNo,"D:/myselenium/ZDHTest/selenium/loginData.properties",driver);

    }

    public static void loginStart(int num,String path,WebDriver driver){
        
    	//String[] elements = getPropertiesValue(chooseUrl(num),path).replace("\"","").split(",");//\"是表明轉義即表明一個雙引號
    	String[] elements = getPropertiesValue(chooseUrl(num),path).split(",");
    	System.out.println(elements[0]);
    	String url = elements[0];
    	String userName = elements[1];
    	String userNameContent = elements[2];
    	String userPasswd = elements[3];
    	String userPasswdContent = elements[4];
    	String submitElement = elements[5];
    	driver.get(url);
        try {
			Thread.sleep(3000);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
        driver.findElement(By.xpath(userName)).sendKeys(userNameContent);
        driver.findElement(By.xpath(userPasswd)).sendKeys(userPasswdContent);
        driver.findElement(By.xpath(submitElement)).click();
    }

    //返回須要登陸的系統名稱
    public static String chooseUrl(int chooseNo){
    	
        switch(chooseNo){
            case 1:
                //ant
                return "ant";
            case 2:
                //testlink
                return "testlink";
            case 3:
                //jira-PASTOCK
                return "PASTOCK";
            case 4:
                //jira-oas
                return "oas";
            case 5:
                //sms
                return "sms";
            case 6:
                //pafa5
                return "pafa5";
            default:
                return "ant";
        }
    }

    //get properties file content
    public static HashMap<String,String> readProperties(String filePath){
    	Properties pp = new Properties();
    	HashMap<String,String>  strMap = new HashMap<String,String>();//HashMap類是用來存放鍵與值的映射
    	FileInputStream fin = null;
    	try {
			fin = new FileInputStream(filePath);
			pp.load(fin);
			
		} catch (IOException e) {
			e.printStackTrace();
		}
    	
    	Enumeration enums = pp.propertyNames(); //實現 Enumeration 接口的對象,它生成一系列元素,一次生成一個。連續調用 nextElement 方法將返回一系列的連續元素
    
    	while(enums.hasMoreElements()){//hasMoreElements當且僅當此枚舉對象至少還包含一個可提供的元素時,才返回 true;不然返回 false
    		String strKey = (String)enums.nextElement();//nextElement若是此枚舉對象至少還有一個可提供的元素,則返回此枚舉的下一個元素
    		
    		strMap.put(strKey, pp.getProperty(strKey));//把鍵與值添加到HashMap中--在此映射中關聯指定值與指定鍵。
    	}
    	return strMap;
    }
    
    //根據指定key獲取value
    public static String getPropertiesValue(String key,String path){
    	HashMap<String,String> mpValue = readProperties(path);
    	return mpValue.get(key);//返回指定鍵所映射的值;若是對於該鍵來講,此映射不包含任何映射關係,則返回 null
    }
}

2\批處理LoginAdmin.bathtml

@echo off

echo "自動化登陸"
javac -encoding utf8 "D:\myselenium\ZDHTest\selenium\LoginAdmin.java"
cd "D:\myselenium\ZDHTest\selenium"
java LoginAdmin

echo "3秒後窗口將關閉...ping -n 3 127.0.0.1  >nul "
echo "pause goto 1--這個執行完後不關閉命令窗口"
ping -n 3 127.0.0.1  >nul

3\配置文件內容以下:java

ant="https://soasadmin-stg.paic.com.cn/admin/admin/login.html,/html/body/div/div[3]/div[1]/table/tbody/tr[1]/td[2]/input,SUBAOYA853,/html/body/div/div[3]/div[1]/table/tbody/tr[2]/td[2]/input,W2yehW49,/html/body/div/div[3]/div[3]/a"
testlink="http://tm.paic.com.cn/testlink/login.php?note=expired&destination=%2Ftestlink%2Findex.php%3Fcaller%3Dlogin,//*[@id='login'],subaoya023,//*[@id='login_div']/form/p[2]/input,feQ44Rs70112,//*[@id='login_div']/form/input[5]"
PASTOCK="http://jira-stock.paic.com.cn:8080/login.jsp?permissionViolation=true&os_destination=%2Fbrowse%2FPASTOCK-1928%3Ffilter%3D-2&page_caps=&user_role=,//*[@id='login-form-username'],subaoya023,//*[@id='login-form-password'],feQ44Rs70112,//*[@id='login-form-submit']"
oas="http://jira-stock.paic.com.cn:8080/login.jsp?permissionViolation=true&os_destination=%2Fbrowse%2FOAS-2&page_caps=&user_role=,//*[@id='login-form-username'],subaoya023,//*[@id='login-form-password'],feQ44Rs70112,//*[@id='login-form-submit']"
sms="http://pscptest-10.paic.com.cn:42154/pscp/login.jsp#,//*[@id='j_username'],XUDAN005,//*[@id='j_password'],hello1234,//*[@id='login_form']/table/tbody/tr[1]/td[3]/input"
pafa5="http://sis-omm-mcc-uat.paic.com.cn/admin/login.html,//*[@id='uname'],CHENZHIXU888,//*[@id='password'],,//*[@id='ext-gen1018']/div/div/div/a"

同一效果,經本身改造如下是一種更簡單易懂的寫法:web

一、代碼以下:可直接執行(得修改配置文件路徑,及一些參數值,好比URL,用戶名密碼等等)chrome

import java.io.FileInputStream;
import java.io.IOException;
import java.util.HashMap;
import java.util.Properties;
import java.util.Scanner;

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


public class LoginTest {
	  public static void main(String[] args) throws InterruptedException {
	        System.out.println("請輸入須要登陸的系統編號:");
	        System.out.println("1.後管平臺;2.testlink;3.jira-PASTOCK;4.jira-oas;5.短信平臺;6.pafa5運管平臺。");
	        System.setProperty("webdriver.chrome.driver", "D:/myselenium/selenium-kuanjia2016/chromedriver_win32/chromedriver.exe");
	        Scanner scan = new Scanner(System.in);//Scanner類能夠直接接收控制檯命令行的輸入
	        int chooseNo = scan.nextInt();//將輸入信息的下一個標記掃描爲一個 int
	        scan.close();
	        WebDriver driver = new ChromeDriver();
	        
	        loginStart(chooseNo,"D:/myselenium/ZDHTest/selenium/loginData.properties",driver);

	    }
	  
	  public static Properties getProperties(String filePath){
	    	Properties pp = new Properties();
	    
	    	FileInputStream fin = null;
	    	try {
				fin = new FileInputStream(filePath);
				pp.load(fin);
				
			} catch (IOException e) {
				e.printStackTrace();
			}
	    	return pp;
	  }	

	    public static void loginStart(int num,String path,WebDriver driver){
	    	Properties pp = getProperties(path);
	    	//String[] elements = getPropertiesValue(chooseUrl(num),path).replace("\"","").split(",");
	    	//String[] elements = getPropertiesValue(chooseUrl(num),path).split(",");
	    	String[] elements = pp.getProperty(chooseUrl(num)).split(",");
	    	/*for (String s:elements ){
System.out.println(s);//依次輸出數組中的全部元素
}*/


	    	String url = elements[0];
	    	String userName = elements[1];
	    	String userNameContent = elements[2];
	    	String userPasswd = elements[3];
	    	String userPasswdContent = elements[4];
	    	String submitElement = elements[5];
	    	driver.get(url);
	        try {
				Thread.sleep(3000);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
	        driver.findElement(By.xpath(userName)).sendKeys(userNameContent);
	        driver.findElement(By.xpath(userPasswd)).sendKeys(userPasswdContent);
	        driver.findElement(By.xpath(submitElement)).click();
	    }





//返回須要登陸的系統名稱
public static String chooseUrl(int chooseNo){
	
    switch(chooseNo){
        case 1:
            //ant
            return "ant";
        case 2:
            //testlink
            return "testlink";
        case 3:
            //jira-PASTOCK
            return "PASTOCK";
        case 4:
            //jira-oas
            return "oas";
        case 5:
            //sms
            return "sms";
        case 6:
            //pafa5
            return "pafa5";
        default:
            return "ant";
    }
}

}

二、配置修改文件以下(去掉雙引號,由於配置文件中的鍵與值都是String型,可省略雙引號):數組

ant=https://soasadmin-stg.paic.com.cn/admin/admin/login.html,/html/body/div/div[3]/div[1]/table/tbody/tr[1]/td[2]/input,SUBAOYA853,/html/body/div/div[3]/div[1]/table/tbody/tr[2]/td[2]/input,W2yehW49,/html/body/div/div[3]/div[3]/a
testlink=http://tm.paic.com.cn/testlink/login.php?note=expired&destination=%2Ftestlink%2Findex.php%3Fcaller%3Dlogin,//*[@id='login'],subaoya023,//*[@id='login_div']/form/p[2]/input,feQ44Rs70112,//*[@id='login_div']/form/input[5]
PASTOCK=http://jira-stock.paic.com.cn:8080/login.jsp?permissionViolation=true&os_destination=%2Fbrowse%2FPASTOCK-1928%3Ffilter%3D-2&page_caps=&user_role=,//*[@id='login-form-username'],subaoya023,//*[@id='login-form-password'],feQ44Rs70112,//*[@id='login-form-submit']
oas=http://jira-stock.paic.com.cn:8080/login.jsp?permissionViolation=true&os_destination=%2Fbrowse%2FOAS-2&page_caps=&user_role=,//*[@id='login-form-username'],subaoya023,//*[@id='login-form-password'],feQ44Rs70112,//*[@id='login-form-submit']
sms=http://pscptest-10.paic.com.cn:42154/pscp/login.jsp#,//*[@id='j_username'],XUDAN005,//*[@id='j_password'],hello1234,//*[@id='login_form']/table/tbody/tr[1]/td[3]/input
pafa5=http://sis-omm-mcc-uat.paic.com.cn/admin/login.html,//*[@id='uname'],CHENZHIXU888,//*[@id='password'],,//*[@id='ext-gen1018']/div/div/div/a

三、執行,輸入1或2或其餘相應的數值均可執行相應的程序,進入不一樣的URL進行驗證;也能夠本身寫批處理文件在控制檯執行jsp

相關文章
相關標籤/搜索