《軟體自動化測試成功之道》節選11 - 常用指令碼函式的封裝
《軟體自動化測試成功之道》節選11 - 常用指令碼函式的封裝
http://www.china-pub.com/196509
專案回顧>>>
2008-5-29
今天發現很多地方需要使用到字串的操作,而DelphiScipt的字串操作函式不大好用,因此有必要把常用的一些字串操作封裝成函式,已備呼叫。
(1) 替換字串
//.............................................................................
// 目的:替換字串
// 輸入引數:
// Str:待替換的字串
// StrTobeRep:需要被替換掉的字串
// StrRep:替換的字串
// 返回結果:替換後的字串
// 注意事項:
// 作者:陳能技
// 日期:2008-5-29
//.............................................................................
Function String_RePlace(Str,StrTobeRep,StrRep);
begin
Str := dotNET.System_Text.StringBuilder.zctor(Str);
Str := Str.RePlace_2(StrTobeRep,StrRep).ToString;
Result := Str;
end;
Procedure Test_String_RePlace;
Var Str : OleVariant;
begin
Str := String_RePlace('D:/Code/FileSelctionDialog/FileSelctionDialog/bin/Debug','D:','|桌面|我的電腦|本地磁碟 (D:)');
Log.Message(String_RePlace(Str,'/','|'));
end;
這裡使用的是.NET類庫中的StringBuilder物件,另外,也可以使用Utilities物件中的StringReplace來替換字串:
Procedure Test_String_RePlace_2;
Var Str : OleVariant;
begin
Str := Utilities.StringReplace('D:/Code/FileSelctionDialog/FileSelctionDialog/bin/Debug','D:','|桌面|我的電腦|本地磁碟 (D:)',1);
Log.Message(Utilities.StringReplace(Str,'/','|',1));
end;
其中StringReplace的第三個引數是一個標誌位,可以使用以下兩個值:
1:是否替換所有。如果沒有使用該值,則僅替換找到的第一個。
2:是否大小寫敏感。使用該值表示大小寫不敏感地匹配,不使用該值則表示大小寫敏感。
(2)分割字串
//.............................................................................
// 目的:分割字串
// 輸入引數:
// Str:待替換的字串
// Separator:分割符
// 返回結果:分割後的字串儲存在陣列並返回
// 注意事項:
// 作者:陳能技
// 日期:2008-5-29
//.............................................................................
Function String_Split(Str,Separator);
Var StringArray,Count ,I: OleVariant;
begin
StringArray := CreateVariantArray(0,0);
Count := BuiltIn.GetListCount(Str, Separator);
VarArrayRedim(StringArray,Count);
For I:=0 to Count - 1 do
begin
StringArray[I] := BuiltIn.GetListItem(Str , I , Separator);
end;
Result := StringArray;
end;
Procedure Test_String_Split;
Var StringArray,I : OleVariant;
begin
StringArray := String_Split('D:/Code/FileSelctionDialog/FileSelctionDialog/bin/Debug','/');
For I := 0 to VarArrayHighBound(StringArray,1)-1 do
begin
Log.Message(StringArray[I]);
end;
end;
(3)讀取部分字串
//.............................................................................
// 目的:讀取字串中的一部分
// 輸入引數:
// Str:待讀取的字串
// StartIndex:開始讀取的Index位置
// EndIndex:結束讀取的Index位置
// 返回結果:讀取到的部分字串
// 注意事項:
// 作者:陳能技
// 日期:2008-5-29
//.............................................................................
Function String_SubString(Str,StartIndex,EndIndex);
begin
Str := dotNET.System_Text.StringBuilder.zctor(Str).ToString;
Str := Str.SubString(StartIndex,EndIndex).ToString;
Result := Str;
end;
Procedure Test_String_SubString;
begin
Log.Message(String_SubString('1234567890',0,2));
end;
這裡使用的是.NET類庫中的StringBuilder物件的SubString函式,另外,也可以使用使用DelphiScript的Copy函式來讀取字串中的一部分:
// 使用DelphiScript的Copy函式來讀取字串中的一部分
Procedure Test_String_SubString_2;
var Str : OleVariant;
begin
Str:='1234567890';
Log.Message(Copy(Str,2,5));
Log.Message(Copy(Str,2, 20));
Log.Message(Copy(Str,-2,3));
Log.Message(Copy(Str,2,0));
end;
(4)查詢字串
查詢字串可以使用.NET的String物件的Contains函式,用於確定是否包含指定的字串:
//.............................................................................
// 目的:查詢字串是否包含指定的字串
// 輸入引數:
// Str:待查詢的字串
// SubStr:被查詢的字串
// 返回結果:
// True:包含指定的字串
// False:不包含指定的字串
// 注意事項:
// 作者:陳能技
// 日期:2008-5-29
//.............................................................................
Function String_Contains(Str,SubStr);
begin
Str := dotNET.System_Text.StringBuilder.zctor(Str).ToString;
Result := Str.Contains(SubStr);
end;
Procedure Test_String_Contains;
begin
Log.Message(String_Contains('01234567890','456'));
end;
另外,也可以使用DelphiScript提供的Pos函式來判斷是否出現指定的字串,如果包含,則返回第一個出現的位置;如果不包含,則返回False值,如下程式碼所示:
//.............................................................................
// 目的:查詢字串是否包含指定的字串
// 輸入引數:
// Str:待查詢的字串
// SubStr:被查詢的字串
// 返回結果:
// 注意事項:
// 作者:陳能技
// 日期:2008-5-29
//.............................................................................
Function String_Contains_2(Str,SubStr);
Var Index :OleVariant;
begin
Result := False;
Index := Pos(SubStr,Str);
IF Index > 0 then
Result := Index;
end;
Procedure Test_String_Contains_2;
begin
Log.Message(String_Contains_2('01234567890','456'));
end;
(5)匹配開頭字串
//.............................................................................
// 目的:判斷字串是否以指定的字串開頭
// 輸入引數:
// Str:待查詢的字串
// SubStr:開頭的字串
// 返回結果:
// True:字串以指定的字串開頭
// False:字串不以指定的字串開頭
// 注意事項:
// 作者:陳能技
// 日期:2008-5-29
//.............................................................................
Function String_StartsWith(Str,SubStr);
begin
Str := dotNET.System_Text.StringBuilder.zctor(Str).ToString;
Result := Str.StartsWith(SubStr);
end;
Procedure Test_String_StartsWith;
begin
Log.Message(String_StartsWith('01234567890','123'));
end;
(6)匹配結尾字串
//.............................................................................
// 目的:判斷字串是否以指定的字串結尾
// 輸入引數:
// Str:待查詢的字串
// SubStr:結尾的字串
// 返回結果:
// True:字串以指定的字串結尾
// False:字串不以指定的字串結尾
// 注意事項:
// 作者:陳能技
// 日期:2008-5-29
//.............................................................................
Function String_EndsWith(Str,SubStr);
begin
Str := dotNET.System_Text.StringBuilder.zctor(Str).ToString;
SubStr := dotNET.System_Text.StringBuilder.zctor(SubStr).ToString;
Result := Str.EndsWith(SubStr);
end;
Procedure Test_String_EndsWith;
begin
Log.Message(String_EndsWith('01234567890','1230'));
end;
《軟體自動化測試成功之道》節選11 - 常用指令碼函式的封裝
相關文章
- python+pytest介面自動化(11)-測試函式、測試類/測試方法的封裝Python函式封裝
- python+pytest介面自動化之測試函式、測試類/測試方法的封裝Python函式封裝
- 軟體測試筆記——11.自動化測試和手動測試的選擇筆記
- 軟體測試:自動化測試
- Python自動化測試~PO模型封裝Python模型封裝
- 前端ui自動化測試sdk封裝前端UI封裝
- JMeter 介面自動化測試(手工轉自動化指令碼)JMeter指令碼
- [python] request 介面測試自動化指令碼轉化為 [locust] 效能測試指令碼Python指令碼
- 前端常用函式封裝前端函式封裝
- 從功能測試轉成自動化測試,軟體測試工程師該如何成功轉型?工程師
- python自動化測試框架,封裝方法方式Python框架封裝
- Eggplant—HMI自動化測試軟體
- 通用自動化測試軟體 — TAE
- Eggplant—HMI 自動化測試軟體
- 軟體測試理論(2)自動化測試
- 深圳軟體測試培訓學習:Android常用自動化測試工具【千鋒】Android
- 軟體測試自動化的最新趨勢
- web自動化測試框架-06 如何快速編寫自動化指令碼Web框架指令碼
- 談軟體自動化測試工具的評測方法
- 自動化裝置測試與自動化測試的區別
- 移動裝置的自動化測試工具,如何選型?
- 軟體自動化測試有什麼優勢?自動化測試框架有哪些?框架
- 軟體自動化測試的四個階段
- 軟體自動化測試工具的那些事兒
- mydumper自動化安裝指令碼指令碼
- 軟體自動化測試的作用有哪些?為什麼要選擇專業軟體測試公司進行?
- 介面自動化測試錄製工具,讓python selenium自動化測試指令碼開發更加方便Python指令碼
- 軟體測試、自動化測試極容易產生的誤區
- 自動化測試在國際軟體測試中的應用
- 軟體自動化測試有哪些測試流程?專業的軟體測評中心推薦
- 自動化測試是什麼?什麼軟體專案適合自動化測試?
- 軟體測試為什麼需要自動化測試框架?權威軟體測試公司分享框架
- 使用 Playwright 指令碼錄製簡化自動化測試:完全指南指令碼
- 關於Vue中常用的工具函式封裝Vue函式封裝
- 軟體自動化測試工具的歷史演進
- 自動化指令碼安裝mysql shell指令碼範例指令碼MySql
- python3+requests:使用類封裝介面測試指令碼Python封裝指令碼
- 測試開發之自動化篇-Appium指令碼開發APP指令碼
- Appium自動化測試之常用的adb命令APP