测试对象级框架 - QTestWare

QTestWare是一款专为QTP自动化测试工程师设计的工具包,解决了控件识别与录制问题,增强了GUI测试接口,简化了脚本开发,提高了脚本的可维护性和可重用性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是 QTestWare

QTestWare 是专为 QTP 自动化测试工程师设计和开发的工具包,是 QTP 自动化测试的基础框架, QTestWare 解决了很多控件识别、录制的问题,并且增强了很多控件的测试接口,让 GUI 控件测试更加简单、便捷,让 QTP 测试脚本更加稳健,可维护性和可重用性更强。

QTestWare 解决控件录制问题

QTestWare 帮您解决很多控件的录制问题,例如对于 .NET 控件 TrackBar ,普通的录制将得到如下脚本:

SwfWindow("Form1").SwfObject("trackBar1").Drag 13,12

SwfWindow("Form1").SwfObject("trackBar1").Drop 32,10

录制下来的是鼠标在 TrackBar 控件上的拖拽动作,这些脚本不仅可读性差,并且回放容易失败,而且不容易理解和维护脚本。

采用 QTestWare 后,同样的操作将录制成如下脚本:

SwfWindow("Form1").SwfObject("trackBar1").SetValue 6

录制下来的是设置 TrackBar 控件的位置值的脚本,这样脚本更容易理解,并且回放能准确定位到指定的 TrackBar 位置,而且增强了脚本的可维护性,这样的脚本要比前面的脚本更容易修改、更容易参数化。

QTestWare 解决控件识别问题

QTestWare 帮您解决很多控件的识别问题,例如对于 .NET 控件 PropertyGrid ,普通的录制将得到如下脚本:

SwfWindow("Form1").SwfObject("PropertyGridView").Click 76,11

脚本不能识别 PropertyGrid 中的每一项,只能采用坐标位置的方式来记录,而这种方式是非常不稳定,而且无法读取和设置 PropertyGrid 中的每一项属性值。

采用 QTestWare ,您可以通过 FindPropertyByLabel 来读取 PropertyGrid 中的每一项属性值:

SaveOnClose = SwfWindow("Form1").SwfObject("PropertyGrid").FindPropertyByLabel("SaveOnClose")

MaxRepeatRate = SwfWindow("Form1").SwfObject("PropertyGrid").FindPropertyByLabel("MaxRepeatRate")

AppVersion = SwfWindow("Form1").SwfObject("PropertyGrid").FindPropertyByLabel("AppVersion")

您可以通过 SetPropertyGridValue 来设置 PropertyGrid 中的每一项属性值:

SwfWindow("Form1").SwfObject("PropertyGrid").SetPropertyGridValue "SaveOnClose" ,"True"

SwfWindow("Form1").SwfObject("PropertyGrid").SetPropertyGridValue "MaxRepeatRate","3"

SwfWindow("Form1").SwfObject("PropertyGrid").SetPropertyGridValue " AppVersion ","1.0"

QTestWare 让您的脚本更简短

采用 QTestWare ,可以帮助您缩短脚本行数,让您的自动化测试脚本更加简明扼要,例如,对于 .NET 控件 MenuStrip ,普通的录制一个菜单项选择的脚本至少包括两行脚本:

SwfWindow("Form1").SwfToolbar("menuStrip1").ShowDropdown " 文件 "

SwfWindow("Form1").SwfToolbar("menuStrip1").Select " 文件 ; 打开 ; 最近 ...;A.doc"

如果录制时,对于每个级联菜单都用鼠标点击的话,则可能得到更长的录制脚本:

SwfWindow("Form1").SwfToolbar("menuStrip1").ShowDropdown " 文件 "

SwfWindow("Form1").SwfToolbar("menuStrip1").Select " 文件 ; 打开 "

SwfWindow("Form1").SwfToolbar("menuStrip1").Select " 文件 ; 打开 ; 最近 ..."

SwfWindow("Form1").SwfToolbar("menuStrip1").Select " 文件 ; 打开 ; 最近 ...;B.doc"

采用 QTestWare ,可以利用 QTestWareSelectMenu 方法把脚本压缩到一行即可:

SwfWindow("Form1").SwfToolbar("menuStrip1").SelectMenu " 文件 ; 打开 ; 最近 ...;C.doc"

得到的是更加简短的测试脚本、更加容易理解和维护的脚本。

QTestWare 为您封装了高可重用性的脚本

QTestWare 从测试脚本开发角度出发,为您封装了各种可重用性极强的脚本,总结业界最佳实践,抽取控件测试逻辑成为核心测试方法,为您节省了大量的脚本开发时间。例如,对于 .NET 控件 DataGridViewQTP 通过 SwfTable 来支持控件的测试,但是提供的测试操作过于基础,例如选择某个单元格, SwfTable 仅提供了 SelectCellRow,Column )这样的测试方法:

SwfWindow("Form1").SwfTable("dataGridView1").SelectCell 0,"OrderID"

自动化测试工程师往往需要进一步地编写测试脚本来扩展,以便满足测试用例的实现需要,而这一切, QTestWare 都帮你设计好了,例如,通过 QTestWareSelectCellByText ,可以选择 DataGridView 中指定内容的单元格:

SwfWindow("Form1").SwfTable("dataGridView1").FindCellByText "107"

通过 QTestWareSelectRowByField ,可以查找到某列中单元格为指定内容的单元格所在的行,并将该行设置为选中状态:

SwfWindow("Form1").SwfTable("dataGridView1").SelectRowByField "OrderID","10031"

QTestWare 采用的技术和原理

QTestWare 采用了自动化测试领域的最佳实践,融合了业界领先的框架设计思想,采用了先进成熟的 QTP 核心技术,例如 QTP 插件扩展技术。

自动化测试的成本包括脚本开发和维护成本,开发可重用性和可维护性高的核心基础框架是降低开发成本和维护成本的最佳办法。 QTestWare 为您封装了大量的控件录制、识别和测试操作函数,是您搭建自动化测试框架的最佳选择。

QtestWare 支持的控件

VS.NET

CheckedListBoxContexMenuStripDataGridViewDomainUpDownListViewMaskedTextBoxMenuStripPropertyGridStatusStripToolStripTrackBarTreeView

ComponentOne

FlexGridMainMenuToolBarTrueDBGrid

DevComponents.DotNetBar

advTree、DataGridViewX、ItemPanel、checkBoxX、ribbonBar、SuperTabStrip、siderBarPanel、tabStrip、bar、vScrollBarAdv、hScrollBarAdv、ExpandablePanel

Web

BrowserPageWebListWebTableWebCheckBoxWebEdit

YUI

CalendarDataTableSliderTreeView

ExtJS

CheckTree、ComboBox、Form、Grid、Menu

VB & ActiveX

MSFlexGrid、VbLabel、VbListView、DataGrid

CodeJock Xtreme Suite

DatePicker 、PropertyGrid、TaskPanel、ShortcutBar、ReportControl

XPSuite
Flex

FlexTextArea、FlexCheckBox

(更多控件支持正在持续开发和更新中...)

产品咨询与培训: testing_is_believing@126.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值