多测师是一家拥有先进的教学理念,强大的师资团队,业内好评甚多的接口自动化测试培训机构!

17727591462

联系电话

您现在所在位置:接口自动化测试培训 > 新闻资讯

QTP日志实践的几点总结-自动化测试

更新时间:2022-06-02 09:12:59 作者:多测师 浏览:98

       背景:在日常使用QTP中,因为有QC的存在,导致了QTP的察看结果的功能并不是用的很顺手,所以笔者在脱离开QC的情况下,在工作实践中总结了QTP的日志实现的一些方法。

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结合的不错的,所以在测试中灵活运动,效果会很好的。

       以上内容为大家介绍了自动化测试中的QTP日志实践的几点总结,本文由多测师亲自撰写,希望对大家有所帮助。了解更多自动化测试相关知识:https://www.aichudan.com/xwzx/

联系电话

17727591462

返回顶部