TA的每日心情 | 难过 2015-9-21 13:50 |
---|
签到天数: 4 天 连续签到: 1 天 [LV.2]测试排长
|
花了点时间写个参数化的东西,分享给各位。同时请各位给我挑错……
序:为什么要参数化?
当你做测试时,可能会想到要使用多种不同的测试数据,针对同样的操作或功能进行测试。
比如:你想增加10组不同的订单,明智的选择是将新增订单的操作录制下来,通过QTP的参数化功能来建立这10组数据。
1、 最老土的办法
正常录制完成后,在关键字视图中参数化你的变量
点击后出现下列提示框
Const 代表的是常量,Parameter就是参数了。
当然选择参数话的时候,有三种方式。
A) DataTable 数据表格的形式来存储你的数据
B)environment 环境变量形式存储你的数据
C) Random Number 用随机数代替你的数据
正常情况下,我们都用datatable 来存储我们的数据~
在选择datatable 后,当然你还需要定义你的参数变量的名称。
另外这里有两个表供你选,第一个表是Global sheet ,另一个是Current action sheet
这两个表的不同点,就不啰嗦了。
2、 上面的做法是正常录制的情况下参数话的结果。
那么我们还可以怎么做呢?
<<<函数化。
我们可以把我们的脚本做成一个函数,通过给这个函数传送变量的方法来达到参数化的效果。
例如:我们做一个login的登录函数,通过传参数用户名、密码等给函数,达到参数化的效果
=============================================================================
Function Login_RDMS(sUerName,sPassword)
ExecuteFile GetTestPath()&"对象库\001-登入模块.vbs"
CloseIE()
Url(URLLogin1)
With Browser(Browser_RDMS).Page(Page_RDMS)
.WebEdit(WebEdit_username).Set sUerName
.WebEdit(WebEdit_password).Set sPassword
.WebButton(WebButton_project).Click
End with
Login_RDMS= Browser(Browser_RDMS).Page(Page_RDMS).Link(Link_check).Exist(5)
End Function
=============================================================================
至于怎么从外部的excel取的数据,可以通过DataTable.ImportSheet、DataTable.SetNextRow等方法来获取数据。
3、 还有一种情况(描述性对象编程里的childobjects)
举个例子,比如一个页面里有多个checkbox,我需要把这些checkbox全选上
Set brs = description.Create()
brs("title").value = ".*"
Set page1 = description.Create()
page1("title").value = ".*"
Set wcb = description.Create()
wcb("type").value = "checkbox"
Set objs =Browser(brs).Page(page1).childobjects(wcb)
For I = 1 to objs.cout
Objs(i-1).click
Next
[ 本帖最后由 fei.ge 于 2009-5-18 16:48 编辑 ] |
|