悠闲的测试和生活。。。 www.happy4tao.com

VU创建Java模板虚拟用户(转)

上一篇 / 下一篇  2010-06-21 14:59:57 / 个人分类:杂七杂八

我们首先需要创建Java Vuser,然后在Java Vuser环境下加载或开发Java程序。

启动VU,在“File”菜单下选择“New”,在弹出的Vuser列表中选择“Java Vuser”,如图8-16所示。

 

 

单击“OK”按钮,在VU脚本中我们看到生成如下模板脚本:

import lrapi.lr;

public class Actions

{

    public int init() {

    return 0;

    }//end of init

    public int action() {

    return 0;

    }//end of action

    public int end() {

    return 0;

    }//end of end

}

由上可见,Java Vuser中的Int()、action()、end()函数和C Vuser中的vuser_init、action、vuser_end一样,迭代的设置只对action生效,而对init和end无效。我们的开发主要在action函数中完成。

8.3.2  设置Java环境

我们知道Java环境最主要的参数有两个:一个是Java虚拟机path,另一个是classpath。

打开Vuser的运行时设置(Run-time Settings)窗口,选择Java VM,如图8-17所示。

 

图8-17  运行时设置中的Java VM配置页面

这里如果Xbootclasspath没有特殊的参数设置,对此页面不要做任何修改。因为VU将自动从path中获得Java虚拟机的路径。

单击“Classpath”,显示如图8-18所示的配置页面。

对于SMTP协议,Java开源组织已经提供了很多相关package封装,我们可以在Internet上下载,比如在jakarta网站。

我们在这里添加3个mail的jar包,即mail.jar、poi.jar和jakarta-oro-2.0.8.jar。单击“OK”按钮,关闭“Run-time Settings”窗口。

 

图8-18  运行时设置中的Java Classpath配置页面

单击VU运行按钮,编译运行通过,验证我们的设置是正确的。

8.3.3  在Java Vuser中开发SMTP发送mail脚本

首先我们需要在Java文件头进行import声明,包含相关package。

import lrapi.lr;

import java.io.File;

import java.io.FileInputStream;

import java.util.ArrayList;

import java.util.Date;

import java.util.Properties;

import javax.mail.*;

import javax.mail.internet.*;

import org.apache.poi.hssf.usermodel.*;

import com.sun.mail.smtp.*;

再次运行脚本,以验证import是否成功,否则Java会报错,显示package找不到。

在action函数中编写发送邮件的Java代码,如下:

public int action() {

     boolean ssl = false;

     //获得SMTP环境

     Properties props = System.getProperties();

     //设置SMTP主机地址

     props.put("mail.smtp.host", "192.168.1.100");

     //设置SMTP端口号

     props.put("mail.smtp.port","25");

     //设置SMTP用户名

     props.put("mail.smtp.user","test1");

     Session session=Session.getInstance(System.getProperties(),null);

     //设置邮件header字段

     String mailer = "send from VU java SMTP";

     //设置收件人

     String sendTo = "test1@cesoo.com";

     //设置抄送人

     String sendCC = "test1@cesoo.com";

     //设置发件人

     String sendFrom = "test1@cesoo.com";

     try{

        //获得发送实体

        SMTPTransport t = (SMTPTransport)session.getTransport(ssl ? "smtps" : "smtp");

        //与SMTP主机相连

        t.connect("192.168.1.100","test1","123456");

        MimeMessage msg = new MimeMessage(session);

        //设置邮件各个字段

        String subject = "testing mail subject";

        String personalName = "LR JAVA Vuser";

        String body = "testing mail body";

        String charset = "utf-8";

        InternetAddress[] to = new InternetAddress[1];

        InternetAddress from = new

    InternetAddress(sendFrom,personalName,charset);

        to[0] =new InternetAddress(sendTo,personalName,charset);

        msg.setFrom(from);

        msg.setRecipients(Message.RecipientType.TO,to);

        msg.setSubject(subject,charset);

        msg.setText(body,charset);

        msg.setSentDate(new Date()); 

        //发送邮件

        t.sendMessage(msg, msg.getAllRecipients());

    }

    catch (Exception e){

        e.printStackTrace();

    }

    return 0;

}//end of action

以上代码运行成功后,Outlook即可收到一封邮件,如图8-19所示。

 

图8-19  Java Vuser成功回放脚本并发送邮件

8.3.4  参数化增强脚本

以上脚本中的配置信息和邮件字段信息可使用参数化方法,转移到参数表中存储。参数化后,代码有如下变化:

public int action() {

    boolean ssl = false;

     //获得SMTP环境

     Properties props = System.getProperties();

     //设置SMTP主机地址

     props.put("mail.smtp.host", "<SMTPHost>");

     //设置SMTP端口号

     props.put("mail.smtp.port","<SMTPPort>");

     //设置SMTP用户名

     props.put("mail.smtp.user","<UserName>");

     Session session=Session.getInstance(System.getProperties(),null);   

     //设置邮件header字段

     String mailer = "<MailHeadere>";

     //设置收件人

     String sendTo = "<SendTo>";

     //设置抄送人

     String sendCC = "<sendCC>";

     //设置发件人

     String sendFrom = "<sendFrom>";

     try{

        //获得发送实体

        SMTPTransport t = (SMTPTransport)session.getTransport(ssl ? "smtps" : "smtp");

        //与SMTP主机相连

        t.connect("<SMTPHost>","<UserName>","<Passwd>");

        MimeMessage msg = new MimeMessage(session);

        //设置邮件各个字段

        String subject = "<mailSubject>";

        String personalName = "<PersonalName>";

        String body = "<mailBody>";

        String charset = "utf-8";

        InternetAddress[] to = new InternetAddress[1];

        InternetAddress from = new

    InternetAddress(sendFrom,personalName,charset);

        to[0] =new InternetAddress(sendTo,personalName,charset);

        msg.setFrom(from);

        msg.setRecipients(Message.RecipientType.TO,to);

        msg.setSubject(subject,charset);

        msg.setText(body,charset);

        msg.setSentDate(new Date()); 

        //发送邮件

        t.sendMessage(msg, msg.getAllRecipients());

     }

    catch (Exception e){

        e.printStackTrace();

    }

     return 0;

}//end of action

参数化后,验证脚本,能够通过。

我们就可以在参数表中更改测试数据,发送不同字符的邮件了!

中文邮件:如图8-20所示。

 

图8-20  Java Vuser参数化后成功发送中文邮件

日文邮件:如图8-21所示。

由此可见,通过Java Vuser的自开发程序代码,脚本的灵活性大大增强。这是录制脚本无法比拟的优势。

录制和开发是VU生成脚本的两种方式,我们应该根据项目需求、时间、资源等综合因素考虑选择最合适的方式。

 

图8-21  Java Vuser参数化后成功发送日文邮件


TAG:

 

评分:0

我来说两句

Open Toolbar