教材示例实践之二

第三个示例要求如下:

前提条件:用户已经登录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    使用with将所有会被复用的代码提炼出来,这样整个脚本就显得非常清晰了。

4. 注解2    WebEdit控件输入字符是用封装好的Set方法或者调用自身接口object.value。但是对于WebElement控件,要使用Object.innerText方法。  

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      webcheckbox是一个比较麻烦的控件,往往不能只单纯地操作它,代码表面上操作它并代表实际上就一定被操作了。所以操作以后一定要去检查一下。

3. 注解3      开始调用自身接口去修改对象的属性,但是试了几次都不成功。估计是IEQTP不支持我这个IE9。具体原因暂时没有找到。网上说的类似原因是:firefox下可以通过checked="unchecked"来不选中,但IE不支持。

  最后只有使用封装好的Set方法。不知道怎么使用set方法可以使用帮助文档,里面有详细的说明和例子。

posted @ 2014-07-30 23:00  邦邦酱好  阅读(374)  评论(0编辑  收藏  举报