前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【开源公告】多平台Web自动化测试框架QT4W开源

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

作者头像
腾讯开源
发布2019-06-21 09:40:34
1.3K0
发布2019-06-21 09:40:34
举报
文章被收录于专栏:腾讯开源的专栏

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)特性,可实现跨端复用。

使用示例

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

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

代码语言:javascript
复制
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

腾讯工蜂源码系统为开源开发者提供完整、最新的腾讯开源项目国内镜像 QTA相关开源项目仓库: QT4A: https://github.com/Tencent/QT4A QT4I: https://github.com/Tencent/QT4i

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-06-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 腾讯开源 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档