QTP Practice - Account Checker

上一篇 / 下一篇  2009-09-19 15:16:50 / 个人分类:QTP

最近看了不少qtp的视频咯论坛的,但是光说不练是不行的,深知这个道理,却一直由于懒或者不想尝到失败的滋味,迟迟没有自己动手,一直只是观望。上次在meeting中听说一个同事做了一个Account Checker的脚本,想正好用来练习练习,估计也不会太难。于是正好今天在家,一大早9点就开始动手了,一直弄到12点半,555,我真是废啊!不过还是要纪念一下我那么认真的弄了3个多钟头的光辉历史,并且可以记录一下我从失败到成功的process ^_^
 
脚本一共2个action。
Action1:
用来做一些初始化工作,并且把account list的那个excel表格import到qtp里面的globalsheet中
' kill IE process 
Dim objServices, colobjServicesSet
WQL = "SELECT * FROM Win32_Process WHERE Name='IEXPLORE.EXE'"
Set bjServices = GetObject("WinMgmts:")
Set colobjServicesSet = objServices.ExecQuery(WQL)
For Each objSWbemObject In colobjServicesSet
objSWbemObject.Terminate
Next
'Set Start Page is blank
Dim WshShell
Set WshShell = CreateObject("WScript.Shell")
WshShell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\Start Page", "about:blank", "REG_SZ"
 
DataTable.ImportSheet "C:\test account.xls", "LAR", "Global"
这里是把test accout.xls的LAR这个sheet里的东东import到qtp里面的表里的global sheet里来。为了之后每行分别循环一次,还要在option的run里设置一下。
 
Action2:
'Launch IE
SystemUtil.Run "C:\Program Files\Internet Explorer\IEXPLORE.EXE","","","open"
Browser("Partnerportal-LAR -").Page("Page").Sync
'Navigate to REM GUI url
Browser("Partnerportal-LAR -").Navigate ("http://sppitg.austin.hp.com/portal/site/publicpartnerportal-lar/?lang=en&cc=PR")
Browser("Partnerportal-LAR -").Page("Partnerportal-LAR -").WebEdit("USER").Set DataTable("Login_ID", dtGlobalSheet)
Browser("Partnerportal-LAR -").Page("Partnerportal-LAR -").WebEdit("PASSWORD").Set DataTable("Password", dtGlobalSheet)
Browser("Partnerportal-LAR -").Page("Partnerportal-LAR -").WebButton("type:=submit").Click
这里用描述性编程是因为submit那个button有的是en,有的是其他国家语言,所以只能通过属性,不能通过表象的名字,不然会出错
If  Browser("Partnerportal-LAR -").Dialog("Security Alert").Exist(10) Then

这里用了个等待10秒,本来想等待2秒,但是发现这样就白弄了,因为他是从上面一条click语句执行之后等待10s,但事实上login本来就需要时间。10s之后也许还没login完,所以根本不会出来这个dlg,就白check了。
   reporter.ReportEvent 1, DataTable("Login_ID", dtGlobalSheet)&" login checker", "Fail."
   ElseIf Browser("title:=.*HP Partner Portal").Page("title:=.*HP Partner Portal").WebElement("innertext:=HP Partner Portal", "width:=170").Exist Then

这里用描述性编程也是为了本来想用页面最上面的sigh out链接来check登录成功,后来发现不同国家的language不一样,只能用现在这个元素了。
   reporter.ReportEvent 0, DataTable("Login_ID", dtGlobalSheet)&" login checker", "Pass."

这里的reporter可以对每个iteration都在result里有一项pass或者fail,以后可以经常用。
 Else
   eporter.ReportEvent 1, "login checker", "failed."
End If

 

2009.9.9

后来为了做的更好看些,我把excel里错误的account用红色标出来:

i = DataTable.GetCurrentRow
 oSheet.Rows(i+1).Font.Color = VBRed

论坛上还看到有其他做法:

http://bbs.51testing.com/thread-168363-1-1.html

设置单元格颜色的语句是:
xlsSheet.Cells(i,4).Interior.ColorIndex =3
网上有达人说设置行颜色的语句是:
xlSheet1.Range("A: D").Interior.ColorIndex = 6

还有个办法也不错:在Excel中录制一个宏(将A到D设置为红色),然后去看这个宏的代码 就知道怎么写了


TAG:

 

评分:0

我来说两句

我的栏目

日历

« 2024-04-30  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 27041
  • 日志数: 30
  • 建立时间: 2009-09-19
  • 更新时间: 2012-09-02

RSS订阅

Open Toolbar