• 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...
  • 相关阅读:
    Linux下干净卸载mysql详解
    服务器重启后 django无法连接mysql数据库的解决方法
    团队排表系统V3.0最佳实践及使用说明
    nginx配置部署多个单页应用 踩坑
    前端项目首屏加速 gzip打包 路由懒加载 cdn资源优化
    JS实现手动将String转换为utf8格式的arraybuffer
    微信小程序Component组件调用回调函数this指向不是本页面
    linux系统后台运行python, 关闭shell后不会中断
    pycharm连接数据库失败
    react添加onScroll事件踩坑
  • 原文地址:https://www.cnblogs.com/channy14/p/4629519.html
Copyright © 2020-2023  润新知