phoenixframework自動化測試平臺webUI代碼示例

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());
		}
	}
}
相關文章
相關標籤/搜索