QTP对EXCEL操作函数

' *********************************************************************************************
'''''''''参数: ReportExcelFile 报告输出的路径,每次QTP运行后的测试结果路径
''''''调用方法:
'' ReportExcelFileSavePath
' *********************************************************************************************
Public ReportExcelFileSavePath
ReportExcelFileSavePath = Environment ("TestDir")& "\" & "测试结果-" & Date & "-"& Hour(Now) & Minute(Now)& Second(Now) & ".xlsx"
' *********************************************************************************************

' ******************************************************************************检查点结果输出***************************************************************************************************
'''以下这个段落是对检查点进行判断,正确输出Pass,错误输出红色的Fail,
'''调用方法:
''CheckPointResultOutputToExcel 检查点名称,CheckPointResult
''注意:1. 在前面的CheckPoint前面插入:CheckPointResult=
''2.检查点的最后Check CheckPoint("打开首页") 中改为:Check (CheckPoint("打开首页"))
' *************************************************************************' *************************************************************************
Function CheckPointResultOutputToExcel (CheckPointName,CheckPointResult)
'On Error Resume Next
Set ExcelSheet1 = ExcelApp.Worksheets.Item("测试结果")
Row= ExcelSheet1.Cells(10,5) ''使用Excel文档数据来记录行数
Column=2
RunTestCaseAmount=ExcelSheet1.Cells(7,3)
RunTestCaseAmount=RunTestCaseAmount+1
ExcelSheet1.Cells(7,3) = RunTestCaseAmount
If CheckPointResult = "True" Then
ExcelSheet1.Cells(Row, Column) = RunTestCaseAmount
''''设置用例编号居中
ExcelSheet1.Range("B"&Row&":B"&Row).HorizontalAlignment = 3 ''4’右边对齐 3 '居中 2 '左边对齐
column=column+1
ExcelSheet1.Cells( Row, Column) = CheckPointName
column=column+1
ExcelSheet1.Cells( Row, Column) = "Pass"
''''设置测试结果居中
ExcelSheet1.Range("D"&Row&":D"&Row).HorizontalAlignment = 3 ''4’右边对齐 3 '居中 2 '左边对齐
''设置Pass单元格颜色为绿色
ExcelSheet1.Cells(Row, Column).Font.Color = vbGreen
PassAmountOfTestCase = ExcelSheet1.Cells( 8, 3)
ExcelSheet1.Cells( 8, 3) = PassAmountOfTestCase+1
Elseif CheckPointResult = "False" then
ExcelSheet1.Cells(Row, Column) = RunTestCaseAmount
''''设置用例编号居中
ExcelSheet1.Range("B"&Row&":B"&Row).HorizontalAlignment = 3 ''4’右边对齐 3 '居中 2 '左边对齐
column=column+1
ExcelSheet1.Cells( Row, Column) = CheckPointName
column=column+1
ExcelSheet1.Cells( Row, Column) = "Fail"
''''设置测试结果居中
ExcelSheet1.Range("D"&Row&":D"&Row).HorizontalAlignment = 3 ''4’右边对齐 3 '居中 2 '左边对齐
''设置Fail单元格颜色为红色
ExcelSheet1.Cells(Row, Column).Font.Color = vbRed
FailAmountOfTestCase = ExcelSheet1.Cells( 9, 3)
ExcelSheet1.Cells( 9, 3) = FailAmountOfTestCase+1
Else
ExcelSheet1.Cells(Row, Column) = RunTestCaseAmount
''''设置用例编号居中
ExcelSheet1.Range("B"&Row&":B"&Row).HorizontalAlignment = 3 ''4’右边对齐 3 '居中 2 '左边对齐
column=column+1
ExcelSheet1.Cells( Row, Column) = CheckPointName
column=column+1
ExcelSheet1.Cells( Row, Column) = CheckPointResult
''''设置测试结果居中
ExcelSheet1.Range("D"&Row&":D"&Row).HorizontalAlignment = 3 ''4’右边对齐 3 '居中 2 '左边对齐
'' ''设置忽略单元格颜色为绿色
'' ExcelSheet1.Cells(Row, Column).Font.Color = vbGreen
NoActionAmountOfTestCase = ExcelSheet1.Cells( 10, 3)
ExcelSheet1.Cells( 10, 3) = NoActionAmountOfTestCase+1
End If

'设置测试结果的边界
ExcelSheet1.Range("B"&Row&":F"&Row).Borders(1).LineStyle = 1
ExcelSheet1.Range("B"&Row&":F"&Row).Borders(2).LineStyle = 1
ExcelSheet1.Range("B"&Row&":F"&Row).Borders(3).LineStyle = 1
ExcelSheet1.Range("B"&Row&":F"&Row).Borders(4).LineStyle = 1

ExcelApp.ActiveWorkbook.Save
CheckPointResult="False" ''防止没有进行CheckPointResult值的获取
'''让行数增加1,以备下一条测试用例获取当前行使用
Row=Row+1
ExcelSheet1.Cells(10,5) = Row
'''填入结束时间用来计算脚本执行时间,插入后会自动进行计算执行时间
ExcelSheet1.Cells(4,3) = Time
End Function
'''''****************************************************************************************************************************************************************
'''''****************************************建立一个测试结果Excel并打印出格式**********************************************************************
'''本函数用于为测试结果建立一个Excel并将该Excel设置相关格式
'''调用方法:(在创建QTP脚本时可以不需要直接调用本函数,可以调用 StartQTP()函数)
''CreatAExcelAndPrintTheForm()
' *************************************************************************' ***************************************************************************************
Function CreatAExcelAndPrintTheForm()
On Error Resume Next

''''创建一个Excel文件
Set ExcelApp = CreateObject("Excel.Application")
ExcelApp.Visible = True
ExcelApp.Workbooks.Add
''''保存测试结果文件
ExcelApp.ActiveWorkbook.SaveAs ReportExcelFileSavePath
''''选定一个Excel表
Set ExcelSheet1 = ExcelApp.Sheets.Item(1)
ExcelApp.Sheets.Item(1).Select
''''更改当前sheet的名字
ExcelSheet1.Name = "测试结果"

''''设置列宽
ExcelSheet1.Columns("A:A").ColumnWidth = 4
ExcelSheet1.Columns("B:B").ColumnWidth = 11
ExcelSheet1.Columns("C:C").ColumnWidth = 30
ExcelSheet1.Columns("D:D").ColumnWidth = 14
ExcelSheet1.Columns("E:E").ColumnWidth = 30
ExcelSheet1.Columns("F:F").ColumnWidth = 40

