WebUI自动化测试框架PhoenixAutotest发布最新版

发表于:2017-6-13 11:33

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:素人派    来源:开源中国

介绍
WebUI自动化测试框架phoenix.webui.framework发布20170610版本。
本次发布修正了一些bug,更多Isseus信息请访问Github。添加的主要功能如下:
增加了通过注解的方式来配置PageObject(页面对象),单元测试代码如下(本文所有的代码都可以在Github项目中获取):
/*
 *
 *  * 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
 *  *
 *  *      http://www.apache.org/licenses/LICENSE-2.0
 *  *
 *  * 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 = "http://maimai.cn/")
@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
 *  *
 *  *      http://www.apache.org/licenses/LICENSE-2.0
 *  *
 *  * 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();
}
}
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号