qtp使用技巧(1)
2023年06月14日
1.runaction後面能不能接變數(動態呼叫action,所以從資料庫取資料做action名字了,但是呼叫總是找不到)?
a:指令碼中原有runaction "testbase [case1]", oneiteration
把引號中的內容放到global表中的第22行,然後將**修改為:
datatable.getsheet("global")
datatable.setcurrentrow(22)
strlogin=datatable("actionname","global")
runaction strlogin, oneiteration
help中也有相關幫助
如: syntax
runaction actionname, [iterationmode , iterationrange , parameters]
actionname : string : the name of the action
2.qtp8.2中呼叫vb函式的問題(用vbscrīpt寫了一些測試指令碼需要的幾個通用函式,有沒有辦法可以用類似include的方式進行呼叫,而不需要每次都把這些函式copy到新的指令碼中)?
a:程式開頭加上executefile "..\..\..\project\devariable.vbs"
3.qtp如何做回歸測試(300多個testcase,td是否可以管理) ?
a:td可以實現,可以生成測試集,乙個測試集可以包含若干個測試指令碼
qtp8.2本身提供乙個工具test batch runner但是執行完沒有報告。
mi有另乙個工具叫mtm(multitestmanager)
4.qtp自動節圖功能
5.在qtp中如何設定使用別的瀏覽器(xp系統,用ie訪問程式時,每次總提示遮蔽安裝activex外掛程式,需要手動安裝.但把這個過程錄製到qtp後,回放一次是成功的。當我給某個輸入框引數化了好多資料後,回放過程中,某些就會失敗.
可能有兩個方面可以解決這問題1、每個動作設定延遲時間 2、設定為用別的瀏覽器。)
(失敗的提示資訊是 object not visible)
a:1.延遲可用wait x(x單位是秒)
2.可以安裝外掛程式新增新的瀏覽器
systemutil.run "file" "params" "dir" "op'' "mode"
qtp執行可執行檔案的方法及其引數
ps: 建議是用ie瀏覽器,或者ie核心瀏覽器做測試
6.checkpoint 檢查網頁,是否能實現只要網頁出現亂碼就返回錯誤報告?
a:text not displayed能解決問題
關於 text checkpoint 的總結。
1)text checkpoint 的檢查部分分為三個部分。checked text 、text before 、text after。在預設的情況下,checked text執行的是精確檢查,其餘兩個部分執行的是模糊檢查。text before(after)檢查的內容可以比實際的內容少。但是不能有和是實際內容不相符的地方,否則就失敗。
2) exact match選項。如果選擇了這個選項,三部分完全都進行精確檢查。個人覺得和只檢查checked text部分沒有區別。
3) text not displayed。這個選項本質上就是乙個結果取反的過程。就是把檢查的結果給反過來,把pass變成fail,fail變成pass。我覺得這樣就很容易理解。
7.wsh的應用方法
a:wsh 實際上是乙個指令碼語言的執行環境,它之所以具備強大的功能,是在於其充分挖掘了指令碼語言的潛力。因此,如果拋開指令碼語言而空談 wsh ,那實際上就沒有了意義。而如果再展開來講述指令碼語言,顯然就離開了今天的主題。
指令碼檔案的編寫十分方便,你可以選用任意乙個文字編輯軟體進行編寫,編寫完成後,只需將它儲存為 wsh 所支援的檔名就可以了(如.js 檔案和.vbs 檔案)。最常用的就是記事本編輯器,下面的例項都是以它作為工具編寫的。
wscrīpt.echo("走近 wsh")
將它儲存為以 .vbs 或 .js 為字尾名(千萬不要寫成了 .txt)的檔案並退出記事本。雙擊執行這個檔案。
這一次,我們要利用 wsh 完成一次建立十個資料夾的工作。**如下:
dim objdir
set ōbjdir=wscrīpt.createobject("scrīpting.filesystemobject")
for k=1 to 10
anewfolder="c:\chapter" & k
objdir.createfolder(anewfolder)
next
同樣,將它存為 .vbs 檔案並退出。執行後,我們會發現,c 盤根目錄下一次性多出了十個新資料夾。
最後,再舉乙個在伺服器上的運用。下面的**將幫助你重新啟動指定的 iis 服務: ' define a constant for stopped services
const ads_service_stopped = 1
' get an adsi object for a computer
set ōbjcomputer = getobject("winnt://mycomputer,computer")
' get an object for a service
set ōbjservice = objcomputer.getobject("service","myservice")
' check to see if the service is stopped
if (objservice.status = ads_service_stopped) then
' if the service is stopped, then start it
objservice.start
end if
將它以 startsvc.vbs 為名儲存在 c: 盤根目錄。並通過如下命令執行:cscrīpt c:\startsvc.vbs。執行後,經你指定的 iis 服務項將被重新開啟。
其實,在 windows 的 samples 目錄下,有個 wsh 資料夾,那裡面有不少很具代表性的 .vbs 和. js 指令碼檔案。
此外,利用 wsh 還可以自己編寫指令碼檔案來提高網路管理方面的效率。
8.從excel中匯出資料進行測試
datatable.addsheet("51sheet")
datatable.importsheet "f:\test.xls","testsheet","51sheet"
dim i,rowcount '定義兩個變數
i=0
rowcount=datatable.getsheet("51sheet").getrowcount '設定rowcount等於51sheet中的行數。
msgbox rowcount
do while ii=i+1 '第一次進入迴圈,執行這句後,i=1
'datatable.getsheet("51sheet").setcurrentrow(i) 這句話被我注釋掉了,正確的寫法應該是下面這樣,分開寫。
datatable.getsheet("51sheet")
datatable.setcurrentrow(i)
'執行過上面兩句後,currentrow是第一行。
tempdata=datatable.getsheet("51sheet").getparamete r("name").value
'現在,我們呼叫msgbox看看下面這種呼叫方法得到的是什麼值?沒錯,是第一行的值,下一次迴圈呢?
'得到的是第二行的值麼?
msgbox "getparameter-name:"&tempdata '這裡彈出我們要看的值。
'下面我們用另外一種方法來得到。
msgbox "getparameter-i:"&datatable.getsheet("51sheet").ge tparameter(1).value '這裡我用getparameter(1)去得到sheet中第一列的值。
loop
9.關於dtglobalsheet與dtlocalsheet
1) dtglobalsheet只有乙個,它的index值比較特殊,它有兩個index值,乙個是1還有乙個是內建的預設的1000。
你可以用1或者1000去引用它都是正確的。當然了,如果你用dtglobalsheet來引用它也是正確的。這個sheet的name叫做"global"。注意:sheetname是區分大小寫的。
2) dtlocalsheet可以用index:1001來引用,當然,也可以用2來引用。至於其它自定義的sheet嘛,你就只能用index:3來引用了。
它沒有內建的預設的類似前兩個那樣的index值。
3) datatable這個物件只有乙個。就是所有sheet的集合。或許你把它理解為excel檔案比較好。
dtsheet呢?就是其中的每個sheet。所不同的就是mi為他們做了一些預設值。在我們的應用中,可能會有多個action,如:actiion1,actiion2,actiion3
這些action也分別對應有各自預設的loaclsheet.即:actiion1,actiion2,actiion3。
如果每個action中,我們都只用到乙個sheet,那就好辦了,在每個action中都可以用localsheet來引用,但是如果我們有兩個及兩個以上的sheet.那麼就比較容易亂套了。
10.移動當前位置的行
for i=1 to 3
datatable.getsheet("global")
datatable.setcurrentrow(i)
datatable("c","global") = datatable("nodename","global") '把錶global中的nodename欄位中的內容取出來。
next
git使用技巧 1
git主要分3個區 工作區,暫存區,版本庫 工作區 目前工作的資料夾 暫存區 可以把修改的提交到快取區,儲存起來。相當於提交任務的快取。版本庫 伺服器的檔案 提交 工作區修改後用add命令提交到 暫存區,可再在工作區下修改,繼續提交到暫存區,用 commit命令把暫存區的change提交到版本庫 伺...
SQL Plus 使用技巧1
1.sql plus 常用命令 a.help topic 檢視命令的使用方法,topic表示需要檢視的命令名稱。如 help desc b.host 該命令可以從sql plus環境切換到作業系統環境,以便執行作業系統命名。c.host command 在sql plus環境中執行作業系統命令,如 ...
sqlmap使用技巧(1)
1 直連資料庫 d 2 直接對單一url進行探測 u 3 批量掃瞄注入 g 4 強制指定請求方法 method 5 引數 data 此引數是把資料以post方式提交,sqlmap會像檢測get引數一樣檢測post的引數。也就是將資料的提交方式隱式的改為post。6 指定分隔符 param del 上...