51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 8630|回复: 52
打印 上一主题 下一主题

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

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-8-23 09:06:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
刚学QTP不久,碰到一个问题。
用户名的最大长度为20,就是输入20个字符后就不能输入了,用QTP怎么测试阿
我先在记录中输入21个字符,想检查它自动截断,但是运行会报错。
而且我的控件事WinEdit,也没有找到max length属性。

高手给解答下吧,谢谢了
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2007-8-23 09:23:17 | 只看该作者
你能不能把需求描述一下,比如用户名超过长20个字符后,程序会怎么处理的?
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2007-8-23 09:38:21 | 只看该作者
就是输入用户名的时候,输入20个字符后就不能输入了,控件的最大长度是20,无法输入第21个字符阿
回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    2022-7-13 15:22
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    4#
    发表于 2007-8-23 09:57:03 | 只看该作者
    len函数
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
     楼主| 发表于 2007-8-23 10:07:57 | 只看该作者
    能具体说一下么?len函数怎么用啊,能解决判断最大长度的问题?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2007-8-23 10:08:12 | 只看该作者
    example:

    1.先向那個Control輸入超過20位的字符 "12345678901234567890123456"
    2.如果Spec要求是超過20位字符,Control需要截斷後面超過的位數,且不提示,
       拿麼判斷Control的Text屬性是否為 "12345678901234567890"

    ------------------------------------------------------------------------------------
    1.先向那個Control輸入超過20位的字符 "12345678901234567890123456"
    2.如果Spec要求是超過20位字符,Control給出提示,光標不離開
       拿麼判斷是否有提示 Dialog 出現,同時判斷提示信息是否正確

    .........


    還是要結合你的Spec啊.


    Object.Set "1234567890123456789012345"
    Object.CheckProperty "Text", "12345678901234567890", 1
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2007-8-23 10:11:28 | 只看该作者
    原帖由 rivermen 于 2007-8-23 09:57 发表
    len函数



    如果Spec規定需要Cut後面的字符號,這個時候單純判斷 Text 的 Length 是不夠的, 也是不嚴謹的, 有可能程序人員Cut錯誤了,截後變成了截前,甚至截錯,
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
     楼主| 发表于 2007-8-23 10:13:48 | 只看该作者
    谢谢楼上的解释

    但是楼上还是没有看明白
    我说了,控件控制了最多输入20个字符,根本就无法输入超过20个字符
    并不是输入,提交后的截断或者报错的问题啊。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2007-8-23 10:21:50 | 只看该作者
    楼主,你到底想表达的是什么意思啊,#1说:在记录中输入21个字符,想检查它自动截断,#8又说:并不是输入,提交后的截断或者报错的问题啊~~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2007-8-23 10:23:13 | 只看该作者
    用QTP  Set  超過20位的字符.QTP腳本會出錯麼?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2007-8-23 10:25:00 | 只看该作者
    呵呵呵呵,如果是這樣,我寫一個函數給你好了.that is easy.

    sdlkfj5
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
     楼主| 发表于 2007-8-23 10:25:41 | 只看该作者
    我本来想在QTP的Step中给这个控件输入21个字符,然后检查它取了前20个,但是这样QTP会报错

    应用程序中的控件最大输入20个字符,不可能输入第21个的

    由于是控件自己控制了长度,所以我不知道用QTP应该如何测试这个最大长度阿
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2007-8-23 10:49:22 | 只看该作者
    剛才有事離開了一下, sorry
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
    发表于 2007-8-23 10:49:28 | 只看该作者
    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
            objEdit.Set text
            If err.number<>0  Then
                    '产生错误
                    SetText =  False
            Else   SetText =  True
            End If
      End Function

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

    使用道具 举报

    该用户从未签到

    15#
    发表于 2007-8-23 10:49:56 | 只看该作者
    那就不要用SET  用 TYPE
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
    发表于 2007-8-23 10:51:42 | 只看该作者
    如果你向控件中填寫超過限制長度的字符, 如果還可以填入成功, 拿麼一定有錯, 呵呵,產生錯誤的話,說明開發人員有做好限制錯誤,
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
    发表于 2007-8-23 10:57:18 | 只看该作者
    原帖由 skyzhu 于 2007-8-23 10:49 发表
    那就不要用SET  用 TYPE


    SwfEdit 對象的說明中,

    Type 的解釋是:


    Description
    Types the specified string in the object.

    Syntax
    object.Type KeyboardInput

    Argument Description
    object A test object of type SwfEdit.
    KeyboardInput Required. A String value.

    The text string and/or constants representing non-alphanumeric keys.  

    上面的意思,是說Type用與鍵入一些特殊的字串,並且是non-alphanumeric Keys, 非文字數字的鍵
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
    发表于 2007-8-23 11:01:37 | 只看该作者
    繼續:

    關於 Set, 說明中是這樣描述的:

    Description
    Sets the value of an edit box.

    Syntax
    object.Set Text

    Argument Description
    object A test object of type SwfEdit.
    Text Required. A String value. The text to be entered in the edit field.



    The text to be entered in the edit field. sdlkfj3


    So, 我認為用Set是沒有錯誤的, 而且,你可以發現對於 SwfEdit ,QTP自身錄製的腳本中,就一定是使用Set 而非Type的,

    只有在案下會車,Tab 的時候,QTP才會使用到 Type

    objEdit.Type micReturn
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
     楼主| 发表于 2007-8-23 11:08:38 | 只看该作者
    谢谢你的函数

    确实可以set 21 个字符了

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

    使用道具 举报

    该用户从未签到

    20#
    发表于 2007-8-23 11:37:17 | 只看该作者
    type 也一样可以输普通字符的,而且可以追加,或者插入的
    不一定都要看帮助 试了就知道了
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-24 04:35 , Processed in 0.082903 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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