51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4979|回复: 20
打印 上一主题 下一主题

[求助] 可否根据字体颜色来进行判断呢?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-6-30 11:41:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近在录制一个注册脚本,见下图:

能否根据提示信息颜色的不同来进行判断呢?
希望各位高手指点一下,最好能给出判断的脚本,谢谢啦!!!

[ 本帖最后由 zhengpeipei 于 2009-6-30 11:43 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2009-6-30 11:53:54 | 只看该作者
机器上没有QTP,没法给你脚本,但是这种做法是完全可以的,你用spy查看那些文本,应该能看到一个color的属性,只不过是它的值是十六进制的,脚本判断的时候,会判断这个值是不是与预期的十六进制相等。
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2009-6-30 12:02:38 | 只看该作者

回复2#的帖子

我用spy查了一下,没有color属性啊。
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2009-6-30 12:05:44 | 只看该作者
楼为,用spy抓取提示信息的,是一个什么对象来的,是一个div,还是其它的??
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2009-6-30 12:15:52 | 只看该作者

回复4#的帖子

用spy抓取的提示信息是一个WebElement对象
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2009-6-30 12:24:34 | 只看该作者
像这个注册的脚本录制的思路是什么呢?
我是这样录制的:对提示信息插入检查点并进行参数化,先输入用户名,之后进行判断,若不正确就执行下一条用例,若正确就输入密码,在像这样进行判断……
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2009-6-30 13:18:15 | 只看该作者
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2009-6-30 13:41:14 | 只看该作者
webelement 对象,如果直接用QTP的话,判断起来也比较麻烦的

我觉得颜色值可以不用自动化了,我估计你上面的提示信息是一个div来的(可以用一些查看页面dom结构的工具看一下,如ie developer),你可以用qtp 直接访问dom的方法,来取得提交信息的内容,颜色值能不能取得到,我就不知道了.
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2009-6-30 14:18:31 | 只看该作者
原帖由 zhengpeipei 于 2009-6-30 12:24 发表
像这个注册的脚本录制的思路是什么呢?
我是这样录制的:对提示信息插入检查点并进行参数化,先输入用户名,之后进行判断,若不正确就执行下一条用例,若正确就输入密码,在像这样进行判断……

关键不在于如何去录制,而在于如何去校验(楼主别笑我咬文嚼字啊)。
首先,楼主如果要对用户名、密码等几个文本框都做正向和反向的测试,那么没说的,就挨个测试吧,人工怎么测试的,脚本就怎么执行,这没什么好说的。
其次说思路的问题,比如对于登录操作来说,首先应该明确要校验什么。“不输入密码不允许登录”和“密码为空时出现文字提示”这是两个完全不同的校验点,它会决定你的脚本如何录制。如果我们要验证的是“不输入密码不允许登录”,那么OK,我们就让脚本录入空密码并点击登录,然后校验当前页面是否仍然显示用户名、密码等文本框元素(也就是仍然停留在当前页面);如果要校验的是”密码为空时出现文字提示”,那么我们就让脚本录入空密码并点击登录,然后在当前页面中查找“密码不能为空”这个文本是否存在。
说一句老生常谈的话,自动化测试过程中一定要先让你的测试目标明确,就象你说的“若不正确就执行下一条用例”,那么不正确的标准是什么呢,对于脚本来说它无法识别什么是正确的,什么是不正确的,它只能判断XX对象是否存在,XX文本是否与预期的文本值一致

[ 本帖最后由 dreamever 于 2009-6-30 14:20 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

10#
 楼主| 发表于 2009-7-1 09:56:50 | 只看该作者
下面是我录制的脚本,大家来找错吧。
Dim user_check,passwd_check,pwdcopy_check,email_check,title_check
Browser("xxx大餐厅").Page("欢迎光临 xxx招聘网站 首页").Link("个人会员注册").Click
Browser("xxx大餐厅").Page("信息注册条款").WebButton("我接受").Click
Browser("xxx大餐厅").Page("xxx-个人注册").WebEdit("perUserName").Set DataTable("user", dtGlobalSheet)
user_check=DataTable.Value("user_check","Action1")
If Browser("xxx大餐厅").Page("xxx-个人注册").WebElement(user_check).Exist(1) Then
    If user_check="错误!会员名称不能为空!" Then
        Reporter.ReportEvent micPass,"注册失败",user_check
    elseIf user_check="错误!此用户名已被使用,请重新填写" Then       
        Reporter.ReportEvent micPass,"注册失败",user_check
    end if
end if
Browser("xxx大餐厅").Page("xxx-个人注册").WebEdit("perPassWord").SetSecure DataTable("passwd", dtGlobalSheet)
passwd_check=DataTable.Value("passwd_check","Action1")
If browser("xxx大餐厅").Page("xxx-个人注册").WebElement(passwd_check).Exist(1) Then
    If passwd_check = "错误!密码不能为空!" Then
        Reporter.ReportEvent micPass,"注册失败",passwd_check
    elseIf passwd_check="密码长度错误!由6-20个字符组成。" Then
        Reporter.ReportEvent micPass,"注册失败",passwd_check
    end if
end if
Browser("xxx大餐厅").Page("xxx-个人注册").WebEdit("textfield3").SetSecure DataTable("pwdcopy", dtGlobalSheet)
pwdcopy_check=DataTable.Value("pwdcopy_check","Action1")
If browser("xxx大餐厅").Page("xxx-个人注册").WebElement(pwdcopy_check).Exist(1) Then
    If   pwdcopy_check = "错误!确认密码不能为空!" Then
        Reporter.ReportEvent micPass,"注册失败",pwdcopy_check
    elseIf pwdcopy_check="两次密码输入不一样,重复输入上面设置的密码!" Then
        Reporter.ReportEvent micPass,"注册失败",pwdcopy_check               
    end if
end if
Browser("xxx大餐厅").Page("xxx-个人注册").WebEdit("perEmail").Set DataTable("email", dtGlobalSheet)
email_check=datatable.Value("email_check","Action1")
If browser("xxx大餐厅").Page("xxx-个人注册").WebElement(email_check).Exist(1) Then
    If   email_check = "错误!邮件地址不能为空!" Then
        Reporter.ReportEvent micPass,"注册失败",email_check               
    elseIf email_check="电子邮件格式不正确!" Then
        Reporter.ReportEvent micPass,"注册失败",email_check                 
    elseIf   email_check = "错误!此邮箱已被使用!" Then
        Reporter.ReportEvent micPass,"注册失败",email_check               
    end if
end if
Browser("xxxx大餐厅").Page("xxxx-个人注册").WebButton("下一步").Click
If Browser("xxxx大餐厅").Page("xxxx-个人注册").Exist(1) Then
    Browser("xxx大餐厅").Close
elseIf Browser("xxx大餐厅").Page("简历属性设置").Exist(1) Then
    Browser("金禾泰大餐厅").Page("简历属性设置").WebEdit("title").Set DataTable                          ("title",dtGlobalSheet)
    title_check=DataTable.Value("title_check","Action1")
    If Browser("xxx大餐厅").Page("简历属性设置").WebElement(title_check).Exist(1) Then
        If title_check="错误!简历标题不能为空!" Then
            Reporter.ReportEvent micPass,"注册失败",title_check                  
        else
            Browser("xxx大餐厅").Page("简历属性设置").WebRadioGroup("operType").Select DataTable("opertype", dtGlobalSheet)
            Browser("xxx大餐厅").Page("简历属性设置").WebList("select").Select DataTable("language", dtGlobalSheet)
            Browser("xxx大餐厅").Page("简历属性设置").WebRadioGroup("showType").Select DataTable("showtype", dtGlobalSheet)
            Browser("xxx大餐厅").Page("简历属性设置").WebButton("下一步").Click
            Browser("xxx大餐厅").Page("xxx").WebButton("返回首页").Click
            Browser("xxx大餐厅").Page("欢迎光临 xxx招聘网站 首页").Link("安全退出").Click
            Browser("xxx大餐厅").Dialog("Microsoft Internet Explorer").WinButton("确定").Click
            Browser("xxx大餐厅").Page("欢迎光临 xxx招聘网站 首页_2").Sync
            Browser("xxx大餐厅").Close
            Reporter.ReportEvent micPass,"注册成功","注册成功!"
        end if
    End If         
end if
DataTable.ExportSheet "D:\招聘网站\个人注册.xls",1

因为输入不合法的数据给出提示信息后,输入的数据会自动清空,所以我输入一个数据后就进行判断。希望大家多多发表意见,谢谢!!!
回复 支持 反对

使用道具 举报

该用户从未签到

11#
 楼主| 发表于 2009-7-1 13:54:59 | 只看该作者

怎么没有人发表意见啊
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2009-7-1 14:36:01 | 只看该作者
你的脚本逻辑太复杂了,后期极不宜维护.不适合用在项目中,还有你的脚本中的report一旦执行,就全都是pass,这样不好,没有检查点的作用,
user_check=DataTable.Value("user_check","Action1")
If Browser("xxx大餐厅").Page("xxx-个人注册").WebElement(user_check).Exist(1) Then
类似这两句也不建议这样做,控制对象的名字,不如控制对象的属性
总之你的这个脚本可以拆成几个测试用例,不该都柔在一起
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2017-7-4 15:34
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    13#
    发表于 2009-7-1 15:50:33 | 只看该作者
    为何不用正则表达式对提示语进行判断那??
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
    发表于 2009-7-1 17:03:40 | 只看该作者
    innertext咯,用object
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
     楼主| 发表于 2009-7-1 17:54:36 | 只看该作者

    回复小_麦的帖子

    应该控制这个WebElement对象的什么属性呢?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
    发表于 2009-7-1 18:42:58 | 只看该作者

    回复 15# 的帖子

    其实我觉得用WebElement不好,不妨用webtable下的方法,如GetCellData,然后取得文字,在和预期值比较,如果不行在用WebElement,控制对象的innertext,或者其他.最好单独写成方法..用描述性语言会清晰些..
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
     楼主| 发表于 2009-7-2 09:26:31 | 只看该作者

    回复小_麦的帖子

    这个提示信息的对象不是表格怎么使用webtable呢,可以写一下脚本吗?我是新手,对脚本不是很熟悉,谢谢!!!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
    发表于 2009-7-2 09:29:49 | 只看该作者
    原帖由 zhengpeipei 于 2009-7-2 09:26 发表
    这个提示信息的对象不是表格怎么使用webtable呢,可以写一下脚本吗?我是新手,对脚本不是很熟悉,谢谢!!!

    你可以给个地址吗?不然没有界面的话脚本也不好写
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
    发表于 2009-7-2 09:35:38 | 只看该作者
    添加对象的是后,找你webelement 的上一级我想应该是webtable....
    是的...你最好给个页面.那样就好弄多了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    20#
     楼主| 发表于 2009-7-2 12:58:21 | 只看该作者

    回复dreamever和小_麦的帖子

    我录制的网站还没有发布,就用新浪网注册的页面吧,希望可以给一个完整的脚本,让我好好学习一下,多谢,多谢!!!!
    https://login.sina.com.cn/cgi/register/reg_sso.php
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-9-20 13:45 , Processed in 0.089513 second(s), 29 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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