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

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

   (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;
}
每天努力一点,每天学习一点。 Keep Moving...
原文地址:https://www.cnblogs.com/channy14/p/4629519.html