package org.phoenix.cases; import java.util.HashMap; import java.util.LinkedList; import java.util.Map.Entry; import org.phoenix.enums.LocatorType; import org.phoenix.model.CaseLogBean; import org.phoenix.model.InterfaceBatchDataBean; import org.phoenix.model.LocatorBean; import org.phoenix.model.UnitLogBean; import org.phoenix.proxy.ActionProxy; /** * 瀏覽器驅動測試類: * 通用方法API:phoenix.commonAPI().... * webUI/mobileUI用例API:phoenix.webAPI().... * 接口測試用例API:phoenix.interfaceAPI().... * androidappAPI:phoenix.androidAPI().... * IOSappAPI:phoenix.iosAPI().... * svnClientAPI:phoenix.svnClient().... * ftpClientAPI:phoenix.ftpClient().... * socketClientAPI:phoenix.telnetClient().... * ... * @author mengfeiyang */ public class TestBrowserDriver extends ActionProxy{ private static String caseName = "瀏覽器驅動測試用例"; public TestBrowserDriver() {} @Override public LinkedList<UnitLogBean> run(CaseLogBean caseLogBean) { init(caseLogBean);//必須有這一步 //phoenix.webAPI().setFirefoxExePath("D:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe");//使用Firefox瀏覽器時,必須添加 //phoenix.webAPI().setChromeDriverExePath("C:\\Program Files (x86)\\Google\\Chrome\\Application\\chromedriver64.exe");//使用chrome瀏覽器時,必須添加,且chromedriver64.exe必須和chrome.exe在同一目錄下 HashMap<InterfaceBatchDataBean, HashMap<String, String>> datas = phoenix.commonAPI().loadWebCaseDatas(caseName);//加載數據庫測試數據方法 HashMap<String,LocatorBean> locators = phoenix.commonAPI().addLocator(caseName);//加載定位信息的方法 for(Entry<InterfaceBatchDataBean, HashMap<String, String>> es : datas.entrySet()){ InterfaceBatchDataBean batchData = es.getKey(); batchData.getExpectData();//這批數據的執行結果指望值 HashMap<String, String> dataBlocks = es.getValue(); String phoenixframe = dataBlocks.get("輸入數據1");//在數據庫中此數據的key phoenix.webAPI().openNewWindowByFirefox("http://www.baidu.com"); //phoenix.webAPI().openNewWindowByChrome("http://www.baidu.com"); //phoenix.webAPI().openNewWindowByIE("http://www.baidu.com"); //phoenix.webAPI().openNewWindowByHtmlUnit("http://www.baidu.com", true, BrowserVersion.INTERNET_EXPLORER); //phoenix.webAPI().openNewWindowByPhantomJs("http://www.baidu.com"); phoenix.webAPI().webElement("//*[@id=\"kw\"]",LocatorType.XPATH).setText(phoenixframe);//引用數據 phoenix.webAPI().webElement(locators.get("btnLocator").getLocatorData()).click();//使用數據中的定位信息,等同於phoenix.webAPI().webElement("btnLocator").click(); String r = phoenix.webAPI().webElement("//*[@id=\"su\"]", LocatorType.XPATH).getAttribute("value");//數據庫中的數據能夠與頁面不變的數據混合使用 phoenix.checkPoint().checkIsEqual(r, "百度一下");//調用檢查點,檢查結果會在日誌中統計 phoenix.commonAPI().addLog("我是自定義的");//能夠手動插入一句日誌,該日誌會在最後的日誌記錄中體現 phoenix.webAPI().sleep(1000); phoenix.webAPI().closeWindow(); } return getUnitLog(); } public static void main(String[] args) { LinkedList<UnitLogBean> ll = new TestBrowserDriver().run(new CaseLogBean()); for(UnitLogBean l : ll){ System.out.println(l.getContent()); } } }