以下录制方法使得录制到的脚本为空:
(1)打开Virtual User Generator,点击“新建Vuser脚本”,在弹出的向导页面,选择“新建单协议脚本”,选择“POP3”协议,并确定
(2)在脚本页面,弹出的“开始录制”向导,选择应用程序类型为:Win32应用程序;要录制的程序可以选择outlook.exe、foxmail.exe等,此处以foxmail.exe为例;工作目录:自己选择存放脚本的目录;录制到操作:选择Action;确定后开始录制:
(3)自动打开foxmail后,选择一个邮箱进行收信;收信完成后,点击LR录制窗口的停止按钮(即下图红色框框处)
(4)结束录制后,未自动生成脚本,脚本为空:
采用portmapping的方法来解决录制脚本为空的问题,以下方式可以正常录制POP3协议收取邮件脚本:
(1) 打开foxmail,选择想要测试POP3协议的账号,右键选择“属性”,在打开的属性窗口中,选择“邮件服务器”,POP3服务器地址输入:127.0.0.1;(如果SMTP也采用portmapping方式来测试,则发送邮件服务器(SMTP)地址也输入:127.0.0.1)
(2)点击该页面下方的“高级”按钮,在弹出的高级设置窗口中,POP3服务器端口处输入0-65535中还未被本地使用的端口号【注意:要和“LR设置端口映射时输入的本地端口号”一致】;(如果SMTP也使用该方法测试,则SMTP服务器端口也做同样修改);确定完成配置
(3)打开Virtual User Generator,点击“新建Vuser脚本”,在弹出的向导页面,选择“新建单协议脚本”,选择“POP3”协议,并确定
(4)打开“工具”->“录制选项”,找到端口映射(portmapping);点击“新建项”
这里我们要新建一个POP3对应的端口:
1)目标服务器:输入你要连接的测试服务器IP;
2)POP3对应的端口号为110;
3)服务ID:选择POP3;
4)勾中“允许从本地端口转发到目标服务器”;端口号可输入0-65535中还未被本地使用的端口号,这里选择46【注意:要和foxmail客户端收信那里设置的端口号一致】;
(5)以上配置完成后,开始录制向导设置如下:
【选择应用程序类型】为:Win32应用程序;
【要录制的程序】:选择LR安装目录下的“../bin/wplus_init_wsock.exe”;
【工作目录】:自己选择存放脚本的目录;
【录制到操作】:选择Action;确定后开始录制:
(6)自动打开foxmail后,选择一个邮箱进行收信;收信完成后,点击LR录制窗口的停止按钮(即下图红色框框处)
(7)结束录制后,自动生成脚本:
Action() { lr_start_transaction("pop_login"); //登录事务开始 pop31 = 0; 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 0; }
注:红色字体部分为录制脚本后手动添加的
imap收信、smtp收信也可以类似上述方法进行录制脚本,以下为录制的脚本
【IMAP】
Action() { imap1 = 0; 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 0; }
【SMTP】
Action() { smtp1 = 0; 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 0; }