LR常用函数总结
事務函數:
?lr_start_transaction();//標記事務的開始
?lr_start_transaction();/*標記事務的結束,一般情況下,事務開始與結束聯合使用*/
?lr_get_trans_instance_status();//得到事務的狀態
?lr_get_transaction_think_time();//得到事務的指定思考時間,事務時間=整體事務時間-事務的
?lr_stop_transaction();//停止事務
日志函數:
?lr_debug_message();//發送調試信息到日志文件
?lr_error_message();//發送錯誤信息到LR輸入窗口或日志文件里
?lr_get_debug_message();//返回當前調試的信息
?lr_log_message();//發送信息到用戶日志文件
?lr_output_message();//發送信息到輸出窗口或日志文件
?lr_vuser_status_message();//發送虛擬用戶的狀態到LR的Controller
運行時函數:
? lr_abort();//終止執行的腳本
? lr_continue_on_error();//當發生錯誤后運行的事件
? lr_exit();//從scirpt.ation.iteration中退出
? lr_rendezvous_ex();//設置集合點
? lr_think_time();//設置思考時間,在性能測試中為了更好模擬以后操作,可以根據實際生產環境設置思考時間。
? lr_rendezous();//集合點,可以設置虛擬用戶相同操作之前進行集合,通過集合點可以增加被測試應用的壓力,從而達到壓力測試的目的。
? lr_load_dll();//調用DLL文件
?例子:
?lr_load_dll("user32.dll");
?MessageBoxA(NULL,"This is Testing Message","message_caption",0);
?return 0;
系統信息函數:
?lr_get_master_host_name();//返回運行Controller主機的名稱
?lr_get_user_ip();//返回虛擬用戶的IP地址
?lr_user_data_point();//錄制用戶自定義的數據樣例
?lr_user_data_point();// 記錄自己的數據來進行分析,每次要記錄一個點時,請使用該函數記錄采樣名稱和值。系統將自動記錄采樣的時間。執行之后,可以使用用戶等義的數據,點擊圖形分析結果
? lr_get_host_name();//返回主機名
??? 例子;
char * host;
?host=lr_get_host_name();
?lr_output_message("Computer Name %s",host);
?return 0;
WEB應用中常見函數
web_url();//根據函數中的URL屬性加載對應的URL,不需要上下文。
web_image();//模擬鼠標在指定圖片上的單擊動作。此函數必須在有前置操作的上下文中使用。
?Tips:在Toos—Recording Option,如果錄制級別設為基于HMTL的錄制方式時,web_image才會被錄制到。
Web_link();//模擬鼠標在由若干個屬性集合描述的鏈接上進行單擊。此函數必須在前置動作的上下文中才可以執行。
web_submit_form ();//函數用來提交表單。此函數可能必須在前一個操作的上下文中執行。
Tips:支持Web虛擬用戶,不支持WAP虛擬用戶。
web_submit_data();//函數處理無狀態或者上下文無關的表單提交。它用來生成表單的GET或POST請求,這些請求與Form自動生成的請求是一樣的。發送這些請求時不需要表單上下文。
web_find();//此函數的作用是在HTML頁面中查找指定的字符串。當指定的HTML請求全部完成以后,開始執行搜索過程,比web_reg_find要慢。
web_find函數在C語言的腳本中已經被web_reg_find所替代,web_reg_find運行速度比較快,而且在HTML-based和URL-based的錄制方式中都可以使用。 在C語言腳本中,web_find是向后兼容的。Java和Visual Basic腳本中不再支持它。
web_image_check();//檢查指定的圖象是否在HTML頁面中出現,此函數僅僅支持基于HTML的腳本。
web_reg_add_cookie();//是注冊類型的函數。它首先注冊一個搜索文本字符串的請求。檢查動作在后續的Action函數之后進行。如果字符串被找到,就添加到cookie中。
web_reg_find();//屬于注冊函數,注冊一個在web頁面中搜索文本字符串的請求,在接下來的Action(象web_url)類函數中執行搜索。
web_concurrent_start();//函數是并發組開始的標記。組中所有的函數是并發執行的。并發組的結束web_concurrent_end 函數。
web_reg_save_param();//關聯函數,通過關聯可以在測試中保持動態值,從服務器返回的數據庫中查找需要關聯的數據。
web_add-filter();// 過濾函數,用于對指定的URL進行過濾,分析URL加載那部分對性能有影響。界面操作Run-time Settings 下的 Internet Protocol的Download Filters。
web_custom_request();// 自定義請求函數,可以編寫自定義請求格式進行接口功能測試。
FTP /IMAP方面:
?ftp_logon_ex();//針對特定會話登錄到FTP服務器。
?ftp_put_ex();//在FTP服務器上設置工作目錄及上傳文件。
?ftp_logout_ex();//注銷當前FTP連接。
?imap_create();//創建新的郵件。
?imap_check();//郵件中請求檢查點,實現并適用與郵箱內部的內務管理。
?Tips:針對IMAP的測試,把函數中的ftp替換成imap即可。
?其它常用函數:
??? Lr_decrypt():LR中的解密函數
?????? 實例代碼: lr_output_message("解密函數測試,解密后數值:%s",lr_decrypt("4e0942869c958e3e"));
?? Getenv():得到定義的環境變量值
?????? 實例代碼:???
??? char *tmp,logfile[256],dlr_seperator;
logfile;
//Create an environment variable
putenv("LOGFILE_NAME=lr_xiaolintest.txt");
//
if(tmp = (char*)getenv("TEMP"))
lr_output_message("Temp Dir = %s",tmp);
else{
lr_output_message("TEMP environment variable undefined");
??? return -1;
}
sprintf(logfile,"%s\\%s",tmp,(char*)getenv("LOGFILE_NAME"));
?? System():執行操作系統的命令
???? char filename[1024],command[1024];
???? char new_dir[] = "c:\\test";
???? //Create a directory udder root called test and make it the current dir
???? if(mkdir(new_dir))
???????? lr_output_message("Create directory :%s failed",new_dir);
???? else
???????? lr_output_message("Create new directory %s",new_dir);
????? sprintf(filename,"%s\\%s",new_dir,"xialin.txt");
???? //Executr a dir /b command and directory it to a new_file
????? sprintf(command,"dir /b c:\\ > %s /w",filename);
????? system(command)
?lr_output_message("Create new file %s",filename);
?? Rand():得到一個整型的隨機值(0到32767)
???? srand(time(NULL));
//Generate a random number from 0-99
lr_output_message("A number between 0 and 99 is :%d\n",rand()%100);
return 0;
?? Getdrive()and mkdir():返回當前驅動盤的名字。
int ch,drive,curdrive;
static char path[1024];
//Save current drive letter so it can be restored later
curdrive = getdrive();
//If we can switch to the drive,it exists
lr_output_message("Available drives are:");
for(drive = 1;drive <= 26;drive++)
if (!chdrive(drive))
lr_output_message("%c:",drive + 'A' -1);
chdrive(curdrive);//Restore original drive
return 0;
?? Time():返回系統的時間
typedef long time_t;
time_t t;
//Get system time and display as number and string
lr_message("Time in seconds since 1/1/88: %ld\n",time(&t));
lr_message("Formatted time and date: %s",ctime(&t));
return 0;
轉載于:https://www.cnblogs.com/preftest/archive/2011/06/30/2095047.html
總結
- 上一篇: pyxml for python 2.6
- 下一篇: jQuery :nth-child前有无