'''设置单元格为自动换行
ExcelApp.Range("A:G").WrapText = TRUE

'设置显示区域的字体类型和大小
ExcelSheet1.Range("A:F").Font.Name = "Arial"
ExcelSheet1.Range("A:F").Font.Size = 10

'为测试标题设置格式
ExcelSheet1.Range("B1:E1").Interior.ColorIndex = 53 ''单元格底色
ExcelSheet1.Range("B1:E1").Font.ColorIndex = 19
ExcelSheet1.Range("B1:E1").Font.Bold = True
ExcelSheet1.Range("B1:E1").Merge ''''合并单元格

'设置测试参数cell的边界
ExcelSheet1.Range("B2:B10").HorizontalAlignment = 4 ''4’右边对齐 3 '居中 2 '左边对齐
ExcelSheet1.Range("C2:C10").HorizontalAlignment = 2 ''4’右边对齐 3 '居中 2 '左边对齐
ExcelSheet1.Range("D2:D10").HorizontalAlignment = 4 ''4’右边对齐 3 '居中 2 '左边对齐
ExcelSheet1.Range("E2:E10").HorizontalAlignment = 2 ''4’右边对齐 3 '居中 2 '左边对齐
ExcelSheet1.Range("B2:E10").Borders(1).LineStyle = 1
ExcelSheet1.Range("B2:E10").Borders(2).LineStyle = 1
ExcelSheet1.Range("B2:E10").Borders(3).LineStyle = 1
ExcelSheet1.Range("B2:E10").Borders(4).LineStyle = 1

