首页 技术 正文
技术 2022年11月24日
0 收藏 380 点赞 4,556 浏览 4117 个字

Loadrunner支持Java Vuser,而Jmeter本身就是基于Java开发的,所以两者都可以通过JMail组件实现邮件发送。本人使用的是mail-1.4.7.jar,可以通过下载获得:http://download.csdn.net/download/smooth00/10256343

发送邮件除了需要在Loadrunner或Jmeter做好以上Jar包的引用,还需要注意在测试脚本中(Loadrunner为Java Vuser,Jmeter可以是BeanShell)引用以下包:

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Properties;
import javax.mail.BodyPart;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.Session;
import javax.mail.internet.InternetAddress;
import com.sun.mail.smtp.SMTPTransport;
import javax.activation.FileDataSource;
import javax.activation.DataHandler;public class sendEmail { /**
mailToS 邮件接收方(数组)
mailBody 邮件内容
mailFileName 邮件附件(最好是基于相对路径)
**/
public static void email(String[] mailToS,String mailBody,String mailFileName) throws Exception {
Properties props; //系统属性
MimeMessage msg; //mime邮件对象
MimeMultipart mp ; // Multipart对象,邮件内容,标题,附件等内容均添加到其后再生成minmemessage对象
Session session; //邮件会话
String filename=mailFileName;//设置文件名,如Loadrunner的output.txt
String host="smtp.exmail.qq.com"; //smtp地址
String username="chenJack@xxxxx.com"; //smtp认证用户名
String password="xxxxxxxxxx"; //smtp认证用户密码
String subject="接口自动化测试结果报告"; //邮件主题
String personalname="软件测试组"; //邮件发送人姓名
String body=mailBody; //邮件正文
String charset="UTF-8"; //邮件字符集
String mailFrom="chenJack@xxxxxx.com"; //发件人地址 props=System.getProperties();
props.setProperty("mail.smtp.host",host);
props.setProperty("mail.smtp.port","25"); //设置邮件总体信息
session=Session.getInstance(props,null);
msg=new MimeMessage(session);
mp=new MimeMultipart(); //邮件头
msg.setSubject(subject,charset);
InternetAddress[] to = new InternetAddress[mailToS.length];
InternetAddress from = new InternetAddress(mailFrom,personalname,charset);
msg.setFrom(from);
msg.setSentDate(new Date());
for(int i=0;i<mailToS.length;i++){
to[i]=new InternetAddress(mailToS[i],"测试组",charset);
} //附件
BodyPart bp=new MimeBodyPart();
FileDataSource fileds=new FileDataSource(filename);
bp.setDataHandler(new DataHandler(fileds));
bp.setFileName(fileds.getName());
mp.addBodyPart(bp);
//正文
BodyPart bp2=new MimeBodyPart(); bp2.setContent("<meta http-equiv=Content-Type content=text/html; charset=gb2312>"+body +"<br>"+ getStringDate(), "text/html;charset=GB2312");
mp.addBodyPart(bp2); msg.setContent(mp); //发送邮件
SMTPTransport t = (SMTPTransport)session.getTransport("smtp");
t.connect(host,username,password);
t.sendMessage(msg,to);
t.close();
} public static String getStringDate() {
Date currentTime = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateString = formatter.format(currentTime);
return dateString;
} public static void main(String[] args) {
try {
//发邮件给wu和li
email(new String[]{"530xxx182@qq.com","1160xxxx73@qq.com"},"接口自动化测试报告 <br> 详见附件","C:\\Users\\Administrator\\Desktop\\JmeterReport.csv");
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("成功发送邮件!");
}}

jmeter二次开发—-Loadrunner或Jmeter发送邮件报告

Loadrunner下输出邮件内容的样例:
logPrint="-------------["+list[newlist.size()-2]+"] 多表记录数汇总 正常数:"+resultCount1+" 异常数:"+resultCount2+" -------------";
lr.output_message(logPrint);//loadrunner中输出日志
mailString+=logPrint+""+lr.eval_string(""+lr.eval_string("<p>")+"")+"";//将输出日志交由mailString变量转给email函数
Jmeter的BeanShellSampler中的输出邮件内容样例:logPrint="-------------["+list[newlist.size()-2]+"] 多表记录数汇总 正常数:"+resultCount1+" 异常数:"+resultCount2+" -------------";
log.info(logPrint);//Jmeter中输出日志到log文件
System.out.println(logPrint);//Java在控制面板中输出日志
mailString+=logPrint+"<br>";//将输出日志交由mailString变量转给email函数
我们除了在邮件中可以将Loadrunner和Jmeter输出日志当成附件,我们也可以通过CSV 组件,生成CSV的报告文件,再当作附件通过邮件发送:
String csvFile = "DataSource/S-countETL".concat("-").concat(DateFormatUtils.format(new Date(), "yyyyMMdd")).concat(".csv");
CSVPrint print = CsvFilePrinter(csvFile,false);
print.writeln(new String[]{DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss.SSS"),TestName,""+cont1,result});
最后我们就可以调用email函数了,将以上的测试报告内容和生成的附件,通过Jmail进行邮件发送
email(new String[]{"wu****@rexen.com.cn","li****@rexen.com.cn"},mailString,csvFile);//发邮件给wu和li以上只是我简单举例,具体应用可以由个人发挥,甚至不需要像我上面这样笨的方式去实现,
因为Loadunner完全可以通过自带的邮件协议smtp来发送测试报告,Jmeter也可以通过POP3协议发送相关邮件请求,
甚至可以和Ant或Jenkins集成(配置和集成一些邮件组件),自动发送Jmeter的html报告。

 总结:

1,需要获取jmeter测试结果的数据(失败数,成功数,通过率)作为邮件正文内容

2,附件的格式需要优化(防止乱码,fail为红色,pass为绿色)

原文地址https://blog.csdn.net/smooth00/article/details/79358195

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,909
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,434
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,249
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,060
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,692
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,730