WebUI釋出自動化測試框架PhoenixAutotest

大雄45發表於2023-10-02
介紹

WebUI自動化測試框架phoenix.webui.framework釋出20170610版本。

本次釋出修正了一些bug,更多Isseus資訊請訪問 。新增的主要功能如下:

增加了透過註解的方式來配置PageObject(頁面物件),單元測試程式碼如下(本文所有的程式碼都可以在 中獲取):

/*
 *
 *  * Copyright 2002-2007 the original author or authors.
 *  *
 *  * Licensed under the Apache License, Version 2.0 (the "License");
 *  * you may not use this file except in compliance with the License.
 *  * You may obtain a copy of the License at
 *  *
 *  *      
 *  *
 *  * Unless required by applicable law or agreed to in writing, software
 *  * distributed under the License is distributed on an "AS IS" BASIS,
 *  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  * See the License for the specific language governing permissions and
 *  * limitations under the License.
 *
 */
package org.suren.autotest.web.framework.page;
import org.suren.autotest.web.framework.annotation.AutoDataSource;
import org.suren.autotest.web.framework.annotation.AutoLocator;
import org.suren.autotest.web.framework.annotation.AutoPage;
import org.suren.autotest.web.framework.annotation.AutoStrategy;
import org.suren.autotest.web.framework.core.LocatorType;
import org.suren.autotest.web.framework.core.StrategyType;
import org.suren.autotest.web.framework.core.ui.Button;
import org.suren.autotest.web.framework.core.ui.Text;
/**
 * 使用註解的示例Page類
 * @author suren
 * @date 2017年6月7日 下午7:10:40
 */
@AutoPage(url = ")
@AutoDataSource(name = "data", resource = "dataSource/xml/user_data_anno.xml")
public class AnnotationPage extends Page
{
	@AutoStrategy(type = StrategyType.PRIORITY)
	@AutoLocator(locator = LocatorType.BY_PARTIAL_LINK_TEXT, value = "實名動態")
	private Button toLoginBut;
	@AutoLocator(locator = LocatorType.BY_XPATH, value = "//input[@placeholder='請輸入手機號碼/脈脈號']")
	private Text phoneText;
	public Button getToLoginBut() {
		return toLoginBut;
	}
	public void setToLoginBut(Button toLoginBut) {
		this.toLoginBut = toLoginBut;
	}
	public Text getPhoneText() {
		return phoneText;
	}
	public void setPhoneText(Text phoneText) {
		this.phoneText = phoneText;
	}
}

測試程式碼如下:

/*
 *
 *  * Copyright 2002-2007 the original author or authors.
 *  *
 *  * Licensed under the Apache License, Version 2.0 (the "License");
 *  * you may not use this file except in compliance with the License.
 *  * You may obtain a copy of the License at
 *  *
 *  *      
 *  *
 *  * Unless required by applicable law or agreed to in writing, software
 *  * distributed under the License is distributed on an "AS IS" BASIS,
 *  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  * See the License for the specific language governing permissions and
 *  * limitations under the License.
 *
 */
package org.suren.autotest.web.framework.util;
import org.junit.*;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.suren.autotest.web.framework.IgnoreReasonConstants;
import org.suren.autotest.web.framework.page.AnnotationPage;
import org.suren.autotest.web.framework.settings.DriverConstants;
import org.suren.autotest.web.framework.settings.SettingUtil;
import java.io.IOException;
/**
 * 測試使用註解配置的方式
 * @author suren
 * @date 2017年6月7日 下午7:10:12
 */
@Configuration
@ComponentScan(basePackages = "org.suren.autotest.web.webframework.page")
public class AutoAnnotationTest
{
	private SettingUtil util;
	
	@Before
	public void setUp()
	{
		util = new SettingUtil();
	}
	
	@Test
	public void basicTest()
	{
		util.getEngine().setDriverStr(DriverConstants.DRIVER_HTML_UNIT);
		util.getEngine().init();
		AnnotationPage page = util.getPage(AnnotationPage.class);
		
		Assert.assertNotNull(page);
		Assert.assertNotNull(page.getUrl());
		Assert.assertNotNull(page.getToLoginBut());
		page.open();
		page.getToLoginBut().click();
	}
	@Test
	@Ignore(value = IgnoreReasonConstants.REAL_BROWSER)
	public void realTest()
	{
		util.getEngine().setDriverStr(DriverConstants.DRIVER_CHROME);
		util.getEngine().init();
		util.initData();
		AnnotationPage page = util.getPage(AnnotationPage.class);
		page.open();
		page.getToLoginBut().click();
		page.getPhoneText().fillNotBlankValue();
		ThreadUtil.silentSleep(3000);
	}
	
	@After
	public void tearDown() throws IOException
	{
		util.close();
	}
}

相關連結

PhoenixAutotest 的詳細介紹:

PhoenixAutotest 的下載地址:

原文來自:


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2980423/,如需轉載,請註明出處,否則將追究法律責任。

相關文章