Loadrunner:POP3协议录制收信,使用foxmail录制到的脚本为空

时间:2023-03-09 06:37:50
Loadrunner:POP3协议录制收信,使用foxmail录制到的脚本为空

  以下录制方法使得录制到的脚本为空:

  (1)打开Virtual User Generator,点击“新建Vuser脚本”,在弹出的向导页面,选择“新建单协议脚本”,选择“POP3”协议,并确定

        Loadrunner:POP3协议录制收信,使用foxmail录制到的脚本为空

  (2)在脚本页面,弹出的“开始录制”向导,选择应用程序类型为:Win32应用程序;要录制的程序可以选择outlook.exe、foxmail.exe等,此处以foxmail.exe为例;工作目录:自己选择存放脚本的目录;录制到操作:选择Action;确定后开始录制:

        Loadrunner:POP3协议录制收信,使用foxmail录制到的脚本为空

  (3)自动打开foxmail后,选择一个邮箱进行收信;收信完成后,点击LR录制窗口的停止按钮(即下图红色框框处)

        Loadrunner:POP3协议录制收信,使用foxmail录制到的脚本为空

  (4)结束录制后,未自动生成脚本,脚本为空:

        Loadrunner:POP3协议录制收信,使用foxmail录制到的脚本为空

  

  采用portmapping的方法来解决录制脚本为空的问题,以下方式可以正常录制POP3协议收取邮件脚本:

  (1) 打开foxmail,选择想要测试POP3协议的账号,右键选择“属性”,在打开的属性窗口中,选择“邮件服务器”,POP3服务器地址输入:127.0.0.1;(如果SMTP也采用portmapping方式来测试,则发送邮件服务器(SMTP)地址也输入:127.0.0.1)

        Loadrunner:POP3协议录制收信,使用foxmail录制到的脚本为空

  (2)点击该页面下方的“高级”按钮,在弹出的高级设置窗口中,POP3服务器端口处输入0-65535中还未被本地使用的端口号【注意:要和“LR设置端口映射时输入的本地端口号”一致】;(如果SMTP也使用该方法测试,则SMTP服务器端口也做同样修改);确定完成配置

        Loadrunner:POP3协议录制收信,使用foxmail录制到的脚本为空

  (3)打开Virtual User Generator,点击“新建Vuser脚本”,在弹出的向导页面,选择“新建单协议脚本”,选择“POP3”协议,并确定

        Loadrunner:POP3协议录制收信,使用foxmail录制到的脚本为空

  (4)打开“工具”->“录制选项”,找到端口映射(portmapping);点击“新建项”

        Loadrunner:POP3协议录制收信,使用foxmail录制到的脚本为空

    这里我们要新建一个POP3对应的端口:

    1)目标服务器:输入你要连接的测试服务器IP;

    2)POP3对应的端口号为110;

    3)服务ID:选择POP3;

    4)勾中“允许从本地端口转发到目标服务器”;端口号可输入0-65535中还未被本地使用的端口号,这里选择46【注意:要和foxmail客户端收信那里设置的端口号一致】;

        Loadrunner:POP3协议录制收信,使用foxmail录制到的脚本为空

  (5)以上配置完成后,开始录制向导设置如下:

    【选择应用程序类型】为:Win32应用程序

    【要录制的程序】:选择LR安装目录下的“../bin/wplus_init_wsock.exe”;

    【工作目录】:自己选择存放脚本的目录;

    【录制到操作】:选择Action;确定后开始录制:

        Loadrunner:POP3协议录制收信,使用foxmail录制到的脚本为空

  (6)自动打开foxmail后,选择一个邮箱进行收信;收信完成后,点击LR录制窗口的停止按钮(即下图红色框框处)

        Loadrunner:POP3协议录制收信,使用foxmail录制到的脚本为空

  (7)结束录制后,自动生成脚本:

        Loadrunner:POP3协议录制收信,使用foxmail录制到的脚本为空

   

Action()
{ lr_start_transaction("pop_login"); //登录事务开始
pop31 = ;
pop3_logon_ex(&pop31, "Pop3Logon",
"URL=pop3://q1@182chen.cn:abc1233@192.168.146.182", //此处帐号和密码可进行参数化
LAST);
lr_end_transaction("pop_login", LR_AUTO); //登录事务结束 lr_rendezvous("pop_retr_rendezvous"); //设置集合点 lr_start_transaction("pop_retr"); //收信事务开始
pop3_command_ex(&pop31, "Pop3Command",
"Command=STAT",
LAST);
pop3_list_ex(&pop31, "Pop3List",
LAST);
pop3_retrieve_ex(&pop31, "RetrieveMail",
"RetrieveList=20",
"DeleteMail=No",
LAST);
pop3_retrieve_ex(&pop31, "RetrieveMail",
"RetrieveList=21",
"DeleteMail=No",
LAST);
lr_end_transaction("pop_retr", LR_AUTO); //收信事务结束 pop3_logoff_ex(&pop31);
pop3_free_ex(&pop31);

return ;
}

注:红色字体部分为录制脚本后手动添加的

imap收信、smtp收信也可以类似上述方法进行录制脚本,以下为录制的脚本

【IMAP】

Action()
{
imap1 = ; lr_start_transaction("imap_login");
imap_logon_ex(&imap1, "IMapLogon",
"URL=imap://q2@182chen.cn:abc1233@192.168.146.182",
LAST);
lr_end_transaction("imap_login", LR_AUTO); lr_start_transaction("imap_list");
imap_list_mailboxes_ex(&imap1, "ListMailboxes",
"Reference=", "MatchName=*",
LAST);
lr_end_transaction("imap_list", LR_AUTO); lr_start_transaction("imap_select");
imap_select_ex(&imap1, "SelectMailbox",
"Mailbox=INBOX",
LAST);
lr_end_transaction("imap_select", LR_AUTO); lr_rendezvous("imap_fetch_rendezvous"); //设置收信集合点 lr_start_transaction("imap_fetch");
imap_fetch_ex(&imap1, "FetchMessages",
"Mode=",
"Fetch=1:* (UID)", ENDITEM,
LAST);
lr_end_transaction("imap_fetch", LR_AUTO); imap_free_ex(&imap1); return ;
}

【SMTP】

Action()
{ smtp1 = ;
smtp_logon_ex(&smtp2, "SmtpLogon",
"URL=smtp://192.168.146.182",
"LogonUser=q2@182chen.cn",
"LogonPass=abc1233",
"CommonName=LoadRunner User",
LAST); lr_rendezvous("smtp_send_rendezvous"); //设置发信集合点 lr_start_transaction("smtp_send");
smtp_send_mail_ex(&smtp1, "SendMail",
"To=q1@182chen.cn",
"From=<q2@182chen.cn> SIZE=1401",
"Subject=1",
"ContentType=multipart/alternative;",
MAILOPTIONS,
"From: \"q2\" <q2@182chen.cn>",
"To: \"q1\" <q1@182chen.cn>",
"X-mailer: Foxmail 6, 15, 201, 23 [cn]",
MAILDATA,
"AttachRawFile=mailnote1_01.dat", //邮件的纯文本格式
"AttachRawFile=mailnote1_02.dat", //邮件的html格式
LAST);
lr_end_transaction("smtp_send", LR_AUTO); smtp_logout_ex(&smtp1); smtp_free_ex(&smtp1); return ;
}