手把手教你TestComplete_配置嵌入脚本

来源:互联网 发布:ftp端口被占用 编辑:程序博客网 时间:2024/05/01 03:41

 

 

工作中遇到的一个场景;

 

先来看看文件内容:

 

全选√, 标题1,标题2,标题3,标题4,标题5,标题6,标题7

True,[zh]5682996,,,,,,,,,,,,

True,102591567375,,140.5,0,00,x

True,103746390600,,74.86,0,D01,y

 

 

需要进行预处理:

1.  只要第2行以后的内容,也就是第3、4行;

2.  只要第2、4、6、7列的内容;

3.  第6列需要进行处理,处理逻辑在这个文件来讲是确定的;

4.  如果换一个文件,读取的行列,需要处理的列的逻辑就无法确定了

 

 

分析:

如果只是读出指定的行列,这个不难,但是要对相应的列进行处理也不难,但是要把处理的逻辑也剥离出来,这种情况处理的比较少,其实也不难。

 

 

解决方法:

在VBS中有个函数叫做excute(“脚本”),可以直接执行vbs脚本的字符串,类似其他语言的eval。这个问题就简单了。

 

 

'处理文件,读出需要的行和列

 

Function FblndoFile(strIn,strRow,strCol,strD,strOut)

 

dim sFileCont

dim arrR

dim arrC

dim strRet

 

FblndoFile=False

 

'打开输入文件,读出内容到一个变量

 

  if not FblnFileExist(strIn) then

    Log.Warning(strIn & " 不存在")

    FblndoFile=False

    exit Function

  End If

 

  sFileCont=aqFile.ReadWholeTextFile(strIn,aqFile.ctUnicode)

 

  strRet=""

  arrPc=split(strCol,",")

  for i=clng(strRow)-1 to ubound(arrR)

    arrC=split(arrR(i),",")

    for j=0 to ubound(arrPc)

      Log.Message("strD:" & strD)

      Execute(strD)

      strRet=strRet & arrC(clng(arrPc(j))-1) & ","

    next

    strRet=left(strRet,len(strRet)-1) & vbcrlf

  next

 

  call aqFile.WriteToTextFile(strOut,strRet,aqFile.ctUnicode,False)

 

  FblndoFile=true

 

End Function

 

 

参考这个函数,就知道,行列包括预处理的逻辑都可以提前配置到文件里面了,看看调用方法:

 

strIn=Project.Path & "data\file2.txt"

strRow="3"

strCol="2,3,4,5,6,7,8,9,10,13,14"

strD=""

strOut=Project.Path & "data\file2.tmp.txt"

 

If FblndoFile(strIn,strRow,strCol,strD,strOut) then

   Showmessage("搞定!")

End if

 

 

小结:

 

逻辑放哪里一直是个问题,最初的时候放在代码里面,发现不方便配置;于是整理逻辑放进数据库,想改变就直接在数据库中进行配置;等用久了,发现数据库的配置越来越无法适应无穷复杂的业务逻辑,最后就会变得和我这个程序一样,写一个框架,把所有的逻辑扔到外面去,可以解决所有的业务逻辑配置问题,算是一个适应力非常强的解决方案了。

 

 

 

 

 

 

原创粉丝点击