第三个示例要求如下:
前提条件:用户已经登录51testing网站并进入“我的个人空间”,然后点击“日志”,进入“日志”页面。
详细要求:
1. 点击“发布新日志按钮”,进入日志发布页面
2. 填写所有日志材料,并且测试:
A.标题自动生成功能
B.访问密码是否跟设置的一致
最后的成品代码如下:
Browser("邦邦酱好 日志 - 邦邦酱好的个人空间 -").Page("邦邦酱好 日志 - 邦邦酱好的个人空间 -").Link("发布新日志").Click
Browser("个人空间管理").Page("个人空间管理").Sync '等待网页加载完成
dateArray = Date 'QTP的保留函数Date
'msgbox dateArray 查看系统生成的日期是2014/7/17还是2014-7-17
dateArray = split(dateArray, "/")
tYear = dateArray(0)
tMonth =dateArray(1)
tDay = dateArray(2)
If tMonth < 10 Then
tMonth = "0" & tMonth
End If
If tDay < 10 Then
tDay = "0" & tDay
End If
'嵌套日期,生成期望的标题
expSubject = "日志 [" & tYear & "年" & tMonth &"月" & tDay & "日]" '注意引号是英文符号,否则会出错。看不出问题可以把它们复制到文本中看。
msgbox expSubject
With Browser("个人空间管理").Page("个人空间管理") '注解1
.Image("用日期生成标题").Click
.WebList("系统分类").Select "软件测试技术"
.WebList("个人分类").Select "aaa"
.Frame("Frame").WebElement("内容").Object.innerText = "QTP自动化测试领航" '注解2
.WebEdit("密码").Set "123123"
actSubject = .WebEdit("标题").GetROProperty("value")
actPwd = .WebEdit("密码").GetROProperty("value")
'msgbox actSubject
'msgbox actPwd
If actSubject = expSubject and actPwd = "123123" Then
Reporter.ReportEvent micPass,"test success","Passed"
else
Reporter.ReportEvent micFail,"test fail","Fail"
ExitTest
End If
.WebButton("保存到私人箱").Click
End With
解释几点:
1. 所用到的对象库如图:
2. 注意引号的类型,必须是英文字符,否则会出现”Expected expression“错误。如果实在看不出问题,可以把那一行复制到文本文件中查看,文本文件下,中文和英文的双引号是有很大区别的。
3. 注解1
4. 注解2
WebElement控件的使用频率比较高,但是一般用于验证某个特征是否成立。如下:
oExist = Browser("个人空间管理").Page("个人空间管理").Frame("Frame").WebElement("内容").Exist(2) '验证时间为2秒
If not oExist Then
ExitTest
End If
第四个示例要求如下:
前提条件:登陆51testing软件测试论坛并进入【QuickTest Professional】版块,点击【发帖】按钮,选择“发新话题”,在“发新话题”对话框中点击“高级模式”链接,进入下图:
详细要求:
1. 验证”发帖选项“下的两个webcheckbox对象“Html代码”和“img代码”是否不可点击,并且后者默认已选上。
2. 反选“关注此主题的回复”和“使用个人签名”,并做验证。
最后的成品代码如下:
with Browser("[QuickTest Professional]").Page("[QuickTest Professional]")
' 步骤1:检查Html代码和ing代码的checkbox
disabled1 = trim(.WebCheckBox("Html代码").Object.disabled) '注解1
checked1 = trim(.WebCheckBox("Html代码").Object.checked)
disabled2 = trim(.WebCheckBox("img代码").GetRoProperty("disabled")) '同注解1
checked2 = trim(.WebCheckBox("img代码").GetRoProperty("checked"))
'msgbox disabled1 '注解2
'msgbox checked1
'msgbox disabled2
'msgbox checked2
Dim vTrue '声明
vTrue= "True" ' 赋值
Dim vFalse
vFalse= "False"
If disabled1 = vTrue and disabled2 = "1" and checked1 = vFalse and checked2 = "1" Then
reporter.ReportEvent micPass,"check1 passed","passed"
else
reporter.ReportEvent micFail, "check1 fail","failed"
End If
' 步骤2 :反选“关注此主题的新回复” 和“使用个人签名”
.WebCheckBox("关注回复").set "OFF" ' 注解3 .Object.checked = vFalse 此方法不起作用
.WebCheckBox("个人签名").set "ON" ' ON 勾选 OFF取消勾选
checked3 = trim(.WebCheckBox("关注回复").Object.checked)
checked4 = trim(.WebCheckBox("个人签名").Object.checked)
msgbox checked3
msgbox checked4
If checked3 = vFalse and checked4 = vTrue Then
reporter.ReportEvent micPass,"check2 passed","passed"
else
reporter.ReportEvent micFail, "check2 fail","failed"
End If
end with
解释几点:
1. 注解1 运行时对象的自身接口属性和对象的封装属性。这里使用的2种获取属性的方法是结果上是一样的。
封装属性GetRoProperty("disabled") 只能获取属性的值,不能修改实际运行时的对象,而调用自身接口就可以。2. 注解2
3. 注解3
最后只有使用封装好的Set方法。不知道怎么使用set方法可以使用帮助文档,里面有详细的说明和例子。
















