可否根据字体颜色来进行判断呢?
最近在录制一个注册脚本,见下图:能否根据提示信息颜色的不同来进行判断呢?
希望各位高手指点一下,最好能给出判断的脚本,谢谢啦!!!
[ 本帖最后由 zhengpeipei 于 2009-6-30 11:43 编辑 ] 机器上没有QTP,没法给你脚本,但是这种做法是完全可以的,你用spy查看那些文本,应该能看到一个color的属性,只不过是它的值是十六进制的,脚本判断的时候,会判断这个值是不是与预期的十六进制相等。
回复2#的帖子
我用spy查了一下,没有color属性啊。 楼为,用spy抓取提示信息的,是一个什么对象来的,是一个div,还是其它的??回复4#的帖子
用spy抓取的提示信息是一个WebElement对象 像这个注册的脚本录制的思路是什么呢?我是这样录制的:对提示信息插入检查点并进行参数化,先输入用户名,之后进行判断,若不正确就执行下一条用例,若正确就输入密码,在像这样进行判断…… :L :L :L webelement 对象,如果直接用QTP的话,判断起来也比较麻烦的
我觉得颜色值可以不用自动化了,我估计你上面的提示信息是一个div来的(可以用一些查看页面dom结构的工具看一下,如ie developer),你可以用qtp 直接访问dom的方法,来取得提交信息的内容,颜色值能不能取得到,我就不知道了. 原帖由 zhengpeipei 于 2009-6-30 12:24 发表 http://bbs.51testing.com/images/common/back.gif
像这个注册的脚本录制的思路是什么呢?
我是这样录制的:对提示信息插入检查点并进行参数化,先输入用户名,之后进行判断,若不正确就执行下一条用例,若正确就输入密码,在像这样进行判断……
关键不在于如何去录制,而在于如何去校验(楼主别笑我咬文嚼字啊)。
首先,楼主如果要对用户名、密码等几个文本框都做正向和反向的测试,那么没说的,就挨个测试吧,人工怎么测试的,脚本就怎么执行,这没什么好说的。
其次说思路的问题,比如对于登录操作来说,首先应该明确要校验什么。“不输入密码不允许登录”和“密码为空时出现文字提示”这是两个完全不同的校验点,它会决定你的脚本如何录制。如果我们要验证的是“不输入密码不允许登录”,那么OK,我们就让脚本录入空密码并点击登录,然后校验当前页面是否仍然显示用户名、密码等文本框元素(也就是仍然停留在当前页面);如果要校验的是”密码为空时出现文字提示”,那么我们就让脚本录入空密码并点击登录,然后在当前页面中查找“密码不能为空”这个文本是否存在。
说一句老生常谈的话,自动化测试过程中一定要先让你的测试目标明确,就象你说的“若不正确就执行下一条用例”,那么不正确的标准是什么呢,对于脚本来说它无法识别什么是正确的,什么是不正确的,它只能判断XX对象是否存在,XX文本是否与预期的文本值一致
[ 本帖最后由 dreamever 于 2009-6-30 14:20 编辑 ] 下面是我录制的脚本,大家来找错吧。
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
因为输入不合法的数据给出提示信息后,输入的数据会自动清空,所以我输入一个数据后就进行判断。希望大家多多发表意见,谢谢!!! :L :L :L
怎么没有人发表意见啊 你的脚本逻辑太复杂了,后期极不宜维护.不适合用在项目中,还有你的脚本中的report一旦执行,就全都是pass,这样不好,没有检查点的作用,
user_check=DataTable.Value("user_check","Action1")
If Browser("xxx大餐厅").Page("xxx-个人注册").WebElement(user_check).Exist(1) Then
类似这两句也不建议这样做,控制对象的名字,不如控制对象的属性
总之你的这个脚本可以拆成几个测试用例,不该都柔在一起 为何不用正则表达式对提示语进行判断那?? innertext咯,用object
回复小_麦的帖子
应该控制这个WebElement对象的什么属性呢?回复 15# 的帖子
其实我觉得用WebElement不好,不妨用webtable下的方法,如GetCellData,然后取得文字,在和预期值比较,如果不行在用WebElement,控制对象的innertext,或者其他.最好单独写成方法..用描述性语言会清晰些..回复小_麦的帖子
这个提示信息的对象不是表格怎么使用webtable呢,可以写一下脚本吗?我是新手,对脚本不是很熟悉,谢谢!!! 原帖由 zhengpeipei 于 2009-7-2 09:26 发表 http://bbs.51testing.com/images/common/back.gif这个提示信息的对象不是表格怎么使用webtable呢,可以写一下脚本吗?我是新手,对脚本不是很熟悉,谢谢!!!
你可以给个地址吗?不然没有界面的话脚本也不好写 添加对象的是后,找你webelement 的上一级我想应该是webtable....
是的...你最好给个页面.那样就好弄多了
回复dreamever和小_麦的帖子
我录制的网站还没有发布,就用新浪网注册的页面吧,希望可以给一个完整的脚本,让我好好学习一下,多谢,多谢!!!!https://login.sina.com.cn/cgi/register/reg_sso.php
页:
[1]
2