多數問題是在MSN上, 論壇 上 其他 測試 人員提出的問題,我回答后發現很多人問到同樣的問題,這里整理了一下希望對大家有幫助! 1.WinRunner如何把Real類型轉化為指數表示方法 答: 指數類型轉化為real類型,可以通過下邊的代碼 var = 5.3569E+10; pause(va
多數問題是在MSN上,
論壇上
其他測試人員提出的問題,我回答后發現很多人問到同樣的問題,這里整理了一下希望對大家有幫助!
1.WinRunner如何把Real類型轉化為指數表示方法
答:
指數類型轉化為real類型,可以通過下邊的代碼
var = 5.3569E+10;
pause(var);
#顯示 53569000000
Real類型轉化為指數表示方式
var = sprintf("%e",53568544768);
pause(var);
#displays 5.356854e+010
2.什么是同步點,怎樣用它?他和Wait有什么不同?
答: 從功能上他們都可以實現腳本和被測試程序同步的問題,不過同步點有window/object,bitmap方式,她等待的是某個等待的對象 窗體,bitmap的出現,一定程度她也可以作為驗證點
wait這點上無法實現相同的效果。有的腳本中即使你加入wait,但是你無法知道下邊的對象窗體
圖片是否就是成需要運行的正確 出現的
3.tl_step和tl_step_once的區別
答:tl_step和tl_step_once都是把運行狀態信息放到運行結果中去,區別在如果連接TD,TL_STEP把每步狀態信息都插入到測試結果中去,tl_step_once如果連接
td,只是插入一次運行步驟的名字
代碼例子:
--------------------------------------------------------------------------------
for (i=1;i<4;i++){
tl_step("Step", PASS, "reporting step, #" &i);
tl_step_once("Step Once", PASS, "reporting step once, #" &i);
}
--------------------------------------------------------------------------------
WR中的報告:
Step: Step, Status: PASS, Description: reporting step, #1
Step: Step Once, Status: PASS, Description: reporting step once, #1
Step: Step, Status: PASS, Description: reporting step, #2
Step: Step Once, Status: PASS, Description: reporting step once, #2
Step: Step, Status: PASS, Description: reporting step, #3
Step: Step Once, Status: PASS, Description: reporting step once, #3
TD中的報告:
Step: Step, Status: PASS, Description: reporting step, #1
Step: Step Once, Status: PASS, Description: reporting step once, #1
Step: Step, Status: PASS, Description: reporting step, #2
Step: Step, Status: PASS, Description: reporting step, #3
4.WinRunner和TD集成后腳本運行很慢是什么原因呢?
答:安裝TD和
WinRunner服務器上需要獨占100GByte,TD需要10OGHZ時鐘速度16GB RAM的處理平臺
5.WR是否支持vs.net
根據
Mercury的介紹,他們的對.Net的支持轉移到QuickTest Pro上了,如果你需要
自動化測試.Net程序(不是
web的),建議用
QuickTestPro。也就是說wr不支持vs.net
開發的程序
6.我對比兩個文件file1.txt和file2.txt,文本內容如下
file1.txt 內容如下:
10523 8315 6804 8387 3643 4550 3457 3649
file2.txt內容如下:
190176 155737 117417 145194 65314 81431 64522 63324
代碼如下:file_compare("C:\\file1.txt","C:\\file2.txt","save");
為什么每次對比這兩個文件結果都是通過的。
答:這個問題的原因在于它在前面的腳本中對文件進行了操作,沒有關閉,所以這段代碼運行總是通過
7.如何在winRunner中用
Windows的API函數
在使用該API函數前需要先加載該函數然后聲明API函數,代碼如下
load_dll("user32.dll");
extern int PostMessageA(in long, in long, in long, in long);
win_get_info("{class:window, MSW_class:AfxMDIFrame42, label:\"!WinRunner.*\"}", "handle", hWnd);
PostMessageA(hWnd, 16, 0, 0);
請在嘗試以上代碼的時候,保存腳本,呵呵!
8.怎樣處理跟蹤鍵盤操作?
答:下邊的代碼希望對你有幫助
function GetKeyStatus(in vKey){
auto pid, thread_id, win_desc, hWnd, KeyState, win_log_name, win_full_desc, focused_obj_desc;
win_desc = "{active:1}";
if (win_exists(win_desc)==0) {
win_get_desc(win_desc, "", "", "", win_full_desc);
GUI_map_get_logical_name( win_full_desc, "", win_log_name, "bla");
win_get_info(win_desc, "handle", hWnd);
pid = GetWindowThreadProcessId(hWnd, NULL);
thread_id=GetCurrentThreadId();
AttachThreadInput(pid,thread_id,TRUE);
KeyState=GetKeyState (vKey);
AttachThreadInput(pid,thread_id,FALSE);
if (KeyState < 0)
return(0); # Key is pressed
else
return (1); # Key is not pressed
}
else
return (-1); # No active window found, so cannot determine key state
}
9.WinRunner如何處理excel?
答:其實解決方法有很多,這里列舉兩種。
一.利用其他語言特性開發出dll提供給
winrunner使用(
vb,vc,delphi等)
二.在其他環境中實現,用winrunner調用
第一種我在這里不舉例子了,第二種我利用vbs往excel中賦值給大家提供一種思路,代碼如下:
原文轉自:http://www.anti-gravitydesign.com