51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

楼主: zhuifengha
打印 上一主题 下一主题

[求助] 怎样测试已经控制了最大长度的控件的最大长度阿

[复制链接]

该用户从未签到

21#
发表于 2007-8-23 11:54:20 | 只看该作者
Type 相當於往TextBox中敲入數據,模擬鍵盤的一個鍵一個鍵的輸入
Set   是直接往TextBox中設定它的Text內容.

呵呵呵呵,看測試需求了.如果只是要輸入內容,不用一個一個鍵入,拿麼還是用Set好,

因為Type在QTP內部仍然是一個一個鍵入到目標Textbox上的,內部多不少步驟,
回复 支持 反对

使用道具 举报

该用户从未签到

22#
发表于 2007-8-23 11:54:39 | 只看该作者
原帖由 zhuifengha 于 2007-8-23 11:08 发表
谢谢你的函数

确实可以set 21 个字符了

但是,我按你的函数运行了之后,test result中会显示错误阿.........这个能解决不?



上午比較忙,下午幫你看看.
回复 支持 反对

使用道具 举报

该用户从未签到

23#
 楼主| 发表于 2007-8-23 11:58:18 | 只看该作者
谢谢大家帮忙啊
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    24#
    发表于 2007-8-24 00:13:20 | 只看该作者
    原帖由 zhuifengha 于 2007-8-23 11:08 发表
    谢谢你的函数

    确实可以set 21 个字符了

    但是,我按你的函数运行了之后,test result中会显示错误阿.........这个能解决不?


    那就使用 Reporter对象的 ReportEvent方法自己去检查 这个地方了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    25#
    发表于 2007-8-24 00:14:14 | 只看该作者
    QTP 是死的,因为它没有思想,没有自己的思考。可人是活的,因为人有思想!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    26#
    发表于 2007-8-24 02:00:21 | 只看该作者
    这个是要测试控件对键盘输入的反应的,所以不能绕过键盘事件,直接用Edit的set方法,因为set方法是直接往对象的内部text属性赋值的。

    更不能用set超长字符串后再检查错误这种方法的,你想想用户实际输入时,是不可能触发这种错误的,你却制造了这种错误,跟测试目的根本就是两码事了。

    所以,要用模拟键盘输入的方法,比如对象的type方法,或者系统对象的sendkeys方法,这样才符合测试要求!
    这样输入完后,再讲edit的内容取出来,看看是否忽略了后面超长部分的键盘输入了。

    [ 本帖最后由 yabest 于 2007-8-24 02:01 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    27#
    发表于 2007-8-24 12:48:03 | 只看该作者
    两位高手,学习。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    28#
    发表于 2007-8-26 02:09:04 | 只看该作者
    原帖由 yabest 于 2007-8-24 02:00 发表
    这个是要测试控件对键盘输入的反应的,所以不能绕过键盘事件,直接用Edit的set方法,因为set方法是直接往对象的内部text属性赋值的。

    更不能用set超长字符串后再检查错误这种方法的,你想想用户实际输入时, ...


    呵呵呵呵,这个忽略了,虽然也曾有这样的怀疑,但是在看QTP录制的脚本的时候发现它只用Set,再看他家的帮助里面的说明,便没有再做更多思考,虚心接受。多谢赐教。Thank you for remind.


    To 楼主:原本答应帮楼主搞定的Repoter的问题,因为周五部门的服务器坏了,加上和台北的会议,一直没有处理,呵呵,Say Sorry. 周一下午再替楼主处理。


    sdlkfj3
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    29#
    发表于 2007-8-26 08:21:55 | 只看该作者
    ddd
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    30#
    发表于 2007-8-26 16:16:50 | 只看该作者
    原帖由 zhuifengha 于 2007-8-23 11:08 发表
    谢谢你的函数

    确实可以set 21 个字符了

    但是,我按你的函数运行了之后,test result中会显示错误阿.........这个能解决不?
    报嘛错,你最好把错误信息提供给大家,好帮你分析
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    31#
    发表于 2007-8-27 09:12:27 | 只看该作者
    '=======================================================
    ' 用例編號:
    ' 用例說明:
    ' 用例作者:
    ' 版本歷史:
    '=======================================================
    Option Explicit

    '範例
    If SetText(SwfWindow("Form1").SwfEdit("TextBox1"), "1234567890123456789012345") Then
            reporter.ReportEvent micFail, "字串長度檢查錯誤", "長度沒有控制正確"
    End If


    '=========================================================
    ' 函數說明: 向一個 SwfEdit 對象塞入Text內容, 返回執行成敗
    ' 參數說明: objEdit - 類型為 SwfEdit 的控件對象
    '           text    - 要填入到 objEdit 中的內容
    ' 返 回 值: Boolean
    '=========================================================

    Public Function SetText(byval objEdit, byval text)
            On Error Resume Next

            '错误报表中不显示接下来产生的任何错误
            Reporter.Filter rfDisableAll
                   
            objEdit.Type text

            If err.number<>0 Then
                    '產生錯誤
                    SetText =  False
            Else
                    SetText =  True
            End If

            '恢复报表错误过滤,否则后面所有的错误都不会纪录到Report中.
            Reporter.Filter rfEnableAll
    End Function

    关键在于:
            Reporter.Filter rfDisableAll
            Reporter.Filter rfEnableAll

    [ 本帖最后由 walker1020 于 2007-8-27 22:06 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    32#
    发表于 2007-8-27 09:20:29 | 只看该作者
    好帖子
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    33#
     楼主| 发表于 2007-8-27 10:42:44 | 只看该作者
    十分感谢sdlkfj3
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    34#
    发表于 2007-8-27 12:11:36 | 只看该作者
    ...
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    35#
    发表于 2007-8-27 22:15:26 | 只看该作者
    非常感谢 热心朋友anson_xiong对论坛的支持,特别是不断回复楼主的问题。此种精神值得偶学习。 你在 #31的 solution可以说是 #14 的增强版。呵呵!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    36#
    发表于 2007-8-28 16:52:49 | 只看该作者

    学习中

    顶,学习下
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    37#
    发表于 2007-9-3 15:42:46 | 只看该作者
    看看!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    38#
    发表于 2007-9-4 15:01:28 | 只看该作者
    原帖由 skyzhu 于 2007-8-23 11:37 发表
    type 也一样可以输普通字符的,而且可以追加,或者插入的
    不一定都要看帮助 试了就知道了

    type 怎么输入普通字符阿 我的控件属性是webedit  用type输普通字符是会出错的阿 请教高手了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    39#
    发表于 2007-9-5 09:28:15 | 只看该作者
    我觉得是不是这样的呢 webedit属性的控件没有type这个方法  这类控件测试长度的时候可不可以直接用getroproperty(maxlenth)呢  如果取出来的值正确的话就证明长度控制了呢
    另外 我在qtp启动的时候只加载activex 这时候识别出来的对象就是winobject属性的了  用 type 方法就是正确的  但是我觉得这样实在是太麻烦了   
    请教各位前辈  对于webedit这样属性的控件测试最大长度究竟应该用什么方法呢
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    40#
    发表于 2007-9-5 10:00:14 | 只看该作者
    原帖由 yfyl0309 于 2007-9-5 09:28 发表
    我觉得是不是这样的呢 webedit属性的控件没有type这个方法  这类控件测试长度的时候可不可以直接用getroproperty(maxlenth)呢  如果取出来的值正确的话就证明长度控制了呢


    这样测试,太间接了,谁能保证maxlenth属性是20,它就真的按20来控制输入了?!

    还是要尽量贴近实际情况,自己模拟键盘输入,然后检查webedit里的内容,这样的比较好。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-10-7 15:26 , Processed in 0.093031 second(s), 21 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表