【开源公告】多平台Web自动化测试框架QT4W开源

2024-03-23 22:48

本文主要是介绍【开源公告】多平台Web自动化测试框架QT4W开源,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

QT4W (Quick Test for Web)是使用Python开发的Web自动化框架,是QTA(QTA是一套集成面向多端多平台的自动化测试解决方案,包括QT4A,QT4A,QT4C等,其中QT4A及QT4I已经开源)自动化体系内实现支持Web自动化测试能力的支持库。QT4W和QT4A一起使用时,可以实现Android端的Web自动化,和QT4I一起使用时,可以进行IOS端Web自动化。

本框架采用分层设计,将整个Web自动化过程抽象出了三个层次:WebControl层,WebDriver层以及原生控件层(NativeControl)。

  • WebControl层,提供了常见类型的控件实现,用户使用该层提供的能力进行页面封装及事件封装。

  • WebDriver提供底层驱动实现。

  • 原生控件层,用于封装承载Web页面的容器控件和窗口,这部分内容和具体的平台关联性较大。通过分层抽象,本框架提供了良好的扩展能力。



适用场景


  • QT4W支持纯Web应用自动化,还同样支持应用内嵌Web页面自动化,包括,手Q内嵌页面等。

  • 支持多平台,包括Windows,Android,IOS等,兼容多种浏览器包括:IE,Chrome,X5内核等,支持用户实现新的浏览器类型封装。

  • 结合QT4A及wxmplib库等,可以方便的实现Android端微信小程序自动化。



功能介


  • QT4W采用Xpath定位控件,封装简单,结构清晰,通用性强,提供了ui_list能力来处理相似度极高的控件,例如字体颜色等。

  • QT4W采用UIMap方式来定义webpage页面,可以灵活方便的处理控件的层级关系,调用逻辑简单清晰。

  • 支持执行JS代码,控件截图等。

  • QT4W提供浏览器层级的抽象,支持WORA(Write Once Run AnyWhere)特性,可实现跨端复用。



使用示例


这里使用一下页面做示例:

640?wx_fmt=png


对于以上页面,使用
QT4W可以描述如下:

class DemoPage(WebPage):	
'''Demo页面    '''	ui_map = {'title':{'type': WebElement,'locator': XPath('//div[@class="panel-heading"]')},	
'name':{'type': InputElement,'locator':XPath('//input[@id="name"]')},	
'female':{'type': WebElement,'locator':XPath('//input[@value="female"]')},	
'male':{'type': WebElement,'locator':XPath('//input[@value="male"]')},	
'age':{'type': SelectElement,'locator':XPath('//select[@id="age"]')},	
'company':{'type': InputElement,'locator':XPath('//input[@id="company"]')},	
'submit':{'type': WebElement,'locator':XPath('//button[@id="submit"]')},	}	#设置姓名	
def set_name(self,name):	self.control('name').value=name	#设置性别为女	
def set_female(self):	self.control('female').click();	#设置性别为男	
def set_male(self):	self.control('male').click();	#设置姓名	
def set_age(self,age):	self.control('age').selection=age	#设置公司名	
def set_company(self,company):	self.control('company').value=company	def submit(self):	self.control("submit").click()

其中ui_map用于描述整个页面所包含的控件,后面的函数定义一些页面内的基本操作,调用这些函数即可实现页面操作。



项目规划


  • 继续完善和优化功能,丰富浏览器控制特性,获取控制台日志等。

  • 继续支持更多平台及浏览器。

  • 进一步优化对IOS端小程序的支持。

  • 优化该框架,丰富文档资源,降低使用成本。

QT4W 正式开源

Github 开源地址:
https://github.com/Tencent/QT4W

(点击文末阅读原文直接访问)

请给 QT4W一个 Star !

欢迎提出你的 issue 和 PR!

QT4W 国内镜像地址:

https://git.code.tencent.com/Tencent_Open_Source/QT4W

640?wx_fmt=png

腾讯工蜂源码系统为开源开发者提供完整、最新的腾讯开源项目国内镜像

QTA相关开源项目仓库:
QT4A: https://github.com/Tencent/QT4A
QT4I: https://github.com/Tencent/QT4i

640?wx_fmt=jpeg


这篇关于【开源公告】多平台Web自动化测试框架QT4W开源的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/839741

相关文章

JSON Web Token在登陆中的使用过程

《JSONWebToken在登陆中的使用过程》:本文主要介绍JSONWebToken在登陆中的使用过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录JWT 介绍微服务架构中的 JWT 使用结合微服务网关的 JWT 验证1. 用户登录,生成 JWT2. 自定义过滤

一文教你如何将maven项目转成web项目

《一文教你如何将maven项目转成web项目》在软件开发过程中,有时我们需要将一个普通的Maven项目转换为Web项目,以便能够部署到Web容器中运行,本文将详细介绍如何通过简单的步骤完成这一转换过程... 目录准备工作步骤一:修改​​pom.XML​​1.1 添加​​packaging​​标签1.2 添加

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

Python GUI框架中的PyQt详解

《PythonGUI框架中的PyQt详解》PyQt是Python语言中最强大且广泛应用的GUI框架之一,基于Qt库的Python绑定实现,本文将深入解析PyQt的核心模块,并通过代码示例展示其应用场... 目录一、PyQt核心模块概览二、核心模块详解与示例1. QtCore - 核心基础模块2. QtWid

Python实现自动化接收与处理手机验证码

《Python实现自动化接收与处理手机验证码》在移动互联网时代,短信验证码已成为身份验证、账号注册等环节的重要安全手段,本文将介绍如何利用Python实现验证码的自动接收,识别与转发,需要的可以参考下... 目录引言一、准备工作1.1 硬件与软件需求1.2 环境配置二、核心功能实现2.1 短信监听与获取2.

Python实现Microsoft Office自动化的几种方式及对比详解

《Python实现MicrosoftOffice自动化的几种方式及对比详解》办公自动化是指利用现代化设备和技术,代替办公人员的部分手动或重复性业务活动,优质而高效地处理办公事务,实现对信息的高效利用... 目录一、基于COM接口的自动化(pywin32)二、独立文件操作库1. Word处理(python-d

Python使用DrissionPage中ChromiumPage进行自动化网页操作

《Python使用DrissionPage中ChromiumPage进行自动化网页操作》DrissionPage作为一款轻量级且功能强大的浏览器自动化库,为开发者提供了丰富的功能支持,本文将使用Dri... 目录前言一、ChromiumPage基础操作1.初始化Drission 和 ChromiumPage

Python实现自动化表单填写功能

《Python实现自动化表单填写功能》在Python中,自动化表单填写可以通过多种库和工具实现,本文将详细介绍常用的自动化表单处理工具,并对它们进行横向比较,可根据需求选择合适的工具,感兴趣的小伙伴跟... 目录1. Selenium简介适用场景示例代码优点缺点2. Playwright简介适用场景示例代码

最新Spring Security实战教程之Spring Security安全框架指南

《最新SpringSecurity实战教程之SpringSecurity安全框架指南》SpringSecurity是Spring生态系统中的核心组件,提供认证、授权和防护机制,以保护应用免受各种安... 目录前言什么是Spring Security?同类框架对比Spring Security典型应用场景传统