Difference between revisions of "LoadRunner Code Snippets"
Jump to navigation
Jump to search
PeterHarding (talk | contribs) |
PeterHarding (talk | contribs) |
||
| (13 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
__TOC__ | |||
=Detect a Pattern in a Page= | =Detect a Pattern in a Page= | ||
| Line 79: | Line 81: | ||
sprintf(msgbuf, "select_93 done..."); | sprintf(msgbuf, "select_93 done..."); | ||
userLog(msgbuf); | |||
//------------------------------------------------------------------------- | //------------------------------------------------------------------------- | ||
if (atoi(lr_eval_string("{alert_count}")) > 0) { | if (atoi(lr_eval_string("{alert_count}")) > 0) { | ||
sprintf(msgbuf, "No longer possible to process any bids for this bid invitation"); | |||
userLog(msgbuf); | |||
return 0; | |||
} | |||
</pre> | </pre> | ||
| Line 97: | Line 99: | ||
//----- At 'Invoice Search Screen' ----------------------------------------- | //----- At 'Invoice Search Screen' ----------------------------------------- | ||
web_reg_find("Text= | web_reg_find("Text=XXXX", | ||
LAST); | LAST); | ||
| Line 113: | Line 115: | ||
LAST); | LAST); | ||
web_submit_data(" | web_submit_data("app_5", | ||
"Action=https:// | "Action=https://www.performiq.com.au/app", | ||
"Method=POST", | "Method=POST", | ||
"RecContentType=text/html", | "RecContentType=text/html", | ||
"Referer=https:// | "Referer=https://www.performiq.com.au/app", | ||
"Snapshot=t22.inf", | "Snapshot=t22.inf", | ||
"Mode=HTTP", | "Mode=HTTP", | ||
ITEMDATA, | ITEMDATA, | ||
"Name=pageID", "Value={pageID}", ENDITEM, | "Name=pageID", "Value={pageID}", ENDITEM, | ||
"Name= | "Name=lastName", "Value=A", ENDITEM, | ||
"Name= | "Name=firstName", "Value=", ENDITEM, | ||
... | |||
"Name=btnSearch", "Value=Search", ENDITEM, | "Name=btnSearch", "Value=Search", ENDITEM, | ||
LAST); | LAST); | ||
| Line 151: | Line 144: | ||
//----- Back at 'Invoice List' page ---------------------------------------- | //----- Back at 'Invoice List' page ---------------------------------------- | ||
</pre> | |||
=Page Content Detection Logic= | |||
<pre> | |||
#include "web_api.h" | |||
CodeExpenses() | |||
{ | |||
int unsubmitted = 0; | |||
int do_submit = FALSE; | |||
int next = 0; | |||
int no_expenses = 0; | |||
int expenses_remaining = 0; | |||
int submit_cnt = 0; | |||
int ignore = 0; | |||
sprintf(msgbuf, ">>>>> New ITERATION using [%s] <<<<<", lr_eval_string("{Username}")); | |||
userLog(msgbuf); | |||
//----- At 'Invoice List' page -------------------------------------------- | |||
web_reg_find("Text=XXXX", LAST); | |||
lr_start_transaction("Login"); | |||
web_submit_data("Login Page", | |||
"Action={Protocol}://{System}/app", | |||
"Method=POST", | |||
"RecContentType=text/html", | |||
"Referer={Protocol}://{System}/app?pageID=0&LanguageID=31&Licensee=xxxxx", | |||
"Snapshot=t5.inf", | |||
"Mode=HTTP", | |||
ITEMDATA, | |||
"Name=pageID", "Value=0", ENDITEM, | |||
"Name=LanguageID", "Value=31", ENDITEM, | |||
"Name=Username", "Value={Username}", ENDITEM, | |||
"Name=Password", "Value={Password}", ENDITEM, | |||
"Name=OK", "Value= OK ", ENDITEM, | |||
LAST); | |||
lr_end_transaction("Login", LR_AUTO); | |||
sprintf(msgbuf, " Username: [%s]", lr_eval_string("{Username}")); | |||
userLog(msgbuf); | |||
sprintf(msgbuf, "Host - %s Name - %s", | |||
lr_eval_string("{System}"), | |||
lr_eval_string("{Username}")); | |||
userLog(msgbuf); | |||
//----- At 'Invoice Search Screen' ---------------------------------------- | |||
web_reg_find("Text=XXXX", LAST); | |||
// Look for lines like "<!------------------------ Invoice 427738 ---" | |||
web_reg_save_param("pageID", | |||
"LB=input type=\"hidden\" name=\"pageID\" value=\"", | |||
"RB=\"", | |||
LAST); | |||
web_reg_save_param("invoice", | |||
"LB=----- Invoice ", | |||
"RB= -----", | |||
"ORD=ALL", | |||
LAST); | |||
web_reg_save_param("InvoiceID", | |||
"LB=input type=\"hidden\" name=\"InvoiceID\" value=\"", | |||
"RB=\"", | |||
LAST); | |||
lr_start_transaction("InvoiceList"); | |||
web_submit_data("TO: 'Invoice List'", | |||
"Action={Protocol}://{System}/app", | |||
"Method=POST", | |||
"RecContentType=text/html", | |||
"Referer={Protocol}://{System}/app", | |||
"Snapshot=t9.inf", | |||
"Mode=HTTP", | |||
ITEMDATA, | |||
"Name=pageID", "Value=0", ENDITEM, | |||
"Name=btnOk", "Value=OK", ENDITEM, | |||
LAST); | |||
lr_end_transaction("InvoiceList", LR_AUTO); | |||
sprintf(msgbuf, " InvoiceID: [%s]", lr_eval_string("{InvoiceID}")); | |||
userLog(msgbuf); | |||
lr_think_time( 5 ); | |||
//----- At 'Invoice List' page - <Go> to view invoice --------------------- | |||
web_reg_find("Text=XXXX", LAST); | |||
web_reg_save_param("pageID", | |||
"LB=input type=\"hidden\" name=\"pageID\" value=\"", | |||
"RB=\"", | |||
LAST); | |||
// This lives here - <input type="hidden" name="ExpenseID" value="1111111"/>\r\n | |||
web_reg_save_param("ExpenseID", | |||
"LB=input type=\"hidden\" name=\"ExpenseID\" value=\"", | |||
"RB=\"", | |||
LAST); | |||
lr_start_transaction("View_InvoiceDetails"); | |||
web_submit_data("View_InvoiceDetails", | |||
"Action={Protocol}://{System}/app", | |||
"Method=POST", | |||
"RecContentType=text/html", | |||
"Referer={Protocol}://{System}/app", | |||
"Snapshot=t14.inf", | |||
"Mode=HTTP", | |||
ITEMDATA, | |||
"Name=pageID", "Value={pageID}", ENDITEM, | |||
"Name=InvoiceID", "Value={InvoiceID}", ENDITEM, | |||
"Name=ddInvoiceAction", "Value=View", ENDITEM, | |||
"Name=btnGo", "Value=Go", ENDITEM, | |||
LAST); | |||
lr_end_transaction("View_InvoiceDetails", LR_AUTO); | |||
sprintf(msgbuf, " ExpenseID: [%s]", lr_eval_string("{ExpenseID}")); | |||
userLog(msgbuf); | |||
lr_think_time( 5 ); | |||
//-------------------------------------------------------------------------- | |||
web_reg_find("Text=XXXX", LAST); | |||
web_reg_save_param("pageID", | |||
"LB=input type=\"hidden\" name=\"pageID\" value=\"", | |||
"RB=\"", | |||
LAST); | |||
web_reg_save_param("AccountHolderID", | |||
"LB=input type='hidden' name='AccountHolderID' value='", | |||
"RB='", | |||
LAST); | |||
web_reg_save_param("ExpenseCount", | |||
"LB=input type=\"hidden\" name=\"ExpenseCount\" value=\"", | |||
"RB=\"", | |||
LAST); | |||
web_reg_save_param("ExpenseNumber", | |||
"LB=input type=\"hidden\" name=\"ExpenseNumber\" value=\"", | |||
"RB=\"", | |||
LAST); | |||
web_reg_find("Text=Submitted", "SaveCount=submitted_count", LAST); | |||
web_reg_find("Text=Information Only", "SaveCount=infoonly_count", LAST); | |||
web_reg_find("Text=Committed", "SaveCount=committed_count", LAST); | |||
lr_start_transaction("CodingFrontend"); | |||
web_submit_data("TO: 'Coding Frontend'", | |||
"Action={Protocol}://{System}/app", | |||
"Method=POST", | |||
"RecContentType=text/html", | |||
"Referer={Protocol}://{System}/app", | |||
"Snapshot=t18.inf", | |||
"Mode=HTTP", | |||
ITEMDATA, | |||
"Name=pageID", "Value={pageID}", ENDITEM, | |||
"Name=InvoiceID", "Value={InvoiceID}", ENDITEM, | |||
"Name=ExpenseID", "Value={ExpenseID}", ENDITEM, | |||
"Name=Action", "Value=Details", ENDITEM, | |||
"Name=btnGo", "Value=Go", ENDITEM, | |||
LAST); | |||
lr_end_transaction("CodingFrontend", LR_AUTO); | |||
sprintf(msgbuf, " InvoiceID: [%s]", lr_eval_string("{InvoiceID}")); | |||
userLog(msgbuf); | |||
sprintf(msgbuf, " AccountHolderID: [%s]", lr_eval_string("{AccountHolderID}")); | |||
userLog(msgbuf); | |||
sprintf(msgbuf, " ExpenseCount: [%s]", lr_eval_string("{ExpenseCount}")); | |||
userLog(msgbuf); | |||
/* | |||
* We are now in Coding screen and about to use wizard | |||
*/ | |||
lr_think_time( 10 ); | |||
//------ Enter basic data and then run the Wizard ------------------------- | |||
if (atoi(lr_eval_string("{submitted_count}")) > 0) { | |||
// Already submitted so lets press NEXT! | |||
unsubmitted = 0; | |||
} else { | |||
unsubmitted = 1; | |||
} | |||
if (atoi(lr_eval_string("{infoonly_count}")) > 0) { | |||
sprintf(msgbuf, "----- Information Only -----"); | |||
userLog(msgbuf); | |||
ignore = 1; | |||
unsubmitted = 0; | |||
} | |||
if (atoi(lr_eval_string("{committed_count}")) > 0) { | |||
sprintf(msgbuf, "----- Committed -----"); | |||
userLog(msgbuf); | |||
ignore = 1; | |||
unsubmitted = 0; | |||
} | |||
sprintf(msgbuf, "Unsubmitted flag == %d", unsubmitted); | |||
userLog(msgbuf); | |||
no_expenses = atoi(lr_eval_string("{ExpenseCount}")); | |||
expenses_remaining = atoi(lr_eval_string("{ExpenseCount}")); | |||
submit_cnt = 0; | |||
while (expenses_remaining > 0) { | |||
sprintf(msgbuf, " ExpenseNumber: [%s]", lr_eval_string("{ExpenseNumber}")); | |||
userLog(msgbuf); | |||
sprintf(msgbuf, " ExpenseID: [%s]", lr_eval_string("{ExpenseID}")); | |||
userLog(msgbuf); | |||
next = TRUE; | |||
do_submit = FALSE; | |||
while (next) { | |||
if (unsubmitted) { | |||
sprintf(msgbuf, "Running the Wizard on this expense:"); | |||
userLog(msgbuf); | |||
web_reg_find("Text=XXXX", LAST); | |||
web_reg_save_param("pageID", | |||
"LB=input type=\"hidden\" name=\"pageID\" value=\"", | |||
"RB=\"", | |||
LAST); | |||
/* web_reg_save_param("ExpenseNumber", | |||
"LB=input type=\"hidden\" name=\"ExpenseNumber\" value=\"", | |||
"RB=\"", | |||
LAST); | |||
*/ | |||
web_reg_save_param("LastQuestionID", | |||
"LB=input type=\"hidden\" name=\"LastQuestionID\" value=\"", | |||
"RB=\"", | |||
LAST); | |||
web_reg_save_param("LastQuestionTypeID", | |||
"LB=input type=\"hidden\" name=\"LastQuestionTypeID\" value=\"", | |||
"RB=\"", | |||
LAST); | |||
/* WizardAnswer is and array of Radio Buttons --------------------------------- | |||
web_reg_save_param("WizardAnswer", | |||
"LB=input type=\"hidden\" name=\"WizardAnswer\" value=\"", | |||
"RB=\"", | |||
LAST); | |||
*/ | |||
web_reg_find("Text=You cannot use the Coding Wizard", "SaveCount=submitted_count", LAST); | |||
lr_continue_on_error(1); | |||
lr_start_transaction("ToWizard"); | |||
web_submit_data("TO: Wizard'", | |||
"Action={Protocol}://{System}/app", | |||
"Method=POST", | |||
"RecContentType=text/html", | |||
"Referer={Protocol}://{System}/app", | |||
"Snapshot=t22.inf", | |||
"Mode=HTTP", | |||
ITEMDATA, | |||
"Name=pageID", "Value={pageID}", ENDITEM, | |||
... | |||
"Name=btnWizard", "Value=Wizard", ENDITEM, | |||
LAST); | |||
lr_end_transaction("ToWizard", LR_AUTO); | |||
lr_continue_on_error(0); | |||
if (atoi(lr_eval_string("{submitted_count}")) > 0) { | |||
// Already submitted so lets press NEXT! | |||
sprintf(msgbuf, "[To Wizard] -> Expense already submitted - Cannot re-run wizard. Selecting NEXT one!"); | |||
userLog(msgbuf); | |||
unsubmitted = 0; | |||
} else { | |||
sprintf(msgbuf, "[To Wizard] -> OK"); | |||
userLog(msgbuf); | |||
unsubmitted = 1; | |||
do_submit = TRUE; | |||
next = 0; | |||
} | |||
} else { | |||
sprintf(msgbuf, "Selecting 'NEXT' expense:"); | |||
userLog(msgbuf); | |||
web_reg_save_param("pageID", | |||
"LB=input type=\"hidden\" name=\"pageID\" value=\"", | |||
"RB=\"", | |||
LAST); | |||
web_reg_save_param("ExpenseNumber", | |||
"LB=input type=\"hidden\" name=\"ExpenseNumber\" value=\"", | |||
"RB=\"", | |||
LAST); | |||
web_reg_save_param("ExpenseID", | |||
"LB=input type='hidden' name='ExpenseID' value='", | |||
"RB='", | |||
LAST); | |||
web_reg_find("Text=ExpenseStatus3\">Submitted", "SaveCount=submitted_count", LAST); | |||
web_reg_find("Text=ExpenseStatus5\">Information", "SaveCount=infoonly_count", LAST); | |||
web_reg_find("Text=ExpenseStatus8\">Committed", "SaveCount=comitted_count", LAST); | |||
lr_continue_on_error(1); | |||
lr_start_transaction("NextExpense"); | |||
web_submit_data("TO: 'Next Expense'", | |||
"Action={Protocol}://{System}/app", | |||
"Method=POST", | |||
"RecContentType=text/html", | |||
"Referer={Protocol}://{System}/app", | |||
"Snapshot=t22.inf", | |||
"Mode=HTTP", | |||
ITEMDATA, | |||
"Name=pageID", "Value={pageID}", ENDITEM, | |||
... | |||
"Name=btnNext", "Value=Next", ENDITEM, | |||
LAST); | |||
lr_end_transaction("NextExpense", LR_AUTO); | |||
lr_continue_on_error(0); | |||
if (atoi(lr_eval_string("{infoonly_count}")) > 0) { | |||
sprintf(msgbuf, "----- Information Only -----"); | |||
userLog(msgbuf); | |||
ignore = 1; | |||
unsubmitted = 0; | |||
} | |||
if (atoi(lr_eval_string("{committed_count}")) > 0) { | |||
sprintf(msgbuf, "----- Committed -----"); | |||
userLog(msgbuf); | |||
ignore = 1; | |||
unsubmitted = 0; | |||
} | |||
if (atoi(lr_eval_string("{submitted_count}")) > 0) { | |||
// Already submitted so lets press NEXT! | |||
sprintf(msgbuf, "[NEXT] -> Expense already submitted. Selecting NEXT one!"); | |||
userLog(msgbuf); | |||
unsubmitted = 0; | |||
} else { | |||
sprintf(msgbuf, "[NEXT] -> Expense not submitted"); | |||
userLog(msgbuf); | |||
unsubmitted = 1; | |||
} | |||
lr_think_time( 1 ); | |||
expenses_remaining = atoi(lr_eval_string("{ExpenseCount}")) - atoi(lr_eval_string("{ExpenseNumber}")); | |||
if (!unsubmitted && (expenses_remaining == 0)) { | |||
next = 0; | |||
} | |||
sprintf(msgbuf, " ExpenseNumber: [%s] --> %d remaining", | |||
lr_eval_string("{ExpenseNumber}"), expenses_remaining); | |||
userLog(msgbuf); | |||
sprintf(msgbuf, " ExpenseID: [%s]", lr_eval_string("{ExpenseID}")); | |||
userLog(msgbuf); | |||
} | |||
} | |||
if (do_submit) { // Go through the wizard... | |||
sprintf(msgbuf, " LastQuestionID: [%s]", lr_eval_string("{LastQuestionID}")); | |||
userLog(msgbuf); | |||
sprintf(msgbuf, " LastQuestionTypeID: [%s]", lr_eval_string("{LastQuestionTypeID}")); | |||
userLog(msgbuf); | |||
lr_think_time( 5 ); | |||
//----- In the Wizard --------------------------------------------- | |||
web_reg_find("Text=XXXX", LAST); | |||
web_reg_save_param("pageID", | |||
"LB=input type=\"hidden\" name=\"pageID\" value=\"", | |||
"RB=\"", | |||
LAST); | |||
lr_start_transaction("Wizard_1"); | |||
web_submit_data("Wizard_1", | |||
"Action={Protocol}://{System}/app", | |||
"Method=POST", | |||
"RecContentType=text/html", | |||
"Referer={Protocol}://{System}/app", | |||
"Snapshot=t26.inf", | |||
"Mode=HTTP", | |||
ITEMDATA, | |||
"Name=pageID", "Value={pageID}", ENDITEM, | |||
... | |||
"Name=btnNext", "Value=Next", ENDITEM, | |||
LAST); | |||
lr_end_transaction("Wizard_1", LR_AUTO); | |||
lr_think_time( 1 ); | |||
//----------------------------------------------------------------- | |||
web_reg_find("Text=XXXX", LAST); | |||
web_reg_save_param("pageID", | |||
"LB=input type=\"hidden\" name=\"pageID\" value=\"", | |||
"RB=\"", | |||
LAST); | |||
lr_start_transaction("Wizard_2"); | |||
web_submit_data("Wizard_2", | |||
"Action={Protocol}://{System}/app", | |||
"Method=POST", | |||
"RecContentType=text/html", | |||
"Referer={Protocol}://{System}/app", | |||
"Snapshot=t30.inf", | |||
"Mode=HTTP", | |||
ITEMDATA, | |||
"Name=pageID", "Value={pageID}", ENDITEM, | |||
... | |||
"Name=btnNext", "Value=Next", ENDITEM, | |||
LAST); | |||
lr_end_transaction("Wizard_2", LR_AUTO); | |||
lr_think_time( 1 ); | |||
//----------------------------------------------------------------- | |||
web_reg_find("Text=XXXX", LAST); | |||
web_reg_save_param("pageID", | |||
"LB=input type=\"hidden\" name=\"pageID\" value=\"", | |||
"RB=\"", | |||
LAST); | |||
lr_start_transaction("Wizard_3"); | |||
web_submit_data("Wizard_3", | |||
"Action={Protocol}://{System}/app", | |||
"Method=POST", | |||
"RecContentType=text/html", | |||
"Referer={Protocol}://{System}/app", | |||
"Snapshot=t34.inf", | |||
"Mode=HTTP", | |||
ITEMDATA, | |||
"Name=pageID", "Value={pageID}", ENDITEM, | |||
... | |||
"Name=btnNext", "Value=Next", ENDITEM, | |||
LAST); | |||
lr_end_transaction("Wizard_3", LR_AUTO); | |||
lr_think_time( 1 ); | |||
//----------------------------------------------------------------- | |||
web_reg_find("Text=XXXX", LAST); | |||
web_reg_save_param("pageID", | |||
"LB=input type=\"hidden\" name=\"pageID\" value=\"", | |||
"RB=\"", | |||
LAST); | |||
lr_start_transaction("Wizard_4"); | |||
web_submit_data("Wizard_4", | |||
"Action={Protocol}://{System}/app", | |||
"Method=POST", | |||
"RecContentType=text/html", | |||
"Referer={Protocol}://{System}/app", | |||
"Snapshot=t38.inf", | |||
"Mode=HTTP", | |||
ITEMDATA, | |||
"Name=pageID", "Value={pageID}", ENDITEM, | |||
... | |||
"Name=btnNext", "Value=Next", ENDITEM, | |||
LAST); | |||
lr_end_transaction("Wizard_4", LR_AUTO); | |||
lr_think_time( 1 ); | |||
//----------------------------------------------------------------- | |||
web_reg_find("Text=XXXX", LAST); | |||
web_reg_save_param("pageID", | |||
"LB=input type=\"hidden\" name=\"pageID\" value=\"", | |||
"RB=\"", | |||
LAST); | |||
lr_start_transaction("Wizard_5"); | |||
web_submit_data("Wizard_5", | |||
"Action={Protocol}://{System}/app", | |||
"Method=POST", | |||
"RecContentType=text/html", | |||
"Referer={Protocol}://{System}/app", | |||
"Snapshot=t42.inf", | |||
"Mode=HTTP", | |||
ITEMDATA, | |||
"Name=pageID", "Value={pageID}", ENDITEM, | |||
... | |||
"Name=btnNext", "Value=Next", ENDITEM, | |||
LAST); | |||
lr_end_transaction("Wizard_5", LR_AUTO); | |||
lr_think_time( 1 ); | |||
//----- Finish in the Wizard -------------------------------------- | |||
web_reg_find("Text=XXXX", LAST); | |||
web_reg_save_param("pageID", | |||
"LB=input type=\"hidden\" name=\"pageID\" value=\"", | |||
"RB=\"", | |||
LAST); | |||
lr_start_transaction("Wizard_6"); | |||
web_submit_data("Wizard_6", | |||
"Action={Protocol}://{System}/app", | |||
"Method=POST", | |||
"RecContentType=text/html", | |||
"Referer={Protocol}://{System}/app", | |||
"Snapshot=t46.inf", | |||
"Mode=HTTP", | |||
ITEMDATA, | |||
"Name=pageID", "Value={pageID}", ENDITEM, | |||
... | |||
"Name=btnFinish", "Value=Finish", ENDITEM, | |||
LAST); | |||
lr_end_transaction("Wizard_6", LR_AUTO); | |||
lr_think_time( 1 ); | |||
// Should now see Submitted (with yellow background) on summary page! | |||
unsubmitted = 0; | |||
} | |||
lr_think_time( 2 ); | |||
} | |||
//------ Close the page and back out --------------------------------------- | |||
web_reg_find("Text=XXXX", LAST); | |||
web_reg_save_param("pageID", | |||
"LB=input type=\"hidden\" name=\"pageID\" value=\"", | |||
"RB=\"", | |||
LAST); | |||
lr_start_transaction("Close_ExpenseCodingScreen"); | |||
web_submit_data("Close_ExpenseCodingScreen", | |||
"Action={Protocol}://{System}/app", | |||
"Method=POST", | |||
"RecContentType=text/html", | |||
"Referer={Protocol}://{System}/app", | |||
"Snapshot=t50.inf", | |||
"Mode=HTTP", | |||
ITEMDATA, | |||
"Name=pageID", "Value={pageID}", ENDITEM, | |||
... | |||
"Name=btnClose", "Value=Close", ENDITEM, | |||
LAST); | |||
lr_end_transaction("Close_ExpenseCodingScreen", LR_AUTO); | |||
/* | |||
* Now have a yellow 'S!!!! | |||
*/ | |||
lr_think_time( 1 ); | |||
//-------------------------------------------------------------------------- | |||
web_reg_find("Text=XXXX", LAST); | |||
web_reg_save_param("pageID", | |||
"LB=input type=\"hidden\" name=\"pageID\" value=\"", | |||
"RB=\"", | |||
LAST); | |||
lr_start_transaction("Close_InvoiceDetails"); | |||
web_submit_data("Close_InvoiceDetails", | |||
"Action={Protocol}://{System}/app", | |||
"Method=POST", | |||
"RecContentType=text/html", | |||
"Referer={Protocol}://{System}/app", | |||
"Snapshot=t54.inf", | |||
"Mode=HTTP", | |||
ITEMDATA, | |||
"Name=pageID", "Value={pageID}", ENDITEM, | |||
... | |||
"Name=btnClose", "Value=Close", ENDITEM, | |||
LAST); | |||
lr_end_transaction("Close_InvoiceDetails", LR_AUTO); | |||
lr_think_time( 1 ); | |||
//-------------------------------------------------------------------------- | |||
web_reg_find("Text=XXXX", | |||
LAST); | |||
web_reg_save_param("pageID", | |||
"LB=input type=\"hidden\" name=\"pageID\" value=\"", | |||
"RB=\"", | |||
LAST); | |||
lr_start_transaction("Close_InvoiceList"); | |||
web_submit_data("Close_InvoiceList", | |||
"Action={Protocol}://{System}/app", | |||
"Method=POST", | |||
"RecContentType=text/html", | |||
"Referer={Protocol}://{System}/app", | |||
"Snapshot=t59.inf", | |||
"Mode=HTTP", | |||
ITEMDATA, | |||
"Name=pageID", "Value={pageID}", ENDITEM, | |||
... | |||
"Name=btnClose", "Value=Close", ENDITEM, | |||
LAST); | |||
lr_end_transaction("Close_InvoiceList", LR_AUTO); | |||
lr_think_time( 1 ); | |||
//-------------------------------------------------------------------------- | |||
web_reg_find("Text=XXXX", LAST); | |||
lr_start_transaction("Close_FlashPage"); | |||
web_submit_data("Close_FlashPage", | |||
"Action={Protocol}://{System}/app", | |||
"Method=POST", | |||
"RecContentType=text/html", | |||
"Referer={Protocol}://{System}/app", | |||
"Snapshot=t63.inf", | |||
"Mode=HTTP", | |||
ITEMDATA, | |||
"Name=pageID", "Value={pageID}", ENDITEM, | |||
"Name=btnOk", "Value=OK", ENDITEM, | |||
LAST); | |||
lr_end_transaction("Close_FlashPage", LR_AUTO); | |||
lr_think_time( 1 ); | |||
//-------------------------------------------------------------------------- | |||
web_reg_find("Text=XXXX", LAST); | |||
lr_start_transaction("Logoff"); | |||
web_url("Log off", | |||
"URL={Protocol}://{System}/app/Logout?LanguageID=31&Licensee=xxxx", | |||
"Resource=0", | |||
"RecContentType=text/html", | |||
"Referer={Protocol}://{System}/app", | |||
"Snapshot=t68.inf", | |||
"Mode=HTTP", | |||
LAST); | |||
lr_end_transaction("Logoff", LR_AUTO); | |||
lr_think_time( 1 ); | |||
//-------------------------------------------------------------------------- | |||
return 0; | |||
} // CodeExpenses | |||
</pre> | </pre> | ||
[[Category:LoadRunner]] | [[Category:LoadRunner]] | ||
Latest revision as of 09:07, 3 April 2009
Detect a Pattern in a Page
//-------------------------------------------------------------------------
// Warning - You are already logged on to the system in the following sessions:
web_reg_find("Text=You are already logged on to the system",
"SaveCount=warning_count", LAST);
lr_think_time(2);
web_text_link("Log On",
"Snapshot=t3.inf",
DESCRIPTION,
"Text=Log On",
ACTION,
"UserAction=Click",
LAST);
lr_end_transaction("login", LR_AUTO);
sprintf(msgbuf, "Logged in...");
userLog(msgbuf);
//-------------------------------------------------------------------------
if (atoi(lr_eval_string("{warning_count}")) > 0) {
sprintf(msgbuf, "Warning - You are already logged on to the system");
userLog(msgbuf);
web_text_link("Continue",
"Snapshot=t35.inf",
DESCRIPTION,
"Text=Continue",
ACTION,
"UserAction=Click",
LAST);
}
//-------------------------------------------------------------------------
lr_think_time(3);
lr_start_transaction("CreateBid");
web_text_link("CreateBid",
"Snapshot=t4.inf",
DESCRIPTION,
"Text=Create Bid",
"FrameName=menu",
ACTION,
"UserAction=Click",
LAST);
lr_end_transaction("CreateBid", LR_AUTO);
sprintf(msgbuf, "CreateBid done...");
userLog(msgbuf);
//-------------------------------------------------------------------------
// <input type="hidden" name="MessLine" value="No longer possible to process any bids for this bid invitation">
lr_think_time(3);
web_reg_find("Text=value=\"No longer possible to process any bids for this bid invitation",
"SaveCount=alert_count", LAST);
lr_start_transaction("select_93");
web_text_link("select_93",
"Snapshot=t5.inf",
DESCRIPTION,
"Text=93",
"FrameName=IACFrame",
ACTION,
"UserAction=Click",
LAST);
lr_end_transaction("select_93", LR_AUTO);
sprintf(msgbuf, "select_93 done...");
userLog(msgbuf);
//-------------------------------------------------------------------------
if (atoi(lr_eval_string("{alert_count}")) > 0) {
sprintf(msgbuf, "No longer possible to process any bids for this bid invitation");
userLog(msgbuf);
return 0;
}
Find and Extract Multiple Instances in a Page
Here we are looking for invoices in an invoice list...
//----- At 'Invoice Search Screen' -----------------------------------------
web_reg_find("Text=XXXX",
LAST);
web_reg_save_param("pageID",
"LB=input type=\"hidden\" name=\"pageID\" value=\"",
"RB=\"",
LAST);
// Look for lines like "<!------------------------ Invoice 427738 ---"
web_reg_save_param("invoice",
"LB=!------------------------ Invoice ",
"RB= ---",
"ORD=ALL",
LAST);
web_submit_data("app_5",
"Action=https://www.performiq.com.au/app",
"Method=POST",
"RecContentType=text/html",
"Referer=https://www.performiq.com.au/app",
"Snapshot=t22.inf",
"Mode=HTTP",
ITEMDATA,
"Name=pageID", "Value={pageID}", ENDITEM,
"Name=lastName", "Value=A", ENDITEM,
"Name=firstName", "Value=", ENDITEM,
...
"Name=btnSearch", "Value=Search", ENDITEM,
LAST);
//----- At 'Invoice List' page - <Go> to view invoice ----------------------
no_invoices = atoi(lr_eval_string('{invoice_count}'));
for (i = 1; i < no_invoices; i++) {
sprintf(invoice_param_str, "{invoice_%s}", i);
sprintf(invoice_no, lr_eval_string(invoice_param_str));
ViewInvoice(invoice_no)
}
//----- Back at 'Invoice List' page ----------------------------------------
Page Content Detection Logic
#include "web_api.h"
CodeExpenses()
{
int unsubmitted = 0;
int do_submit = FALSE;
int next = 0;
int no_expenses = 0;
int expenses_remaining = 0;
int submit_cnt = 0;
int ignore = 0;
sprintf(msgbuf, ">>>>> New ITERATION using [%s] <<<<<", lr_eval_string("{Username}"));
userLog(msgbuf);
//----- At 'Invoice List' page --------------------------------------------
web_reg_find("Text=XXXX", LAST);
lr_start_transaction("Login");
web_submit_data("Login Page",
"Action={Protocol}://{System}/app",
"Method=POST",
"RecContentType=text/html",
"Referer={Protocol}://{System}/app?pageID=0&LanguageID=31&Licensee=xxxxx",
"Snapshot=t5.inf",
"Mode=HTTP",
ITEMDATA,
"Name=pageID", "Value=0", ENDITEM,
"Name=LanguageID", "Value=31", ENDITEM,
"Name=Username", "Value={Username}", ENDITEM,
"Name=Password", "Value={Password}", ENDITEM,
"Name=OK", "Value= OK ", ENDITEM,
LAST);
lr_end_transaction("Login", LR_AUTO);
sprintf(msgbuf, " Username: [%s]", lr_eval_string("{Username}"));
userLog(msgbuf);
sprintf(msgbuf, "Host - %s Name - %s",
lr_eval_string("{System}"),
lr_eval_string("{Username}"));
userLog(msgbuf);
//----- At 'Invoice Search Screen' ----------------------------------------
web_reg_find("Text=XXXX", LAST);
// Look for lines like "<!------------------------ Invoice 427738 ---"
web_reg_save_param("pageID",
"LB=input type=\"hidden\" name=\"pageID\" value=\"",
"RB=\"",
LAST);
web_reg_save_param("invoice",
"LB=----- Invoice ",
"RB= -----",
"ORD=ALL",
LAST);
web_reg_save_param("InvoiceID",
"LB=input type=\"hidden\" name=\"InvoiceID\" value=\"",
"RB=\"",
LAST);
lr_start_transaction("InvoiceList");
web_submit_data("TO: 'Invoice List'",
"Action={Protocol}://{System}/app",
"Method=POST",
"RecContentType=text/html",
"Referer={Protocol}://{System}/app",
"Snapshot=t9.inf",
"Mode=HTTP",
ITEMDATA,
"Name=pageID", "Value=0", ENDITEM,
"Name=btnOk", "Value=OK", ENDITEM,
LAST);
lr_end_transaction("InvoiceList", LR_AUTO);
sprintf(msgbuf, " InvoiceID: [%s]", lr_eval_string("{InvoiceID}"));
userLog(msgbuf);
lr_think_time( 5 );
//----- At 'Invoice List' page - <Go> to view invoice ---------------------
web_reg_find("Text=XXXX", LAST);
web_reg_save_param("pageID",
"LB=input type=\"hidden\" name=\"pageID\" value=\"",
"RB=\"",
LAST);
// This lives here - <input type="hidden" name="ExpenseID" value="1111111"/>\r\n
web_reg_save_param("ExpenseID",
"LB=input type=\"hidden\" name=\"ExpenseID\" value=\"",
"RB=\"",
LAST);
lr_start_transaction("View_InvoiceDetails");
web_submit_data("View_InvoiceDetails",
"Action={Protocol}://{System}/app",
"Method=POST",
"RecContentType=text/html",
"Referer={Protocol}://{System}/app",
"Snapshot=t14.inf",
"Mode=HTTP",
ITEMDATA,
"Name=pageID", "Value={pageID}", ENDITEM,
"Name=InvoiceID", "Value={InvoiceID}", ENDITEM,
"Name=ddInvoiceAction", "Value=View", ENDITEM,
"Name=btnGo", "Value=Go", ENDITEM,
LAST);
lr_end_transaction("View_InvoiceDetails", LR_AUTO);
sprintf(msgbuf, " ExpenseID: [%s]", lr_eval_string("{ExpenseID}"));
userLog(msgbuf);
lr_think_time( 5 );
//--------------------------------------------------------------------------
web_reg_find("Text=XXXX", LAST);
web_reg_save_param("pageID",
"LB=input type=\"hidden\" name=\"pageID\" value=\"",
"RB=\"",
LAST);
web_reg_save_param("AccountHolderID",
"LB=input type='hidden' name='AccountHolderID' value='",
"RB='",
LAST);
web_reg_save_param("ExpenseCount",
"LB=input type=\"hidden\" name=\"ExpenseCount\" value=\"",
"RB=\"",
LAST);
web_reg_save_param("ExpenseNumber",
"LB=input type=\"hidden\" name=\"ExpenseNumber\" value=\"",
"RB=\"",
LAST);
web_reg_find("Text=Submitted", "SaveCount=submitted_count", LAST);
web_reg_find("Text=Information Only", "SaveCount=infoonly_count", LAST);
web_reg_find("Text=Committed", "SaveCount=committed_count", LAST);
lr_start_transaction("CodingFrontend");
web_submit_data("TO: 'Coding Frontend'",
"Action={Protocol}://{System}/app",
"Method=POST",
"RecContentType=text/html",
"Referer={Protocol}://{System}/app",
"Snapshot=t18.inf",
"Mode=HTTP",
ITEMDATA,
"Name=pageID", "Value={pageID}", ENDITEM,
"Name=InvoiceID", "Value={InvoiceID}", ENDITEM,
"Name=ExpenseID", "Value={ExpenseID}", ENDITEM,
"Name=Action", "Value=Details", ENDITEM,
"Name=btnGo", "Value=Go", ENDITEM,
LAST);
lr_end_transaction("CodingFrontend", LR_AUTO);
sprintf(msgbuf, " InvoiceID: [%s]", lr_eval_string("{InvoiceID}"));
userLog(msgbuf);
sprintf(msgbuf, " AccountHolderID: [%s]", lr_eval_string("{AccountHolderID}"));
userLog(msgbuf);
sprintf(msgbuf, " ExpenseCount: [%s]", lr_eval_string("{ExpenseCount}"));
userLog(msgbuf);
/*
* We are now in Coding screen and about to use wizard
*/
lr_think_time( 10 );
//------ Enter basic data and then run the Wizard -------------------------
if (atoi(lr_eval_string("{submitted_count}")) > 0) {
// Already submitted so lets press NEXT!
unsubmitted = 0;
} else {
unsubmitted = 1;
}
if (atoi(lr_eval_string("{infoonly_count}")) > 0) {
sprintf(msgbuf, "----- Information Only -----");
userLog(msgbuf);
ignore = 1;
unsubmitted = 0;
}
if (atoi(lr_eval_string("{committed_count}")) > 0) {
sprintf(msgbuf, "----- Committed -----");
userLog(msgbuf);
ignore = 1;
unsubmitted = 0;
}
sprintf(msgbuf, "Unsubmitted flag == %d", unsubmitted);
userLog(msgbuf);
no_expenses = atoi(lr_eval_string("{ExpenseCount}"));
expenses_remaining = atoi(lr_eval_string("{ExpenseCount}"));
submit_cnt = 0;
while (expenses_remaining > 0) {
sprintf(msgbuf, " ExpenseNumber: [%s]", lr_eval_string("{ExpenseNumber}"));
userLog(msgbuf);
sprintf(msgbuf, " ExpenseID: [%s]", lr_eval_string("{ExpenseID}"));
userLog(msgbuf);
next = TRUE;
do_submit = FALSE;
while (next) {
if (unsubmitted) {
sprintf(msgbuf, "Running the Wizard on this expense:");
userLog(msgbuf);
web_reg_find("Text=XXXX", LAST);
web_reg_save_param("pageID",
"LB=input type=\"hidden\" name=\"pageID\" value=\"",
"RB=\"",
LAST);
/* web_reg_save_param("ExpenseNumber",
"LB=input type=\"hidden\" name=\"ExpenseNumber\" value=\"",
"RB=\"",
LAST);
*/
web_reg_save_param("LastQuestionID",
"LB=input type=\"hidden\" name=\"LastQuestionID\" value=\"",
"RB=\"",
LAST);
web_reg_save_param("LastQuestionTypeID",
"LB=input type=\"hidden\" name=\"LastQuestionTypeID\" value=\"",
"RB=\"",
LAST);
/* WizardAnswer is and array of Radio Buttons ---------------------------------
web_reg_save_param("WizardAnswer",
"LB=input type=\"hidden\" name=\"WizardAnswer\" value=\"",
"RB=\"",
LAST);
*/
web_reg_find("Text=You cannot use the Coding Wizard", "SaveCount=submitted_count", LAST);
lr_continue_on_error(1);
lr_start_transaction("ToWizard");
web_submit_data("TO: Wizard'",
"Action={Protocol}://{System}/app",
"Method=POST",
"RecContentType=text/html",
"Referer={Protocol}://{System}/app",
"Snapshot=t22.inf",
"Mode=HTTP",
ITEMDATA,
"Name=pageID", "Value={pageID}", ENDITEM,
...
"Name=btnWizard", "Value=Wizard", ENDITEM,
LAST);
lr_end_transaction("ToWizard", LR_AUTO);
lr_continue_on_error(0);
if (atoi(lr_eval_string("{submitted_count}")) > 0) {
// Already submitted so lets press NEXT!
sprintf(msgbuf, "[To Wizard] -> Expense already submitted - Cannot re-run wizard. Selecting NEXT one!");
userLog(msgbuf);
unsubmitted = 0;
} else {
sprintf(msgbuf, "[To Wizard] -> OK");
userLog(msgbuf);
unsubmitted = 1;
do_submit = TRUE;
next = 0;
}
} else {
sprintf(msgbuf, "Selecting 'NEXT' expense:");
userLog(msgbuf);
web_reg_save_param("pageID",
"LB=input type=\"hidden\" name=\"pageID\" value=\"",
"RB=\"",
LAST);
web_reg_save_param("ExpenseNumber",
"LB=input type=\"hidden\" name=\"ExpenseNumber\" value=\"",
"RB=\"",
LAST);
web_reg_save_param("ExpenseID",
"LB=input type='hidden' name='ExpenseID' value='",
"RB='",
LAST);
web_reg_find("Text=ExpenseStatus3\">Submitted", "SaveCount=submitted_count", LAST);
web_reg_find("Text=ExpenseStatus5\">Information", "SaveCount=infoonly_count", LAST);
web_reg_find("Text=ExpenseStatus8\">Committed", "SaveCount=comitted_count", LAST);
lr_continue_on_error(1);
lr_start_transaction("NextExpense");
web_submit_data("TO: 'Next Expense'",
"Action={Protocol}://{System}/app",
"Method=POST",
"RecContentType=text/html",
"Referer={Protocol}://{System}/app",
"Snapshot=t22.inf",
"Mode=HTTP",
ITEMDATA,
"Name=pageID", "Value={pageID}", ENDITEM,
...
"Name=btnNext", "Value=Next", ENDITEM,
LAST);
lr_end_transaction("NextExpense", LR_AUTO);
lr_continue_on_error(0);
if (atoi(lr_eval_string("{infoonly_count}")) > 0) {
sprintf(msgbuf, "----- Information Only -----");
userLog(msgbuf);
ignore = 1;
unsubmitted = 0;
}
if (atoi(lr_eval_string("{committed_count}")) > 0) {
sprintf(msgbuf, "----- Committed -----");
userLog(msgbuf);
ignore = 1;
unsubmitted = 0;
}
if (atoi(lr_eval_string("{submitted_count}")) > 0) {
// Already submitted so lets press NEXT!
sprintf(msgbuf, "[NEXT] -> Expense already submitted. Selecting NEXT one!");
userLog(msgbuf);
unsubmitted = 0;
} else {
sprintf(msgbuf, "[NEXT] -> Expense not submitted");
userLog(msgbuf);
unsubmitted = 1;
}
lr_think_time( 1 );
expenses_remaining = atoi(lr_eval_string("{ExpenseCount}")) - atoi(lr_eval_string("{ExpenseNumber}"));
if (!unsubmitted && (expenses_remaining == 0)) {
next = 0;
}
sprintf(msgbuf, " ExpenseNumber: [%s] --> %d remaining",
lr_eval_string("{ExpenseNumber}"), expenses_remaining);
userLog(msgbuf);
sprintf(msgbuf, " ExpenseID: [%s]", lr_eval_string("{ExpenseID}"));
userLog(msgbuf);
}
}
if (do_submit) { // Go through the wizard...
sprintf(msgbuf, " LastQuestionID: [%s]", lr_eval_string("{LastQuestionID}"));
userLog(msgbuf);
sprintf(msgbuf, " LastQuestionTypeID: [%s]", lr_eval_string("{LastQuestionTypeID}"));
userLog(msgbuf);
lr_think_time( 5 );
//----- In the Wizard ---------------------------------------------
web_reg_find("Text=XXXX", LAST);
web_reg_save_param("pageID",
"LB=input type=\"hidden\" name=\"pageID\" value=\"",
"RB=\"",
LAST);
lr_start_transaction("Wizard_1");
web_submit_data("Wizard_1",
"Action={Protocol}://{System}/app",
"Method=POST",
"RecContentType=text/html",
"Referer={Protocol}://{System}/app",
"Snapshot=t26.inf",
"Mode=HTTP",
ITEMDATA,
"Name=pageID", "Value={pageID}", ENDITEM,
...
"Name=btnNext", "Value=Next", ENDITEM,
LAST);
lr_end_transaction("Wizard_1", LR_AUTO);
lr_think_time( 1 );
//-----------------------------------------------------------------
web_reg_find("Text=XXXX", LAST);
web_reg_save_param("pageID",
"LB=input type=\"hidden\" name=\"pageID\" value=\"",
"RB=\"",
LAST);
lr_start_transaction("Wizard_2");
web_submit_data("Wizard_2",
"Action={Protocol}://{System}/app",
"Method=POST",
"RecContentType=text/html",
"Referer={Protocol}://{System}/app",
"Snapshot=t30.inf",
"Mode=HTTP",
ITEMDATA,
"Name=pageID", "Value={pageID}", ENDITEM,
...
"Name=btnNext", "Value=Next", ENDITEM,
LAST);
lr_end_transaction("Wizard_2", LR_AUTO);
lr_think_time( 1 );
//-----------------------------------------------------------------
web_reg_find("Text=XXXX", LAST);
web_reg_save_param("pageID",
"LB=input type=\"hidden\" name=\"pageID\" value=\"",
"RB=\"",
LAST);
lr_start_transaction("Wizard_3");
web_submit_data("Wizard_3",
"Action={Protocol}://{System}/app",
"Method=POST",
"RecContentType=text/html",
"Referer={Protocol}://{System}/app",
"Snapshot=t34.inf",
"Mode=HTTP",
ITEMDATA,
"Name=pageID", "Value={pageID}", ENDITEM,
...
"Name=btnNext", "Value=Next", ENDITEM,
LAST);
lr_end_transaction("Wizard_3", LR_AUTO);
lr_think_time( 1 );
//-----------------------------------------------------------------
web_reg_find("Text=XXXX", LAST);
web_reg_save_param("pageID",
"LB=input type=\"hidden\" name=\"pageID\" value=\"",
"RB=\"",
LAST);
lr_start_transaction("Wizard_4");
web_submit_data("Wizard_4",
"Action={Protocol}://{System}/app",
"Method=POST",
"RecContentType=text/html",
"Referer={Protocol}://{System}/app",
"Snapshot=t38.inf",
"Mode=HTTP",
ITEMDATA,
"Name=pageID", "Value={pageID}", ENDITEM,
...
"Name=btnNext", "Value=Next", ENDITEM,
LAST);
lr_end_transaction("Wizard_4", LR_AUTO);
lr_think_time( 1 );
//-----------------------------------------------------------------
web_reg_find("Text=XXXX", LAST);
web_reg_save_param("pageID",
"LB=input type=\"hidden\" name=\"pageID\" value=\"",
"RB=\"",
LAST);
lr_start_transaction("Wizard_5");
web_submit_data("Wizard_5",
"Action={Protocol}://{System}/app",
"Method=POST",
"RecContentType=text/html",
"Referer={Protocol}://{System}/app",
"Snapshot=t42.inf",
"Mode=HTTP",
ITEMDATA,
"Name=pageID", "Value={pageID}", ENDITEM,
...
"Name=btnNext", "Value=Next", ENDITEM,
LAST);
lr_end_transaction("Wizard_5", LR_AUTO);
lr_think_time( 1 );
//----- Finish in the Wizard --------------------------------------
web_reg_find("Text=XXXX", LAST);
web_reg_save_param("pageID",
"LB=input type=\"hidden\" name=\"pageID\" value=\"",
"RB=\"",
LAST);
lr_start_transaction("Wizard_6");
web_submit_data("Wizard_6",
"Action={Protocol}://{System}/app",
"Method=POST",
"RecContentType=text/html",
"Referer={Protocol}://{System}/app",
"Snapshot=t46.inf",
"Mode=HTTP",
ITEMDATA,
"Name=pageID", "Value={pageID}", ENDITEM,
...
"Name=btnFinish", "Value=Finish", ENDITEM,
LAST);
lr_end_transaction("Wizard_6", LR_AUTO);
lr_think_time( 1 );
// Should now see Submitted (with yellow background) on summary page!
unsubmitted = 0;
}
lr_think_time( 2 );
}
//------ Close the page and back out ---------------------------------------
web_reg_find("Text=XXXX", LAST);
web_reg_save_param("pageID",
"LB=input type=\"hidden\" name=\"pageID\" value=\"",
"RB=\"",
LAST);
lr_start_transaction("Close_ExpenseCodingScreen");
web_submit_data("Close_ExpenseCodingScreen",
"Action={Protocol}://{System}/app",
"Method=POST",
"RecContentType=text/html",
"Referer={Protocol}://{System}/app",
"Snapshot=t50.inf",
"Mode=HTTP",
ITEMDATA,
"Name=pageID", "Value={pageID}", ENDITEM,
...
"Name=btnClose", "Value=Close", ENDITEM,
LAST);
lr_end_transaction("Close_ExpenseCodingScreen", LR_AUTO);
/*
* Now have a yellow 'S!!!!
*/
lr_think_time( 1 );
//--------------------------------------------------------------------------
web_reg_find("Text=XXXX", LAST);
web_reg_save_param("pageID",
"LB=input type=\"hidden\" name=\"pageID\" value=\"",
"RB=\"",
LAST);
lr_start_transaction("Close_InvoiceDetails");
web_submit_data("Close_InvoiceDetails",
"Action={Protocol}://{System}/app",
"Method=POST",
"RecContentType=text/html",
"Referer={Protocol}://{System}/app",
"Snapshot=t54.inf",
"Mode=HTTP",
ITEMDATA,
"Name=pageID", "Value={pageID}", ENDITEM,
...
"Name=btnClose", "Value=Close", ENDITEM,
LAST);
lr_end_transaction("Close_InvoiceDetails", LR_AUTO);
lr_think_time( 1 );
//--------------------------------------------------------------------------
web_reg_find("Text=XXXX",
LAST);
web_reg_save_param("pageID",
"LB=input type=\"hidden\" name=\"pageID\" value=\"",
"RB=\"",
LAST);
lr_start_transaction("Close_InvoiceList");
web_submit_data("Close_InvoiceList",
"Action={Protocol}://{System}/app",
"Method=POST",
"RecContentType=text/html",
"Referer={Protocol}://{System}/app",
"Snapshot=t59.inf",
"Mode=HTTP",
ITEMDATA,
"Name=pageID", "Value={pageID}", ENDITEM,
...
"Name=btnClose", "Value=Close", ENDITEM,
LAST);
lr_end_transaction("Close_InvoiceList", LR_AUTO);
lr_think_time( 1 );
//--------------------------------------------------------------------------
web_reg_find("Text=XXXX", LAST);
lr_start_transaction("Close_FlashPage");
web_submit_data("Close_FlashPage",
"Action={Protocol}://{System}/app",
"Method=POST",
"RecContentType=text/html",
"Referer={Protocol}://{System}/app",
"Snapshot=t63.inf",
"Mode=HTTP",
ITEMDATA,
"Name=pageID", "Value={pageID}", ENDITEM,
"Name=btnOk", "Value=OK", ENDITEM,
LAST);
lr_end_transaction("Close_FlashPage", LR_AUTO);
lr_think_time( 1 );
//--------------------------------------------------------------------------
web_reg_find("Text=XXXX", LAST);
lr_start_transaction("Logoff");
web_url("Log off",
"URL={Protocol}://{System}/app/Logout?LanguageID=31&Licensee=xxxx",
"Resource=0",
"RecContentType=text/html",
"Referer={Protocol}://{System}/app",
"Snapshot=t68.inf",
"Mode=HTTP",
LAST);
lr_end_transaction("Logoff", LR_AUTO);
lr_think_time( 1 );
//--------------------------------------------------------------------------
return 0;
} // CodeExpenses