LR邮件附件参数化

 

邮件附件参数化

测试要求描述:

1、  使用邮件客户端foxmail发送邮件;

2、  要求邮件携带附件,且邮件附件进行参数化;

测试过程描述:

1、  使用LoadRunner8.1录制脚本,协议选择smtp,所录制的程序为foxmail

2、  录制完成后的action脚本如下:

smtp1 = 0;

smtp_logon_ex(&smtp1, "SmtpLogon",

        "URL=smtp:// test4:ffffff@test-root",

        "CommonName=LoadRunner User",

        LAST);

 

smtp_send_mail_ex(&smtp1, "SendMail",

        "To=test1@test.mail",

        "From=test4@test.com",

        "Subject=test1",

        "ContentType=multipart/mixed;",

        MAILOPTIONS,

               "X-mailer: Foxmail 6, 11, 101, 15 [cn]",

        MAILDATA,

               "AttachRawFile=mailnote1_01.dat",

               "AttachRawFile=mailnote1_02.dat",

        LAST);

smtp_logout_ex(&smtp1);

smtp_free_ex(&smtp1);

3、  从录制的脚本可以看出,该邮件可以进行参数化的地方包括登录邮件服务器的用户名和密码、邮件接收者、邮件发送者、邮件主题、邮件正文以及邮件附件;本文仅讨论邮件附件的参数化;从上述action代码可以看出"AttachRawFile=mailnote1_01.dat",      "AttachRawFile=mailnote1_02.dat", 中的一个为邮件附件,实际分析发现mailnote1_02.dat为邮件附件;由此考虑直接把mailnote1_02.dat进行参数化,并把邮件所要携带的附件放到当前存储目录下,尝试进行回放后发现所发送的邮件没有携带附件;

4、  后分析发现mailnote1_02.dat中的内容如下所示:

Content-Type: application/octet-stream;

    name="test.txt"

Content-Transfer-Encoding: base64

Content-Disposition: attachment;

    filename="test.txt"

 

ztLDx7a8ysfW0Ln6yMs=

至此找到不能对邮件附件直接进行参数化的原因,没有把邮件附件转换成相应的编码发送出去;

5、  出现上述结果后,认为直接参数化结果的思路行不通,考虑进行其他方式的参数化;偶然发现smtp_translate_ex可以把smtp服务器进行消息转换,由此考虑是否可以使用该函数把需要携带的邮件附件进行相关的编码转换,然后再发送,经过试验后终于成功;

6、  试验成功的actiong代码如下所示:

       smtp1 = 0;

       smtp_logon_ex(&smtp1, "SmtpLogon",

              "URL=smtp://test4:ffffff@test-root",

              //"CommonName=LoadRunner User",

              LAST);

 

    smtp_translate_ex(&smtp1,"test.txt",  "Content-Type: application/octet-stream;/n  name=/"outfile1.txt/"/nContent-Transfer-Encoding: base64/nContent-Disposition: attachment;/n  filename=/"outfile1.txt/"/r/n"",BASE64_ENCODED, "outfile1.txt");

       smtp_send_mail_ex(&smtp1, "SendMail",

              "From=test4@test.com",

        "To=test1@test.mail",

              "Subject=test1",

              "ContentType=multipart/alternative;",

              MAILOPTIONS,

                     "X-mailer: Foxmail 6, 11, 101, 15 [cn]",

              MAILDATA,

                  //"AttachrRawFile=mailnote1_01.dat",

            "AttachrRawFile=outfile1.txt",

            LAST);

   

       smtp_logout_ex(&smtp1);

       smtp_free_ex(&smtp1);

注:smtp_translate_ex中第三个变量的用法得到了3atesting老大kernzhang的帮助才得以实现,在此表示感谢,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值