`
zxjlwt
  • 浏览: 1204 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

WebUI自动化测试框架PhoenixAutotest发布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();
	}
}



期待更多更好用的功能请您持续关注本项目。支持开源,支持中国开源项目!!!

•参考


本文为原创,如果您当前访问的域名不是surenpi.com,请访问“素人派”。
分享到:
评论

相关推荐

    webUI自动化测试框架(Python+selenium)

    【Python+Selenium构建WebUI自动化测试框架】 在软件开发过程中,测试是不可或缺的一环,而自动化测试能够极大地提高测试效率,降低人工出错的概率。本文将深入探讨如何使用Python结合Selenium库构建一个WebUI自动...

    基于Selenium的WebUI自动化测试框架(Java+Maven+Selenium+TestNG+Jedis+Jenkins)

    使用Java+Maven+Selenium+TestNG+Jedis+Jenkins搭建的WebUI自动化测试框架,资源的大体介绍如下链接http://note.youdao.com/noteshare?id=dc564343fd126f497074f6d7560c9f5e&sub=387EB3B1BAC945CEA71A5BDBC6484473

    WebUI自动化测试框架

    【WebUI自动化测试框架】是一种高效且便捷的测试解决方案,主要针对Web应用程序的用户界面进行自动化测试。这个框架是建立在Selenium库之上的,Selenium是一个强大的、跨平台的Web自动化测试工具,支持多种浏览器和...

    Python实现Web UI自动化测试实战-Chapter-13

    在本章"Python实现Web UI自动化测试实战-Chapter-13"中,我们将深入探讨如何利用Python语言进行Web用户界面(UI)的自动化测试。这一领域对于软件开发来说至关重要,因为它能够有效地提升测试效率,减少手动测试的...

    Python实现Web UI自动化测试实战-Chapter-12

    总之,"Python实现Web UI自动化测试实战-Chapter-12"涵盖了使用Python和Selenium进行Web UI自动化测试的各个方面,从基础概念到高级技巧,旨在帮助读者构建一套完整的自动化测试框架,提升测试质量和效率。...

    python3 webUi自动化测试框架

    基于Python的webUI自动化测试框架,支持多平台~ 支持xmind文件转为测试用例,目前存在部分问题 支持chrome驱动自动下载 支持用例重跑及自动错误截图 使用antd美化html报告 采用po模式,定位元素与实际操作分离,同...

    自动化测试框架,支持接口自动化、WEB UI自动化、APP UI自动化

    【标题】中的“自动化测试框架,支持接口自动化、WEB UI自动化、APP UI自动化”涉及到的是软件测试领域的一个重要话题。这个框架集成了多种自动化测试的能力,涵盖了从后端API到前端UI的全方位测试。 首先,接口...

    WebUI自动化测试框架Dagger.zip

    Dagger是网易杭州研究院QA团队开发的一个轻量级、运行稳定的WebUI自动化测试框架,主要基于Selenium及TestNg可以认为是对Selenium进行二次封装的一个框架(俗称 造轮子 )。之所以把这个轮子开源出来,主要在于...

    WebUI自动化测试平台

    这是一款无需编码即可实现WebUI自动化测试的平台。为了方便新手尽快熟悉平台,每一页都有帮助向导!

    python通用UI自动化测试框架源码 2.0

    Python通用UI自动化测试框架源码2.0是一个旨在简化UI自动化测试的工具,适用于各种软件或Web应用的测试。这个框架的核心目标是提高测试效率,降低维护成本,通过抽象元素操作、检查点验证和回退策略,使得测试用例...

    python+UI自动化测试框架

    Python UI自动化测试框架是软件测试领域中一种高效、灵活的工具,它可以帮助测试人员实现对图形用户界面(GUI)的自动化测试。本框架基于Python编程语言,结合了Selenium WebDriver库,unittest测试框架,...

    Web UI自动化测试总结以及unittest框架初识.zip

    在本资料中,我们主要聚焦于Web UI自动化测试的总结以及Python的unittest框架的初步认识。 首先,Web UI自动化测试是针对Web应用程序用户界面的自动测试,通常涉及浏览器上的交互操作,如点击按钮、填写表单、导航...

    WebUI自动化测试项目,支持截图和录屏,一个元素多种定位方式

    首先,我们要了解Selenium,这是一个广泛使用的Web UI自动化测试框架。Selenium 支持多种编程语言,如Java、Python、C#等,允许开发者编写测试脚本来模拟用户在浏览器中的交互行为。它提供了丰富的API,可以操作网页...

    通用UI自动化测试框架源码 2.0版本

    写过UI自动化测试脚本的朋友,相信都会遇到过,比如前端页面元素改了,又需要去改自己写的脚本,而且只能针对某个web页面的定制化设计,换个web项目就不灵了。 我就在考虑,为什么UI自动化框架就不能通用在不同的...

    phoenix.webui.framework, 基于WebDriver的WebUI自动化测试框架.zip

    "phoenix.webui.framework"是一个基于WebDriver的Web用户界面(WebUI)自动化测试框架,它为开发者和测试工程师提供了一套高效、稳定的自动化测试解决方案。这个框架的核心是使用WebDriver,这是一个跨浏览器的测试...

    App-UI自动化测试框架

    在构建App-UI自动化测试框架时,Python语言与Selenium、Appium、Pytest和YAML等工具结合,可以提供高效且灵活的解决方案。这里我们将深入探讨这些技术以及如何利用它们来实现Android应用的自动化测试。 首先,让...

    基于Python + Pytest + Selenium4的POM模式三层分离WebUI自动化测试框架设计源码

    本项目是一款基于Python、Pytest、Selenium4的POM模式三层分离WebUI自动化测试框架设计源码,包含59个文件,涵盖28个JSON配置文件、12个Python源文件、4个JavaScript文件、2个INI配置文件、2个CSV文件、2个TXT文件、...

    web自动化测试框架及实践,应用python+selenium+pytest集成了web页面的功能巡检、写测试报告以及邮件发送测

    本文将深入探讨如何使用Python结合Selenium和Pytest构建一个强大的Web自动化测试框架,实现功能巡检、生成测试报告以及通过邮件发送测试结果。 首先,Python是一种广泛应用于测试领域的编程语言,其简洁明了的语法...

    WebUiAutomation:Web UI自动化测试框架

    Web UI自动化测试框架(基于Selenium) 框架简介 基于python语言对selnium做的二次封装,主要有以下特点: 1.采用了主流的po模式2.实现了日志的记录与输出3.美观的测试报告输出4.灵活的测试用例获取5.数据库连接6....

    通用UI自动化测试框架源码

    写过UI自动化测试脚本的朋友,相信都会遇到过,比如前端页面元素改了,又需要去改自己写的脚本,而且只能针对某个web页面的定制化设计,换个web项目就不灵了。 我就在考虑,为什么UI自动化框架就不能通用在不同的...

Global site tag (gtag.js) - Google Analytics