51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 10785|回复: 24
打印 上一主题 下一主题

[原创] QTP日志实践的几点总结

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-6-18 14:48:22 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
背景:在日常使用QTP中,因为有QC的存在,导致了QTP的察看结果的功能并不是用的很顺手,所以笔者在脱离开QC的情况下,在工作实践中总结了QTP的日志实现的一些方法。
1、生成txt文件。这是从开发那边得到的启示。
首先定义一个sub:
Public Sub WriteLineToFile(message)
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Dim fileSystemObj, fileSpec
Dim currentTime
currentDate = Date
currentTime = Time
testName = "log"
Set fileSystemObj = CreateObject("scrīpting.FileSystemObject")
fileSpec ="C:\" &testName& ".txt" 'change this according to your directory
If Not (fileSystemObj.FileExists(filespec)) Then  
Set logFile = fileSystemObj.CreateTextFile(fileSpec, ForWriting, True)  
logFile.WriteLine ("#######################################################################")  
logFile.WriteLine (currentDate & currentTime & " Test: " & environment.Value("TestName") )  
logFile.WriteLine ("#######################################################################")  
logFile.Close  
Set logFile = Nothing
End If
Set logFile = fileSystemObj.OpenTextFile(fileSpec, ForAppending, False, True)
logFile.WriteLine (currentDate & currentTime & " " & message)
logFile.Close
Set logFile = Nothing
Set fileSystemObj = Nothing
End Sub        
这样就能在txt中直接明了的看到自己的日志了。(个人感觉比看QTP的results好多了了,当然QTP自身的results还有错误图片等等,下面会介绍我的解决方案)

题外话:在实际应用中,我会在sub中增加一个flag,来标志不同的严重等级,在不同的情况下控制输出不一样类型的日志。
2、使用QTP自身的抓图功能
Public Function capture_desktop()
Dim datestamp
Dim filename
datestamp = Now()
filename = Environment("TestName")&"_"&datestamp&".png"
filename = Replace(filename,"/","")
filename = Replace(filename,":","")
filename = "C:\QTP_ScreenShots"&""&filename
Desktop.CaptureBitmap filename
Reporter.ReportEvent micFail,"image","<img src='" & filename & "'>"
End Function
该函数主要就是用到Desktop.CaptureBitmap的这个方法,把桌面的图片抓下来,这样比较自由的抓下任意时候桌面的图片,方便我们检查结果。

题外话:可以通过Function的返回值和上面提到的方法结合在一起的话,效果会更好的。
3、使用outlook发送邮件
Public Sub SendEmail(testname,strsubject,stremailcontent,attachment,strrecipient)
Set out = CreateObject("Outlook.Application")
Set mapi = out.GetNameSpace("MAPI")
Set email = out.CreateItem(0)
email.Recipients.Add(strrecipient)
email.Subject = strsubject
email.Body = stremailcontent
Set oAttachment = email.Attachments.Add(attachment)
email.Send
Set outlook = Nothing
Set mapi = Nothing
End Sub

题外话:假如我们把日志和抓图都结合在一起作为附件发出去的话,在自动化测试中后期会很有用,当然前提是不使用QC的情况下。

4、这是一个针对上面第3点如何把抓图放在一个doc中。
Set oWord = CreateObject("Word.Application")
oWord.DisplayAlerts = False
oWord.Visible = False
oWord.documents.open "testWordDoc.doc"
Set oDoc = oWord.ActiveDocument
Set oRange = oDoc.content
oRange.ParagraphFormat.Alignment = 0
oRange.insertafter vbcrlf '& " " & vbcrlf
oRange.collapse(0)
oRange.InlineShapes.AddPicture "ImagePath.bmp", False, True
oWord.ActiveDocument.Save
oWord.Application.Quit True
Set oRange = Nothing
Set oDoc = Nothing
Set oWord = Nothing
当然QTP和excel,word结合的不错的,所以在测试中灵活运动,效果会很好的。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

25#
发表于 2014-7-15 16:20:47 | 只看该作者
回复来收藏
回复 支持 反对

