Dim oReporterManagerSet oReporterManager = New ReportManagerCall oReporterManager.StartReport("人人围登录1","C:\Report.xls","测试下而已1","sirrah1")Call oReporterManager.Report("Pass","Test_Case1","成功","成功","步骤详细1")Call oReporterManager.StartReport("人人围登录2","C:\Report.xls","测试下而已2","sirrah2")Call oReporterManager.Report("Fail","Test_Case2","成功","成功","步骤详细2") Class ReportManager Dim Str_CaseName '测试用例名Dim Str_FileName '报告存放地址Dim Str_CaseDesc '测试用例描述 Dim Str_Author '测试用例编写者Dim bln_Init '是否初始化 '-------------------------------------------------------------------------------'' 函数名称: StartReport' 函数说明: 开启生成测试报告机制' 参数说明: ' (1).sReportType:报告类型(目前仅支持Excel、Html)' (2).sCaseName:测试用例名称' (3).sFileName:报告输出的路径(文件在磁盘绝对路径位置)' (4).sCaseDesc:测试用例描述、说明' (5).sAuthor:测试用例设计者名称' 返回结果: 无 ' 调用方法:' StartReport("Html","TestLogin","C:\Report.html","TestLoginDesc","Sirrah")''------------------------------------------------------------------------------- Function StartReport(sCaseName,sFileName,sCaseDesc,sAuthor) '检查sFileName文件格式是否是合法的Excle文件格式 If Not CheckFile(sFileName) Then ReportEvent "","","对不起!您输入的文件:"&sFileName&"是不合法的Excle文件格式!" End If '判断当前格式的报告是否存在,如果存在则删除该文件 If IsFileExist(sFileName)And Not bln_Init Then DeleteFile(sFileName) CreateReport(sFileName) bln_Init = True End If Str_CaseName = sCaseName Str_FileName = sFileName Str_CaseDesc = sCaseDesc Str_Author = sAuthorEnd Function Function CreateReport(Str_FileName)' Set fso = CreateObject("scripting.FileSystemObject") ' Str_Folder=Left(Str_FileName,InStrRev(Str_FileName,"\")-1)' If Not fso.FolderExists(Str_Folder) Then' FSO.CreateFolder(Str_Folder)' End If ' Set fso = Nothing Set oExcel=CreateObject("Excel.Application") oExcel.Visible=false oExcel.DisplayAlerts = False oExcel.Workbooks.Add '设置第一个sheet样式 Set oSheet = oExcel.Sheets.Item(1) oExcel.Sheets.Item(1).Select With oSheet .Name = "测试概要" '将第一个sheet命名为"测试概要" .Range("B1").Value = "测试结果" '设置顶部第一行标题 .Range("B1:E1").Merge 'B1到C1合并居中 .Range("B1:E1").Interior.ColorIndex = 21 '单元格背景颜色 .Range("B1:E1").HorizontalAlignment = 3 '对齐方式:居中 .Range("B1:E1").Font.ColorIndex = 19 '设置字体的颜色 .Range("B1:E1").Font.Bold = True '设置字体加粗 .Range("B1:E1").Font.Size = 16 '设置字体的大小 '设置测试概要信息内容 .Range("B3").Value = "测试日期: " .Range("D3").Value = "测试开始时间: " .Range("B4").Value = "测试用时: " .Range("D4").Value = "测试结束时间: " .Range("B5").Value = "总用例数:" .Range("D5").Value = "总步骤数:" .Range("B6").Value = "成功用例数:" .Range("D6").Value = "失败用例数:" .Range("C3").Value = Date() .Range("E3").Value = Time() .Range("E3").NumberFormat = "hh:mm:ss" '设置时间的格式为24小时制 .Range("E4").Value = Time() .Range("E4").NumberFormat = "hh:mm:ss"'设置时间的格式为24小时制 .Range("C4").Value = "=RC[2]-R[-1]C[2]" '结束时间减去开始时间 .Range("C4").NumberFormat = "hh:mm:ss" .Range("C5").Value = "0" .Range("E5").Value = "0" .Range("C6").Value = "0" .Range("E6").Value = "0" '设置单元格四周边框 .Range("B3:E6").Borders(1).LineStyle = 1 .Range("B3:E6").Borders(2).LineStyle = 1 .Range("B3:E6").Borders(3).LineStyle = 1 .Range("B3:E6").Borders(4).LineStyle = 1 '设置背景色和字体样式 .Range("B3:E6").Font.Bold = True .Range("B3:E6").Font.Size = 10 .Range("B3:B6").Interior.ColorIndex = 50 .Range("B3:B6").Font.ColorIndex = 19 .Range("D3:D6").Interior.ColorIndex = 50 .Range("D3:D6").Font.ColorIndex = 19 .Range("C3:C6").Interior.ColorIndex = 15 .Range("C3:C6").HorizontalAlignment = 3 .Range("C3:C5").Font.ColorIndex = 25 .Range("C6:C6").Font.ColorIndex = 10 .Range("E3:E6").Interior.ColorIndex = 15 .Range("E3:E6").HorizontalAlignment = 3 .Range("E3:E5").Font.ColorIndex = 25 .Range("E6:E6").Font.ColorIndex = 3 '设置测试用例区域标题 .Range("B10").Value = "用例名" .Range("C10").Value = "测试结果" .Range("D10").Value = "用例步骤数" .Range("E10").Value = "用例描述" .Range("F10").Value = "设计者" .Range("G11").Value = "*点击用例名查看详细的测试结果" '设置背景色和字体样式 .Range("B10:F10").Interior.ColorIndex = 21 .Range("B10:F10").HorizontalAlignment = 3 .Range("B10:F10").Font.ColorIndex = 19 .Range("B10:F10").Font.Bold = True .Range("B10:F10").Font.Size = 14 '设置单元格四周边框 .Range("B10:F10").Borders(1).LineStyle = 1 .Range("B10:F10").Borders(2).LineStyle = 1 .Range("B10:F10").Borders(3).LineStyle = 1 .Range("B10:F10").Borders(4).LineStyle = 1 '设置单元格自动适应大小 .Columns("B:F").Autofit .Range("B11").Select oExcel.ActiveWindow.FreezePanes = True End With '设置第二个sheet样式 Set oSheet = oExcel.Sheets.Item(2) oExcel.Sheets.Item(2).Select With oSheet .Name = "测试结果" ''将第二个sheet命名为"测试结果" '标题栏每列的宽度 .Columns("B:B").ColumnWidth = 20 .Columns("C:C").ColumnWidth = 15 .Columns("D:D").ColumnWidth = 25 .Columns("E:E").ColumnWidth = 25 .Columns("F:F").ColumnWidth = 25 .Columns("B:F").HorizontalAlignment = 2 '对齐方式左对齐 .Columns("B:F").WrapText = True '设置标题栏名称 .Range("B1").Value = "步骤名" .Range("C1").Value = "测试结果" .Range("D1").Value = "预期结果" .Range("E1").Value = "实际结果" .Range("F1").Value = "结果描述" '设置标题栏字体样式 .Range("B1:F1").Interior.ColorIndex = 21 .Range("B1:F1").Font.ColorIndex = 19 .Range("B1:F1").Font.Bold = True .Range("B1:F1").Font.Size = 16 '设置单元格四周边框 .Range("B1:F1").Borders(1).LineStyle = 1 .Range("B1:F1").Borders(2).LineStyle = 1 .Range("B1:F1").Borders(3).LineStyle = 1 .Range("B1:F1").Borders(4).LineStyle = 1 .Range("B2").Select oExcel.ActiveWindow.FreezePanes = True End With '删除多余的第三个sheet Set oSheet = oExcel.Sheets.Item(3) oExcel.Sheets.Item(3).delete oExcel.Sheets.Item(1).Select oExcel.ActiveWorkbook.saveas Str_FileName oExcel.Quit Set oSheet=Nothing Set oExcel=Nothing End Function '-------------------------------------------------------------------------------'' 函数名称: Report' 函数说明: 向报告中输入每个检查点结果' 参数说明: ' (1).sStatus:报告类型(目前仅支持Excel、Html)' (2).sStepName:测试用例名称' (3).sExpected:报告输出的路径(文件在磁盘绝对路径位置)' (4).sActual:测试用例描述、说明' (5).sDetails:测试用例设计者名称' 返回结果: 无 ' 调用方法:' Report("Pass","Test_Case1","成功","成功","步骤详细")''-------------------------------------------------------------------------------Function Report(sStatus,sStepName,sExpected,sActual,sDetails) Dim oWorkBook Dim oSheet Dim Row, TCRow, NewTC Set oExcel=CreateObject("Excel.Application") Set oWorkBook = oExcel.Workbooks.Open (Str_FileName) Set oSheet = oExcel.Sheets("测试概要") oExcel.Sheets("测试概要").Select With oSheet Row = .Range("E5").Value + 2*.Range("C5").Value + 2 '获取当前测试步骤行 TCRow = .Range("C5").Value + 11 NewTC = False 'Check if it is a new Tetstcase If oSheet.Cells(TCRow - 1, 2).Value <> Str_CaseName Then .Cells(TCRow, 2).Value = Str_CaseName oExcel.ActiveSheet.Hyperlinks.Add oSheet.Cells(TCRow, 2), "", "测试结果!B" & Row+1, Str_CaseName .Cells(TCRow, 3).Value = sStatus .Cells(TCRow, 5).Value = Str_CaseDesc .Cells(TCRow, 6).Value = Str_Author Select Case sStatus Case "Fail" .Range("E6").Value=.Range("E6").Value+1 .Range("C" & TCRow).Font.ColorIndex = 3 Case "Pass" .Range("C6").Value=.Range("C6").Value+1 .Range("C" & TCRow).Font.ColorIndex = 10 End Select .Cells(TCRow, 4).Value = 1 NewTC = True .Range("C5").Value = .Range("C5").Value + 1 'Set the Borders for the Result Header .Range("B" & TCRow & ":F" & TCRow).Borders(1).LineStyle = 1 .Range("B" & TCRow & ":F" & TCRow).Borders(2).LineStyle = 1 .Range("B" & TCRow & ":F" & TCRow).Borders(3).LineStyle = 1 .Range("B" & TCRow & ":F" & TCRow).Borders(4).LineStyle = 1 'Set color and Fonts for the Header .Range("B" & TCRow & ":F" & TCRow).Interior.ColorIndex = 19 .Range("B" & TCRow & ":D" & TCRow).HorizontalAlignment = 3 .Range("F" & TCRow & ":F" & TCRow).HorizontalAlignment = 3 .Range("B" & TCRow).Font.ColorIndex = 53 .Range("B" & TCRow & ":F" & TCRow).Font.Bold = True .Range("B" & TCRow & ":F" & TCRow).Font.Size=10 .Range("B" & TCRow & ":F" & TCRow).WrapText = True .Range("E" & TCRow).Font.ColorIndex=23 Else .Range("D" & TCRow-1).Value = .Range("D" & TCRow-1).Value + 1 End If If (Not NewTC) And .Cells(TCRow-1, 3).Value="Pass" And(sStatus = "Fail") Then .Range("E6").Value=.Range("E6").Value+1 .Range("C6").Value=.Range("C6").Value-1 .Cells(TCRow-1, 3).Value = "Fail" .Range("C" & TCRow-1).Font.ColorIndex = 3 End If .Range("E5").Value = .Range("E5").Value + 1 'Update the End Time .Range("E4").Value = Time() 'Set Column width .Columns("B:E").Autofit End With 'Select the Result Sheet Set oSheet = oExcel.Sheets("测试结果") oExcel.Sheets("测试结果").Select With oSheet 'Enter the Result If NewTC Then .Range("B" & Row & ":F" & Row).Interior.ColorIndex = 2 .Range("B" & Row & ":F" & Row).Merge Row = Row + 1 .Range("B" & Row & ":F" & Row).Merge .Range("B" & Row).Value ="测试用例名:"&VbTab&Str_CaseName 'Set color and Fonts for the Header .Range("B" & Row & ":F" & Row).Interior.ColorIndex = 47 .Range("B" & Row & ":F" & Row).Font.ColorIndex = 19 .Range("B" & Row & ":F" & Row).Font.Bold = True .Range("B" & Row & ":F" & Row).Font.Size = 14 Row = Row + 1 End If .Range("B" & Row).Value = sStepName .Range("C" & Row).Value = sStatus .Range("C" & Row).Font.Bold = True Select Case sStatus Case "Pass" .Range("C" & Row).Font.ColorIndex = 10 Case "Fail" .Range("B" & Row & ":F" & Row).Font.ColorIndex = 3 End Select .Range("C" & Row).Font.Bold = True .Range("D" & Row).Value = sExpected .Range("E" & Row).Value = sActual .Range("F" & Row).Value = sDetails 'Set the Borders .Range("B" & Row & ":F" & Row).Borders(1).LineStyle = 1 .Range("B" & Row & ":F" & Row).Borders(2).LineStyle = 1 .Range("B" & Row & ":F" & Row).Borders(3).LineStyle = 1 .Range("B" & Row & ":F" & Row).Borders(4).LineStyle = 1 .Range("B" & Row & ":F" & Row).VerticalAlignment = -4160 .Range("B" & Row & ":F" & Row).Font.Size = 10 End With oExcel.Sheets("测试概要").Select oWorkBook.Save oExcel.Quit Set oSheet=Nothing Set oExcel=Nothing Set oWorkBook = Nothing End Function '-------------------------------------------------------------------------------'' 函数名称: CheckFile' 函数说明: 检查文件格式是否符合报告支持的格式' 参数说明: ' (1).sFileName:报告类型(目前仅支持Excel、Html)' 返回结果: boolean,是否是合法的文件格式 ' 调用方法:' CheckFile("c:\Test.Html")''-------------------------------------------------------------------------------Function CheckFile(sFileName) 'sSuffix 获取文件的后缀名 sSuffix=Right(sFileName,Len(sFileName)-InStrRev(sFileName,".")) If LCase(sSuffix) = "xls" Or LCase(sSuffix) = "xlsx" Then CheckFile = True End If End Function '-------------------------------------------------------------------------------'' 函数名称: ReportEvent' 函数说明: 输出报告信息' 参数说明: ' (1).bln_Status:报告类型(目前仅支持Excel、Html)' (2).obj_Type:报告类型(目前仅支持Excel、Html)' (3).str_Text:报告类型(目前仅支持Excel、Html)' 返回结果: 无' 调用方法:' ReportEvent "","","对不起!您输入的文件:"&sFileName&"是不合法的Excle文件格式!"''-------------------------------------------------------------------------------Function ReportEvent(bln_Status,obj_Type,str_Text) 'Reporter.Filter = rtEnableAll 'Reporter.ReportEvent status, objtype, text 'DetailLogPrint objtype&":"&VBTab&text&"【"& status &"】" 'Reporter.Filter = rfDisableAll 'MsgBox str_TextEnd Function '-------------------------------------------------------------------------------'' 函数名称: IsFileExist' 函数说明: 检查文件是否存在' 参数说明: ' (1).sFile:文件路径' 返回结果: boolean,文件夹是否存在 ' 调用方法:' CheckFile("c:\Test.Html")''-------------------------------------------------------------------------------Function IsFileExist(sFile) Set fso = CreateObject("scripting.FileSystemObject") IsFileExist = fso.FileExists(sFile)End Function '-------------------------------------------------------------------------------'' 函数名称: DeleteFile' 函数说明: 删除文件' 参数说明: ' (1).sFile:文件路径' 返回结果: 无 ' 调用方法:' DeleteFile("c:\Test.Html")''-------------------------------------------------------------------------------Function DeleteFile(sFile) Set fso = CreateObject("scripting.FileSystemObject") fso.DeleteFile(sFile)End Function End Class
详细解决方案
QTP简略框架之EXCEL报表
热度:178 发布时间:2016-05-05 07:37:42.0
相关解决方案
- 导出 Excel 资料怎样命名
- word excel pdf在ie浏览器中打开,该如何解决
- 在浏览器中展示word,excel.ppt,pdf等各种文件
- POI 处置 Excel,读取Excel中的格式 如表格框,背景色
- jxls 怎么导出图片到 excel 中
- poi excel 如何合并单元格?
- 用Java EXCEL API 是否能从Excel中导出表格,该如何处理
- java excel 問題 求大神 速解解决方案
- java 处理 excel 相关有关问题
- 求Microsoft.Office.Interop.Excel.dll 11.0.0.0解决方法
- Microsoft.Office.Interop.Excel.dll 导出的文件版本的有关问题
- VC 2010 怎么 操作 excel 了
- 小弟我用水晶报表9新建一个报表,采用PULL模式,在创建新的连接中选用access/Excel(DAO),选择数据库之后,总是弹出对话框说登录失败
- [Crystal Reports]在ASP.net web中导出 有关问题[Excel、Word、PDF]
- Excel 图表解决方法
- asp.net 导出 包孕样式的 excel
- 使用FlashPrinter将word,excel,pdf转换成swf失败的有关问题
- DataSet 读写 Excel.该怎么处理
- excel 导入数据到sql。就出有关问题了
- asp.net 导出(上载)Excel xp、win7 兼容
- .net 操作office(excel、word)咋搞?解决方法
- 怎的把Microsoft.Office.Interop.Excel.ApplicationClass excel创建的文件保存到数据流中
- asp.net上载并保存 excel 格式表格数据
- 64位操作系统能否使用 Microsoft.ACE.OLEDB.12.0 查询2003及以上的 Excel
- 后台下传文档,不限类型(doc,excel,txt都可以),前台上载的时候转换为PDF
- 高分分提问,excel 导出,提示CSS丢失有关问题
- 怎么实现在线显示word,excel,pdf,而不允许下载
- 怎么将gridview中的图片导出到word/excel?现在导出了其他数据列就差图片列了了
- 关于“Microsoft.Office.Interop.Excel.dll”的警告解决办法
- Excel 导入到DataSet,该如何处理