如何优化qtp代码?
写了一段用户登录的qtp测试代码,感觉代码很长,希望大家帮忙优化一下。'-------------------脚本说明---------------
'产品版本: 用户管理
'测试员:
'编写日期:2008-2-27
'测试功能:用户登录
'--------------------脚本内容-------------
Dim inputcode '定义一个输入框,输入验证码
Dim outputvalue '定义一个参数,读取文本输出值
Dim istatus '定义一个验证信息值,存放预期校验信息
Browser("请输入用户名和密码").Page("请输入用户名和密码").WebEdit("UserName").Set DataTable("username", dtLocalSheet)
Browser("请输入用户名和密码").Page("请输入用户名和密码").WebEdit("UserPwd").SetSecure DataTable("password", dtLocalSheet)
inputcode=inputbox("请输入验证码!") '弹出输入框,要求输入验证码
Browser("请输入用户名和密码").Page("请输入用户名和密码").WebEdit("confirm").Set inputcode
Browser("请输入用户名和密码").Page("请输入用户名和密码").WebButton("提交").Click
Browser("请输入用户名和密码").Page("请输入用户名和密码").Output CheckPoint("请输入用户名和密码")
outputvalue=DataTable("outmsg",dtlocalsheet) '第一次获取输出值
istatus=datatable("status",dtlocalsheet) '第一次获取验证信息
Ifoutputvalue <>istatus Then '检查期望验证信息与实际信息是否一致,如不一致则报告错误
reporter.ReportEvent 1,"用户名验证","用户名正确性未进行验证,期望值为:"+istatus+",实际提示信息为:"+outputvalue
datatable.GetSheet("Action1").setnextrow
Browser("请输入用户名和密码").Page("请输入用户名和密码").WebEdit("UserName").Set DataTable("username", dtLocalSheet)
Browser("请输入用户名和密码").Page("请输入用户名和密码").WebEdit("UserPwd").SetSecure DataTable("password", dtLocalSheet)
inputcode=inputbox("请输入验证码!")
Browser("请输入用户名和密码").Page("请输入用户名和密码").WebEdit("confirm").Set inputcode
Browser("请输入用户名和密码").Page("请输入用户名和密码").WebButton("提交").Click
Browser("请输入用户名和密码").Page("请输入用户名和密码").Output CheckPoint("请输入用户名和密码")
else
datatable.GetSheet("Action1").setnextrow
Browser("请输入用户名和密码").Page("请输入用户名和密码").WebEdit("UserName").Set DataTable("username", dtLocalSheet)
Browser("请输入用户名和密码").Page("请输入用户名和密码").WebEdit("UserPwd").SetSecure DataTable("password", dtLocalSheet)
inputcode=inputbox("请输入验证码!")
Browser("请输入用户名和密码").Page("请输入用户名和密码").WebEdit("confirm").Set inputcode
Browser("请输入用户名和密码").Page("请输入用户名和密码").WebButton("提交").Click
Browser("请输入用户名和密码").Page("请输入用户名和密码").Output CheckPoint("请输入用户名和密码")
End If
outputvalue=DataTable("outmsg",dtlocalsheet) '第二次获取输出值
istatus=datatable("status",dtlocalsheet)'第二次获取验证信息
Ifoutputvalue <>istatus Then'检查期望验证信息与实际信息是否一致,如不一致则报告错误
reporter.ReportEvent 1,"密码验证","密码正确性未进行验证,期望值为:"+istatus+",实际提示信息为:"+outputvalue
datatable.GetSheet("Action1").setnextrow
Browser("请输入用户名和密码").Page("请输入用户名和密码").WebEdit("UserName").Set DataTable("username", dtLocalSheet)
Browser("请输入用户名和密码").Page("请输入用户名和密码").WebEdit("UserPwd").SetSecure DataTable("password", dtLocalSheet)
inputcode=inputbox("请输入验证码!")
Browser("请输入用户名和密码").Page("请输入用户名和密码").WebEdit("confirm").Set inputcode
Browser("请输入用户名和密码").Page("请输入用户名和密码").WebButton("提交").Click
Browser("请输入用户名和密码").Page("请输入用户名和密码").Output CheckPoint("请输入用户名和密码")
else
datatable.GetSheet("Action1").setnextrow
Browser("请输入用户名和密码").Page("请输入用户名和密码").WebEdit("UserName").Set DataTable("username", dtLocalSheet)
Browser("请输入用户名和密码").Page("请输入用户名和密码").WebEdit("UserPwd").SetSecure DataTable("password", dtLocalSheet)
inputcode=inputbox("请输入验证码!")
Browser("请输入用户名和密码").Page("请输入用户名和密码").WebEdit("confirm").Set inputcode
Browser("请输入用户名和密码").Page("请输入用户名和密码").WebButton("提交").Click
Browser("请输入用户名和密码").Page("请输入用户名和密码").Output CheckPoint("请输入用户名和密码")
End If
outputvalue=DataTable("outmsg",dtlocalsheet) '第三次获取输出值
istatus=datatable("status",dtlocalsheet) '第三次获取验证信息
Ifoutputvalue <>istatus Then'检查期望验证信息与实际信息是否一致,如不一致则报告错误
reporter.ReportEvent 1,"验证码验证","验证码正确性未进行验证,期望值为:"+istatus+",实际提示信息为:"+outputvalue
datatable.GetSheet("Action1").setnextrow
Browser("请输入用户名和密码").Page("请输入用户名和密码").WebEdit("UserName").Set DataTable("username", dtLocalSheet)
Browser("请输入用户名和密码").Page("请输入用户名和密码").WebEdit("UserPwd").SetSecure DataTable("password", dtLocalSheet)
inputcode=inputbox("请输入验证码!")
Browser("请输入用户名和密码").Page("请输入用户名和密码").WebEdit("confirm").Set inputcode
Browser("请输入用户名和密码").Page("请输入用户名和密码").WebButton("提交").Click
Browser("请输入用户名和密码").Page("请输入用户名和密码").Output CheckPoint("请输入用户名和密码")
else
datatable.GetSheet("Action1").setnextrow
Browser("请输入用户名和密码").Page("请输入用户名和密码").WebEdit("UserName").Set DataTable("username", dtLocalSheet)
Browser("请输入用户名和密码").Page("请输入用户名和密码").WebEdit("UserPwd").SetSecure DataTable("password", dtLocalSheet)
inputcode=inputbox("请输入验证码!")
Browser("请输入用户名和密码").Page("请输入用户名和密码").WebEdit("confirm").Set inputcode
Browser("请输入用户名和密码").Page("请输入用户名和密码").WebButton("提交").Click
Browser("请输入用户名和密码").Page("请输入用户名和密码").Output CheckPoint("请输入用户名和密码")
End If
'进入系统后退出
Browser("请输入用户名和密码").Page("用户管理及用户登录系统").Link("退出登录").Click
Browser("请输入用户名和密码").Page("请输入用户名和密码").Sync
[ 本帖最后由 森林一木 于 2008-2-28 13:23 编辑 ] Dim inputcode '定义一个输入框,输入验证码
Dim outputvalue '定义一个参数,读取文本输出值
Dim istatus '定义一个验证信息值,存放预期校验信息
For i=1 To DataTable.GetSheet(dtLocalSheet).GetRowCount
Browser("请输入用户名和密码").Page("请输入用户名和密码").WebEdit("UserName").Set DataTable("username", dtLocalSheet)
Browser("请输入用户名和密码").Page("请输入用户名和密码").WebEdit("UserPwd").SetSecure DataTable("password", dtLocalSheet)
inputcode=inputbox("请输入验证码!") '弹出输入框,要求输入验证码
Browser("请输入用户名和密码").Page("请输入用户名和密码").WebEdit("confirm").Set inputcode
Browser("请输入用户名和密码").Page("请输入用户名和密码").WebButton("提交").Click
Browser("请输入用户名和密码").Page("请输入用户名和密码").Output CheckPoint("请输入用户名和密码")
outputvalue=DataTable("outmsg",dtlocalsheet) '第i次获取输出值
istatus=datatable("status",dtlocalsheet) '第i次获取验证信息
Ifoutputvalue <>istatus Then '检查期望验证信息与实际信息是否一致,如不一致则报告错误
reporter.ReportEvent 1,"用户名验证","用户名正确性未进行验证,期望值为:"+istatus+",实际提示信息为:"+outputvalue
End If
datatable.GetSheet("Action1").setnextrow '取下一行数据
Next
[ 本帖最后由 hsjzfling 于 2008-2-28 11:31 编辑 ]
回复 2# 的帖子
对头把共用的部分提取出来 哈哈,搞定了。多谢楼上的,还是这里哥们够意思!
结贴。
[ 本帖最后由 森林一木 于 2008-2-28 13:25 编辑 ] 楼主应该用一个循环,二楼的兄弟已给出!学习了! 还要问一下二楼的兄弟:这个循环中的:
Browser("请输入用户名和密码").Page("请输入用户名和密码").Output CheckPoint("请输入用户名和密码")
是否有可能引起检查点不能通过的问题?
回复 2# 的帖子
:handshake 求救啊,我写的脚本跟二楼的大侠是一样的,可是运行的时候第一次到for语句后就停了,后面再run就继续,运行到【reporter.ReportEvent 1,"用户名验证","用户名正确性未进行验证,期望值为:"+istatus+",实际提示信息为:"+outputvalue】,到这边停止了提示“对象不支持此属性或方法: 'reporter.ReportEvent1'”,跳过后,还是不会自动读取表中的下一行数据。。。。请帮忙指导下啥问题? with 多用WITH,你会发现你会上瘾,优化+美观+直观+好习惯! 用With,或者用Set提取父对象:Dim inputcode '定义一个输入框,输入验证码
Dim outputvalue '定义一个参数,读取文本输出值
Dim istatus '定义一个验证信息值,存放预期校验信息
Set objPage = Browser("请输入用户名和密码").Page("请输入用户名和密码")
For i=1 To DataTable.GetSheet(dtLocalSheet).GetRowCount
objPage.WebEdit("UserName").Set DataTable("username", dtLocalSheet)
objPage.WebEdit("UserPwd").SetSecure DataTable("password", dtLocalSheet)
inputcode=inputbox("请输入验证码!") '弹出输入框,要求输入验证码
objPage.WebEdit("confirm").Set inputcode
objPage.WebButton("提交").Click
objPage.Output CheckPoint("请输入用户名和密码")
outputvalue=DataTable("outmsg",dtlocalsheet) '第i次获取输出值
istatus=datatable("status",dtlocalsheet) '第i次获取验证信息
Ifoutputvalue <>istatus Then '检查期望验证信息与实际信息是否一致,如不一致则报告错误
reporter.ReportEvent 1,"用户名验证","用户名正确性未进行验证,期望值为:"+istatus+",实际提示信息为:"+outputvalue
End If
datatable.GetSheet("Action1").setnextrow '取下一行数据
Next
页:
[1]