使用道具 举报

  • TA的每日心情
    无聊
    2018-5-15 18:25
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    24#
    发表于 2014-6-20 13:35:07 | 只看该作者
    收藏~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    23#
    发表于 2007-8-9 08:59:48 | 只看该作者
    收藏一下。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    22#
    发表于 2007-8-6 14:22:41 | 只看该作者
    原因已经找到了,是Set logFile = fileSystemObj.CreateTextFile(fileSpec, ForWriting, True)里多了个ForWriting,去掉就对了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    21#
    发表于 2007-8-6 11:52:05 | 只看该作者
    请教各位,我用下面的代码(参考1楼生成txt文件),在生成的log文件中怎么会有乱码,弄了半天也不知究竟是怎么回事
    出现乱码主要是在追加文件的时候发生的,哪位帮帮忙,可以直接把我的代码拷到QTP中,注意scripting这个单词中的i有没有错,有错改一下,然后直接运行即可,在此先谢谢了!
    1. Option Explicit
    2. Const ForReading = 1, ForWriting = 2, ForAppending = 8
    3. Dim fileSystemObj, fileSpec
    4. Dim currentTime, currentDate, logName, logFile, message
    5. currentDate = Date
    6. currentTime = Time
    7. logName = "log"
    8. Set fileSystemObj = CreateObject("scripting.FileSystemObject")
    9. fileSpec ="D:\" &logName& ".txt" 'change this according to your directory
    10. If not (fileSystemObj.FileExists(fileSpec)) Then  
    11. Set logFile = fileSystemObj.CreateTextFile(fileSpec, ForWriting, True)  
    12. logFile.WriteLine ("#######################################################################")
    13. logFile.WriteLine (currentDate & currentTime & " Test: " & environment.Value("TestName") )
    14. logFile.WriteLine ("#######################################################################")
    15. logFile.Close  
    16. Set logFile = Nothing
    17. End If
    18. Set logFile = fileSystemObj.OpenTextFile(fileSpec, ForAppending, True)
    19. message = "my message"
    20. logFile.WriteLine ("##############################################")
    21. logFile.WriteLine (message)
    22. logFile.Close
    23. Set logFile = Nothing
    24. Set fileSystemObj = Nothing
    复制代码
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    20#
    发表于 2007-7-2 10:59:54 | 只看该作者
    先收藏~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
    发表于 2007-6-26 16:53:44 | 只看该作者
    好东西 要学习,大家共享吗!!!
    不过,我怎么连QTP的使用都觉得困难呢,就不要说写脚本了sdlkfj7 sdlkfj7
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
    发表于 2007-6-26 11:32:05 | 只看该作者
    收藏了,日后将学习,呵呵sdlkfj3
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
    发表于 2007-6-25 13:28:49 | 只看该作者
    暂时还没学到这地步,先收藏了。sdlkfj3
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
    发表于 2007-6-23 16:57:06 | 只看该作者
    学习了
    真是好资料
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2007-6-23 16:10:30 | 只看该作者
    支持一下,好东西
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
    发表于 2007-6-22 00:06:20 | 只看该作者
    现在知道怎么去写入WORD文档了,但是有个问题,我想按测试报告的模板那样用QTP写入到word中去,但是测试报告模板中有表格,也有的字体大小也不一样,怎么去实现??还有帖子的范列中也只是写入一行,如果我要写入多行又怎么办呢?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2007-6-20 17:24:53 | 只看该作者
    楼上的,问题楼主照抄了,没有编辑啊!
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.1]测试小兵

    12#
    发表于 2007-6-20 15:28:15 | 只看该作者
    后面的人有起哄的嫌疑了,BZ有没有编辑别人贴子的权限?声明一下转载自17testing的就是了

    毕竟17testing 的这个贴:



    我没有看过原文sdlkfj7

    [ 本帖最后由 rivermen 于 2007-6-20 17:41 编辑 ]

    本帖子中包含更多资源

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

    x
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2007-6-20 14:26:48 | 只看该作者
    楼主不厚道了!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2007-6-20 13:03:11 | 只看该作者
    需要注明转载
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2007-6-20 12:59:47 | 只看该作者
    就是啊,是17testing的征文,转贴也说明出处啊。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2007-6-20 12:15:40 | 只看该作者
    原帖由 rivermen 于 2007-6-19 09:29 发表
    3,4有没有相关的参数解释,和使用范例?

    call SendEmail ("aa","邮件主题","邮件内容","c:\邮件的附件.txt","接收地址@hotmail.com")

    调用outlook的时候还有中断
    27653

    关于这个问题,我是下载了一个CLICK YES的工具,自动帮我点击的,
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2007-6-20 11:19:19 | 只看该作者
    9494sdlkfj4

    LZ盗版
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-24 13:34 , Processed in 0.085533 second(s), 29 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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