'设置测试参数Cell的样式
ExcelSheet1.Range("B2:E10").Interior.ColorIndex = 40 ''单元格底色
ExcelSheet1.Range("B2:E10").Font.ColorIndex = 7 '‘字体颜色
ExcelSheet1.Range("B2:B10").Font.ColorIndex = 12 '‘字体颜色
ExcelSheet1.Range("D2:D10").Font.ColorIndex = 12 '‘字体颜色
ExcelSheet1.Range("B2:E10").Font.Bold = True ''加粗

'为Result Summery设置格式
ExcelSheet1.Range("B11:F11").Interior.ColorIndex = 53
ExcelSheet1.Range("B11:F11").Font.ColorIndex = 19
ExcelSheet1.Range("B11:F11").Font.Bold = True
ExcelSheet1.Range("B11:G11").HorizontalAlignment = 3 ''4’右边对齐 3 '居中 2 '左边对齐

'设置Result Summery的边界
ExcelSheet1.Range("B11:F11").Borders(1).LineStyle = 1
ExcelSheet1.Range("B11:F11").Borders(2).LineStyle = 1
ExcelSheet1.Range("B11:F11").Borders(3).LineStyle = 1
ExcelSheet1.Range("B11:F11").Borders(4).LineStyle = 1

'''对单元格进行冻结
ExcelSheet1.Range("B12").Select
ExcelApp.ActiveWindow.FreezePanes = True

''''给单元格赋值
ExcelSheet1.Range("B1").Value = "可得网自动化测试结果"
ExcelSheet1.Cells(2,2) = "测试日期:"
ExcelSheet1.Cells(2,3) = Date
ExcelSheet1.Cells(3,2) = "开始时间:"
ExcelSheet1.Cells(3,3) = Time
ExcelSheet1.Cells(4,2) = "结束时间:"
ExcelSheet1.Cells(5,2) = "执行时长:"
ExcelSheet1.Range("C5").NumberFormat = "[h]:mm:ss;@"
ExcelSheet1.Cells(6,2) = "测试机器:"
ExcelSheet1.Range("C6").Value =GetIP()
ExcelSheet1.Cells(7,2) = "运行用例数:"
ExcelSheet1.Cells(7,3) = 0
ExcelSheet1.Cells(8,2) = "通过用例数:"
ExcelSheet1.Cells(8,3) = 0
ExcelSheet1.Cells(9,2) = "失败用例数:"
ExcelSheet1.Cells(9,3) = 0
ExcelSheet1.Cells(10,2) = "忽略用例数:"
ExcelSheet1.Cells(10,3) = 0
ExcelSheet1.Cells(2,4) = "测试环境:"
ExcelSheet1.Cells(3,4) = "SQL 地址:"
ExcelSheet1.Cells(4,4) = "SQL用户名:"
ExcelSheet1.Cells(5,4) = "SQL 密码:"
ExcelSheet1.Cells(6,4) = "数据库名:"
ExcelSheet1.Cells(10,4) = "当前行:"
ExcelSheet1.Cells(10,5) = 12
ExcelSheet1.Cells(2,5) = "Http://192.168.1.81:8085"
ExcelSheet1.Cells(3,5) = "192.168.1.81"
ExcelSheet1.Cells(4,5) = "test"
ExcelSheet1.Cells(5,5) = "t#@!$%"
ExcelSheet1.Cells(6,5) = "test.keede"
ExcelSheet1.Cells(11,2) = "用例编号"
ExcelSheet1.Cells(11,3) ="测试用例标题"
ExcelSheet1.Cells(11,4) ="测试结果"
ExcelSheet1.Cells(11,5) ="测试数据"
ExcelSheet1.Cells(11,6) ="备注"

