记录阿里巴巴QA架构组成长点滴。2008年关键词为效率,技术,影响力!QA/测试架构师定义:开发和设计测试框架测试库;纵横全局的考虑产品的功能,设计复杂的测试系统;负责研发某一项特定的测试技术;为公司考虑如何提高测试效率。领导公司测试技术的发展和测试策略上的方向,关注整个公司的测试部门的问题,前瞻性的考虑未来的版本的测试策略和技术。测试架构师计划/设计测试平台,关注着产品的测试过程,提供咨询服务,影响到公司内的测试机构测试社区,以及开发机构等,对产品各个方面施加深远而正确的影响,最终提高整体软件质量。

excel对象池

上一篇 / 下一篇  2008-05-15 12:36:37 / 个人分类:自动化测试框架与实现

   by jiale 

   自动化框架遇到了脚本执行时间长的问题,也就有了性能优化的需求,我们分析了影响性能的几个方面,其中一个是由于我们框架数据池是使用excel实现,每次读写数据池参数都要打开关闭excel.exe,打开excel.exe的时间就需要1-2秒,大大的影响性能,因此我们准备引入excel对象池,相同的excel文件只打开一次,打开后一直驻留在内存中,直到完成全部对该excel文件读写后关闭,这样读写数据池参数时不做打开关闭excel的动作,而改为读取excel对象池,打开关闭excel都有对象池方法来完成,

   对象池方法:

一、从对象池获取excel对象:在对象池中查找是否存在该excel文件excelworkbook对象,存在则返回excelworkbook对象,不存在则打开文件后返excelworkbook对象

Function xlsGetPoolWorkbook(path)
 Dim i
 Dim oTempWorkBook
 If IsEmpty(oPoolExcelApp) Then
  Set ōPoolExcelApp = xlsCreateExcel()
 End If
 '对象池中存在则返回
 For i = 0 To iPoolMaxNumber
  If sPoolFilePath(i) = path Then
   Set xlsGetPoolWorkbook = oPoolWorkBook(i)
   Exit Function
  End If
 Next
 '对象池中不存在则打开
 On Error Resume Next 
 Set ōTempWorkBook = xlsOpenWorkbook(oPoolExcelApp,path)
 If Err.Number <> 0 Then
  Set xlsGetPoolWorkbook = nothing
 Else
  iPoolMaxNumber = iPoolMaxNumber + 1
  ReDim oPoolWorkBook(iPoolMaxNumber)
  ReDim sPoolFilePath(iPoolMaxNumber)
  Set oPoolWorkBook(iPoolMaxNumber) = oTempWorkBook
  sPoolFilePath(iPoolMaxNumber) = path
  oTempWorkBook = nothing
  Set xlsGetPoolWorkbook = oPoolWorkBook(iPoolMaxNumber)
 End If
End Function

二、释放对象池中某个excel对象

Function xlsFreePoolWorkbook(path)
 Dim i
 If IsEmpty(oPoolExcelApp) Then
  xlsFreePoolWorkbook = 1
  Exit Function
 End If
 '对象池中存在则释放
 For i = 0 To iPoolMaxNumber
  If sPoolFilePath(i) = path Then
   Set oPoolWorkBook(i) = nothing
   xlsFreePoolWorkbook = 1
   Exit Function
  End If
 Next
End Function

三、释放对象池中所有excel对象

Function xlsFreeAllPoolWorkbook()
 Dim i
 If IsEmpty(oPoolExcelApp) Then
  xlsFreeAllPoolWorkbook = 1
  Exit Function
 End If
 For i = 0 To iPoolMaxNumber
  Set oPoolWorkBook(i) = nothing
  sPoolFilePath(i) = ""
 Next
 iPoolMaxNumber = -1
 oPoolExcelApp.quit
 Set ōPoolExcelApp = nothing
 xlsFreeAllPoolWorkbook = 1
End Function


TAG: 自动化测试框架与实现

 

评分:0

我来说两句

日历

« 2022-06-23  
   1234
567891011
12131415161718
19202122232425
2627282930  

数据统计

  • 访问量: 120991
  • 日志数: 163
  • 文件数: 1
  • 建立时间: 2008-02-26
  • 更新时间: 2008-12-10

RSS订阅

Open Toolbar