使用QTP進行非GUI的自動化測試
QTP是非常優秀的面向GUI的自動化測試工具,由於採用的是VBS作為指令碼開發語言,因此可以利用VBS的優勢進行很多非GUI型別的自動化測試測試。就像Ian Fraser所說的“The true beauty of QTP is that the only limitation is your imagination and ability to code in VBScript.”
只要VBS能做的東西,基本上就可以在QTP中應用上。
FTP
下面是一個通過Extern呼叫wininet.dll實現ftp上傳下載的例子:
Const DEFAULT_FTP_PORT =21
Const SERVICE_FTP = 1
Const OPEN_TYPE_DIRECT = 1
Const FTP_TRANSFER_TYPE_ASCII = 1
Extern.Declare micLong,"InternetOpen","wininet.dll","InternetOpenA",micString,micDWord,micString,micString,micDWord
Extern.Declare micLong,"InternetConnect","wininet.dll","InternetConnectA",micLong,micString,micInteger,micString,micString,micDWord,micDWord,micDWord
Extern.Declare micInteger,"FtpGetFile","wininet.dll","FtpGetFileA",micLong,micString,micString,micInteger,micDWord,micDWord,micDWord
Extern.Declare micInteger,"FtpPutFile","wininet.dll","FtpPutFileA",micLong,micString,micString,micDWord
Extern.Declare micInteger,"InternetCloseHandle","wininet.dll","InternetCloseHandle",micLong
' 開啟
hInternet = Extern.InternetOpen("QTP_FTP",OPEN_TYPE_DIRECT,vbNullChar,vbNullChar,0)
If hInternet=0 Then Print("QTP_FTP:Failed to setup FTP environment.")
' 連線
hConnection = Extern.InternetConnect(hInternet,"192.168.1.2",DEFAULT_FTP_PORT,"user1","user1",1,0,0)
If hConnection =0 Then Print("Failed to setup FTP environment")
' 上傳
' bRetval = Extern.FtpPutFile(hConnection,sLocalFile,sRemoteFile,0)
' 下載
bRetval = Extern.FtpGetFile(hConnection,"/Mercury/QuickTest/QTP crack.rar","D:/QTP crack.rar",0,0,1,0)
If Not CBool(bRetVal) Then
Reporter.ReportEvent micFail,"FTP:FtpGetFile function","Failed to open download file."
else
Print("FTP:File :QTP crack.rar downloaded successfully")
'Reporter.ReportEvent micPass,"FTP:FtpPutFile function","FTP:File"&sLocalFile&"upload successfully."
End If
' 關閉
Extern.InternetCloseHandle(hConnection)
Extern.InternetCloseHandle(hInternet)
Linux命令列測試
利用W3Socket 這個dll所提供的API,可以在QTP中訪問linux命令列,執行linux命令並獲取命令列返回
W3Socket 的API參考:
http://www.dimac.net/Products/FreeProducts/w3Sockets/Reference/Refstart.htm
WebService測試
利用windows的WinHTTP所提供的介面,可以訪問HTTP頁面、WebService,獲取返回的頁面資料,例如:
' WinHttp.WinHttpRequest.5.1 Object
Set oWinHttpReq = CreateObject("WinHttp.WinHttpRequest.5.1")
oWinHttpReq.Open "POST", sWebService_Url, False
oWinHttpReq.setRequestHeader "Content-Type", sContentType
oWinHttpReq.setRequestHeader "SOAPAction", sSOAPAction
'Send SOAP request
oWinHttpReq.Send sSOAP_Request
'Get XML Response
sXMLResponse = oWinHttpReq.ResponseText
再結合Msxml.dll所提供的Msxml2.DOMDocument介面,可以對WebService返回的xml資料進行解析:
'Msxml2.DOMDocument
Set oInputXmlDoc = CreateObject("Msxml2.DOMDocument")
'loadXML from file
oInputXmlDoc.load("C:/XML_Files_Demo/Weight_Conversion.xml")
參考:《QTP: Not just for GUI anymore》
www.connectedtesting.com
相關文章
- 自動化測試工具QTPQT
- 使用 PostMan 進行自動化測試Postman
- 使用PostMan進行自動化測試Postman
- 使用 pyautogui 進行跨平臺的 GUI 自動化操作GUI
- 使用 Robot Framework 進行自動化視覺測試Framework視覺
- 真的要進行介面測試自動化?
- Flutter應用進行自動化測試Flutter
- Appium自動化(15) - 針對 webview 進行自動化測試APPWebView
- 使用 ATX+pytest+allure-pytest 進行 IOS 的 UI 自動化測試iOSUI
- 提高GUI自動化測試穩定性解決方案GUI
- GUI 自動化測試總結:關於使用 UIAutomation 序列化單元格GUI
- Selenium+Java+TestNG進行web自動化測試JavaWeb
- 何時適合進行自動化測試?(下)
- 何時適合進行自動化測試?(上)
- web自動化測試(2):選擇selenium優勢?與PhantomJS/QTP/Monkey對比WebJSQT
- robotframework + appium進行自動化測試時遇到的問題FrameworkAPP
- Python + requests + unittest + ddt 進行介面自動化測試的框架Python框架
- 怎樣開始用selenium進行自動化測試?
- 大資料包表如何進行自動化測試大資料
- 自動化測試系列 —— UI自動化測試UI
- 使用Pandaria編寫API自動化測試進階用法API
- 自動化測試進階課程——Selenium自動化測試通關實戰班
- 【自動化測試入門】用Airtest - Selenium對Firefox進行自動化測試(0基礎也能學會)AIFirefox
- 自動化裝置測試與自動化測試的區別
- 【自動化測試入門】自動化測試思維
- 使用 testng 做介面自動化測試
- 多個 iOS 裝置同時進行 UI 自動化測試iOSUI
- 使用Playwright基於多瀏覽器進行javascript自動化測試的簡單教程- Applitools瀏覽器JavaScriptAPP
- ui自動化測試,頁面方法的使用UI
- 如何學習自動化測試?從手工測試到自動化測試的過程…
- 自動化測試的方向
- 自動化運維:使用Maven與Docker執行Selenium測試運維MavenDocker
- 採用自動化測試的情形及自動化測試的優缺點
- 軟體自動化測試工具的歷史演進
- 如何做自動化測試?什麼是自動化測試?
- HamronyOS 自動化測試框架使用指南框架
- 使用 Postman 實現 API 自動化測試PostmanAPI
- Playwright自動化測試工具之高階使用
- 軟體測試:自動化測試