'''填入结束时间
ExcelSheet1.Cells(4,3) = Time
'''计算脚本运行时间
ExcelSheet1.Range("C5").Value = "=R[-1]C-R[-2]C"

msgbox("请确认测试结果文档中的“测试环境”,“SQL地址”,“SQL用户名”,“SQL密码”,“数据库名” 5个参数是否正确,确认无误后点击确定按钮开始运行测试脚本!如果错误,请直接在EXCEL中更改!")
End Function
'''''*******************************************************************************************************************************************************************************
''''******************************************************************设置测试结果测试数据函数*****************************************************
'''本函数用于对测试用例进行添加测试用例所用的测试数据,一个测试用例可以添加多个测试数据,即可以多次使用本函数
'''调用方法:
''SetTestResultComments 备注标题,备注内容
' *************************************************************************' *************************************************************************
Function SetTestData(DataTitle,DataValue)
On Error Resume Next
Set ExcelSheet1 = ExcelApp.Worksheets.Item("测试结果")
Row= ExcelSheet1.Cells(10,5)
TestData = ExcelSheet1.Cells(Row,5)
''''防止一个测试用例中多次使用测试数据函数,先取出测试数据中的值,将需要添加的新的值添加在后面
If TestData = "" then
TestData =DataTitle&": "&DataValue
else
''没找到如何对Excel单元格进行换行,现在使用空格来生成换行
TheValueOfBlankSpace = " "
TestData = TestData&TheValueOfBlankSpace&DataTitle&":"&DataValue
End If
ExcelSheet1.Cells(Row,5) = TestData
End Function
'''''*****************************************************************************
'''''******************************************************************设置测试结果备注函数*****************************************************
'''本函数用于对测试用例进行添加备注使用,一个测试用例可以添加多个备注,即可以多次使用本函数
'''调用方法:
''SetTestResultComments 备注标题,备注内容
' *************************************************************************' *************************************************************************
Function SetTestResultComments(CommentsTitle,CommentsValue)
On Error Resume Next
Set ExcelSheet1 = ExcelApp.Worksheets.Item("测试结果")
Row= ExcelSheet1.Cells(10,5)
Comments = ExcelSheet1.Cells(Row,6)
''''防止一个测试用例中多次使用备注函数,先取出备注的值,将需要添加的新的值添加在后面
If Comments = "" then
Comments=CommentsTitle&": "&CommentsValue
else
''没找到如何对Excel单元格进行换行,现在使用空格来生成换行
TheValueOfBlankSpace = " "
Comments=Comments&TheValueOfBlankSpace&CommentsTitle&":"&CommentsValue
End If
ExcelSheet1.Cells(Row,6) = Comments
End Function
'''''*****************************************************************************
'''''**********************************开始函数*******************************************
Function StartQTP()
CreatAExcelAndPrintTheForm()
End Function

'''''****************************************************************************
'''''***********************************结束函数******************************************
Function EndQTP()
On Error Resume Next
Set ExcelSheet1 = ExcelApp.Worksheets.Item("测试结果")
'''将当前行和行数置空,该值只用于脚本运行过程
' ExcelSheet1.Range("D10").Value = ""
' ExcelSheet1.Range("E10").Value = ""

'''填入结束时间用来计算脚本执行时间,插入后会自动进行计算执行时间
ExcelSheet1.Cells(4,3) = Time

'保存已经存在的Excel文档
ExcelApp.ActiveWorkbook.Save

''''释放参数
' ExcelApp.Quit
Set ExcelSheet1 = Nothing
Set ExcelApp = Nothing

End Function
'''''*****************************************************************************
'''''******************************************************************打开已经存在的Excel*****************************************************************
Function OpenExcel(ExcelPath)
Set ExcelApp = CreateObject("Excel.Application")
ExcelApp.Visible = True
Set objworkbook = ExcelApp.Workbooks.Open (ExcelPath)
' Set ExcelSheet1 = ExcelApp.Worksheets.Item("测试结果")
End Function
'''''*****************************************************************************'''''*****************************************************************************
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值