java+selenium+testNG+excel 實現 web 網頁的自動化測試


  1. webdriver的關鍵字從excel讀取,這樣測試人員只需要在excel中填寫相關用例即可
  2. 前端微站和后台系統的用例可整合在同一excel中,這樣可實現前端與后台的閉循環測試
  3. 除了一些基本的校驗規則外,添加了微站數據庫校驗

 

 

 

接下來還是貼上一些相關代碼

1. 可以設定多輪測試,每輪測試數據都不一樣,測試數據來源於excel的sheet_2

/**設定測試輪次**/
public static void  main() {
    try{
        for(k=0;k<numTotal;k++){
            File file = new File("e:\\data.xls");   //采用的是jxl.jar讀取寫入表格方式
            InputStream in = new FileInputStream(file);  //新建一可讀取本地內容的文件
            Workbook workbook = null;
            workbook = Workbook.getWorkbook(in);  //獲取本地可讀取的文件
            mWorkBook =  workbook;              
            getExcel();
            Sheet1DataList.clear();

            /**獲取cookies**/
            for (Cookie ck : driver.manage().getCookies()) {
                String CK = ck.getName() + "=" + ck.getValue() + ";";
                System.out.println("cookie:" + CK);
               // sendGet(CK);
            }           
        }
    }
2. 從excel獲取webdriver關鍵字以及相關測試用例數據

private static void  getExcel() {
    try{        
        getTestSettingFromSheet1();
        getDataFromSheet2();
        Thread.sleep(1000);
        sqlDriver.findElement(By.name("auth[password]")).sendKeys("test@628");;
        sqlDriver.findElement(By.cssSelector("#content > form > p > input[type='submit']")).click();
        sql = sqlDriver.findElement(By.tagName("pre"));

        if(Sheet0MethodList.size() != Sheet0ItemList.size()){
            System.out.println("Input Sheet Value Wrong!!!!Please Check Your Sheet" );
        }

        for(int listId=0;listId<Sheet0ActionList.size();listId++){  
            System.out.println("Sheet0ActionList.size:" + Sheet0ActionList.size());
            System.out.println("OK,Begin Commit!!!" );
            Thread.sleep(500);  
            if(Sheet0PlatList.get(listId).equals("后台"))
                driver = backDriver;
            loginBtn = getMethods(Sheet0MethodList.get(listId),Sheet0ItemList.get(listId),driver); 
            String strCmd = Sheet0CheckList.get(listId);
            String strAct = Sheet0ActionList.get(listId);
            getAssert(strAct,strCmd,listId);
            //InputCmdId++;
        }   
    }
3.將測試結果保存到excel中

private static void getAssert(String getStrAct,String getStrCmd,int getListId){
    try{
        Workbook wb=Workbook.getWorkbook(new File("e:\\data.xls"));   //獲取本地路徑的excel文件
        WritableWorkbook book= Workbook.createWorkbook(new File("e:\\data.xls"),wb);   //將本地已存在的可讀文件轉成可寫文件
        WritableSheet sheet0_1=book.getSheet(0);
        if(getStrAct.equals("frame")){
            Thread.sleep(1000);
            driver.switchTo().frame(loginBtn);
        }

        if(getStrAct.equals("back"))
            driver.navigate().back();

        if(getStrCmd.equals("輸入值獲取")){
            Thread.sleep(1000);
            String text = Sheet1DataList.get(getInputCmdId);
            System.out.println("SenKeys:"+text);
            loginBtn.sendKeys(text);    
            Thread.sleep(1000); 
            if(loginBtn.getAttribute("value").equals(text)){  
                System.out.println("成功numTotal :" + numTotal);
                sheet0_1.addCell(new Label(10+numTotal+k,getListId+1,"true"));   
                Cell AI = sheet0_1.getCell(10+numTotal+k,getListId+1);
                String strAI = AI.getContents();
                System.out.println(">>>>>>>>>>>>" + strAI);
            }
            else{
                System.out.println("失敗 numTotal:" + numTotal);
                sheet0_1.addCell(new Label(10+numTotal+k,getListId+1,"false")); 
            }   
            getInputCmdId++;
        }

        if(getStrCmd.equals("文本校驗")){
            loginBtn.click();
            Thread.sleep(1000);
            isContentAppeared(driver,Sheet0ReseltList.get(clickId));
            System.out.println("status:" + status); 
            String clickResult = String.valueOf(status);
            sheet0_1.addCell(new Label(10+numTotal+k,getListId+1,clickResult));     
            clickId++;
        } 
        if(getStrCmd.equals("數據庫校驗")){
            String currentUrl = driver.getCurrentUrl();
            System.out.println("當前頁面url---:" + currentUrl); 
            String[] urlList = currentUrl.split("\\/");  
            String[] urlArry = urlList[urlList.length-1].split("\\.");  
            String orderId = urlArry[0];
            System.out.println("訂單ID號:" + orderId);
            sql.clear();
            sql.sendKeys("select * from order_info where order_id = " + orderId);
            sqlDriver.findElement(By.cssSelector("#form > p:nth-child(2) > input[type='submit']:nth-child(1)")).click();
            String sqlStr = "無數據";
            isContentAppeared(sqlDriver,sqlStr);
            System.out.println("status:" + status); 
            String clickResult = String.valueOf(status);
            if(clickResult.equals("false")){
                clickResult = "true";                               
            }else{
                clickResult = "false";                              
            }
            sheet0_1.addCell(new Label(10+numTotal+k,getListId+1,clickResult)); 
            Thread.sleep(1000);             
            loginBtn.click();

          //  clickId++;
        } 

        book.write(); 
        book.close();
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM