51Testing软件测试论坛

标题: 【seagull1985-QTP】EXCEL测试报告生成二 [打印本页]

作者: seagull1985    时间: 2016-8-5 09:44
标题: 【seagull1985-QTP】EXCEL测试报告生成二

【seagull1985-QTP】EXCEL测试报告生成一      因为代码过长,导致贴子字符数过长,所以分开2个贴子发。

代码PART2     衔接代码PART1
  1. Public Sub Report (sStatus, sStepName,sExpected,sActual, sDetails)

  2. Dim TestcaseName
  3. Dim Row, TCRow, NewTC

  4. 'TestcaseName = Environment("ActionName") & " > Iteration (Test-Action) = " & Environment("TestIteration") & "-" & Environment("ActionIteration")
  5. TestcaseName = sStepName & " > Iteration (Test-Action) = " & Environment("TestIteration") & "-" & Environment("ActionIteration")

  6. 'Open the Result file
  7. ' Set objWorkBook = oEngine.Workbooks.Open (oSettings("File"))
  8. 'Select the Summery Sheet
  9. Set objSheet = oEngine.Sheets("Test_Summary")
  10. oEngine.Sheets("Test_Summary").Select


  11. With objSheet
  12. 'Note the Row No. on which to Report the result
  13. Row = .Range("C8").Value + 2*.Range("C7").Value + 2
  14. TCRow = .Range("C7").Value + 11
  15. NewTC = False
  16. .Range("F" & TCRow).Font.ColorIndex = 3
  17. .Range("E" & TCRow).Font.ColorIndex = 50
  18. .Range("G" & TCRow).Font.ColorIndex = 46


  19. 'Check if it is a new Tetstcase
  20. If objSheet.Cells(TCRow - 1, 2).Value <> TestcaseName Then
  21. .Cells(TCRow, 2).Value = TestcaseName
  22. oEngine.ActiveSheet.Hyperlinks.Add objSheet.Cells(TCRow, 2), "", "Test_Result!A" & Row+1, TestcaseName

  23. .Cells(TCRow, 3).Value = sStatus
  24. .Range("F" & TCRow).Value = "0"
  25. .Range("E" & TCRow).Value = "0"       
  26. .Range("G" & TCRow).Value = "0"       


  27. Select Case sStatus
  28. Case "Fail"
  29. .Range("C" & TCRow).Font.ColorIndex = 3       
  30. .Range("F" & TCRow).Value = "1"
  31. Case "Pass"
  32. .Range("C" & TCRow).Font.ColorIndex = 50       
  33. .Range("E" & TCRow).Value = "1"       
  34. Case "Warning"
  35. .Range("C" & TCRow).Font.ColorIndex = 46
  36. .Range("G" & TCRow).Value = "1"
  37. End Select


  38. 'The first step.
  39. .Cells(TCRow, 4).Value = 1 '(D,11)

  40. NewTC = True

  41. 'it is a new Testcase

  42. .Range("C7").Value = .Range("C7").Value + 1 'count the cases.

  43. 'Set the Borders for the Result Header
  44. .Range("B" & TCRow & ":G" & TCRow).Borders(1).LineStyle = 1
  45. .Range("B" & TCRow & ":G" & TCRow).Borders(2).LineStyle = 1
  46. .Range("B" & TCRow & ":G" & TCRow).Borders(3).LineStyle = 1
  47. .Range("B" & TCRow & ":G" & TCRow).Borders(4).LineStyle = 1
  48. 'Set color and Fonts for the Header
  49. .Range("B" & TCRow & ":G" & TCRow).Interior.ColorIndex = 2
  50. .Range("B" & TCRow).Font.ColorIndex = 23
  51. .Range("B" & TCRow & ":G" & TCRow).Font.Bold = True


  52. '====NOT A NEW CASE================================================================

  53. Else
  54. .Range("D" & TCRow-1).Value = .Range("D" & TCRow-1).Value + 1
  55. Select Case sStatus
  56. Case "Fail"       
  57. .Range("F" & TCRow-1).Value = .Range("F" & TCRow-1).Value +1
  58. Case "Pass"       
  59. .Range("E" & TCRow-1).Value = .Range("E" & TCRow-1).Value +1       
  60. Case "Warning"       
  61. .Range("G" & TCRow-1).Value = .Range("G" & TCRow-1).Value +1       
  62. End Select
  63. End If

  64. If (Not NewTC) And (sStatus = "Fail") Then
  65. .Cells(TCRow-1, 3).Value = "Fail"
  66. .Range("C" & TCRow-1).Font.ColorIndex = 3

  67. End If

  68. If (Not NewTC) And (sStatus = "Warning") Then

  69. If .Cells(TCRow-1, 3).Value = "Pass" Then
  70. .Cells(TCRow-1, 3).Value = "Warning"
  71. .Range("C" & TCRow-1).Font.ColorIndex = 46
  72. End If

  73. End If


  74. .Range("C8").Value = .Range("C8").Value + 1
  75. 'Update the End Time
  76. .Range("C5").Value = Time

  77. 'Set Column width
  78. .Columns("B:D").Select
  79. .Columns("B:D").Autofit
  80. End With

  81. 'Select the Result Sheet
  82. Set objSheet = oEngine.Sheets("Test_Result")
  83. oEngine.Sheets("Test_Result").Select
  84. With objSheet
  85. 'Enter the Result
  86. If NewTC Then
  87. .Range("A" & Row & ":E" & Row).Interior.ColorIndex = 37
  88. .Range("A" & Row & ":E" & Row).Merge
  89. Row = Row + 1
  90. .Range("A" & Row & ":E" & Row).Merge       
  91. .Range("A" & Row).Value = TestcaseName
  92. 'Set color and Fonts for the Header
  93. .Range("A" & Row & ":E" & Row).Interior.ColorIndex = 2
  94. .Range("A" & Row & ":E" & Row).Font.ColorIndex = 23
  95. .Range("A" & Row & ":E" & Row).Font.Bold = True
  96. Row = Row + 1
  97. End If
  98. .Range("A" & Row).Value = sStepName
  99. 'oEngine.Selection.ShapeRange.ScaleWidth 1.72, msoFalse, msoScaleFromTopLeft
  100. 'oEngine.Selection.ShapeRange.ScaleHeight 1.81, msoFalse, msoScaleFromTopLeft

  101. .Range("B" & Row).Value = sStatus
  102. .Range("B" & Row).Font.Bold = True       

  103. Select Case sStatus
  104. Case "Pass"
  105. .Range("A" & Row & ":E" & Row).Font.ColorIndex = 50

  106. Case "Fail"
  107. .Range("A" & Row & ":E" & Row).Font.ColorIndex = 3

  108. Case "Warning"
  109. .Range("A" & Row & ":E" & Row).Font.ColorIndex = 46

  110. End Select

  111. .Range("B" & Row).Font.Bold = True
  112. .Range("C" & Row).Value = sExpected
  113. .Range("D" & Row).Value = sActual
  114. .Range("E" & Row).Value = sDetails

  115. 'Set the Borders
  116. .Range("A" & Row & ":E" & Row).Borders(1).LineStyle = 1
  117. .Range("A" & Row & ":E" & Row).Borders(2).LineStyle = 1
  118. .Range("A" & Row & ":E" & Row).Borders(3).LineStyle = 1
  119. .Range("A" & Row & ":E" & Row).Borders(4).LineStyle = 1
  120. .Range("A" & Row & ":E" & Row).VerticalAlignment = -4160

  121. End With
  122. oEngine.Sheets("Test_Summary").Select
  123. oEngine.Sheets("Test_Summary").Range("B1").Select
  124. 'Save the Workbook
  125. objWorkBook.Save


  126. End Sub

  127. End Class

  128. Set oReporterManager = new excelreporterengine
复制代码







欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2