项目路径说明
内容优化
优化内容
1.自动生成的测试报告集成至项目中,可直接通过项目访问测试报告(之前生成测试报告位于项目外,需要手动打开) 优化效果:
2.增加邮件发送功能(定时任务触发用例后,生成的测试报告通过邮件发送)
部分代码
public class SendEmail {
private String smtpHost; // 邮件服务器地址
private String sendUserName; // 发件人的用户名
private String sendUserPass; // 发件人密码
private MimeMessage message; // 邮件对象
private Properties properties = new Properties();
private Session session;
private Multipart mp ;// 附件添加的组件
private List<FileDataSource> files = new LinkedList<FileDataSource>();// 存放附件文件
private SendEmail(String smtpHost, String sendUserName, String sendUserPass, String to, String cc, String mailSubject, String mailBody,
List<String> attachments) {
this.smtpHost = smtpHost;
this.sendUserName = sendUserName;
this.sendUserPass = sendUserPass;
init();
setFrom(sendUserName);
setTo(to);
setCC(cc);
setSubject(mailSubject);
setBody(mailBody);
if (attachments != null) {
for (String attachment : attachments) {
addFileAffix(attachment);
}
}
send();
}
/**
* 邮件实体
*
* @param smtpHost
* 邮件服务器地址
* @param sendUserName
* 发件邮件账号
* @param sendUserPass
* 邮箱的SMTP生成密码
* @param to
* 收件人,多个邮箱地址以半角逗号分隔
* @param cc
* 抄送,多个邮箱地址以半角逗号分隔
* @param mailSubject
* 邮件主题
* @param mailBody
* 邮件正文
* @param attachments
* 附件路径
* @return
*/
public static SendEmail entity(String smtpHost, String sendUserName, String sendUserPass, String to, String cc, String mailSubject, String mailBody,
List<String> attachments) {
return new SendEmail(smtpHost, sendUserName, sendUserPass, to, cc, mailSubject, mailBody, attachments);
}
配置文件配置邮箱服务器信息
配置文件定时任务触发testNG套件用例
#定时任务配置
#'index.job': '0 0 0 * * ?'
#'thirdOrderCancel.job': '0 0/60 * * * ?'
'autoRefund.job': '0 0/60 * * * ?'
#'deleteCosUploadImg.job': '0 0 * * * ?'
定时任务触发类
//通过配置文件执行定时任务运行testng.xml文件
@Service
public class TimeTask {
/**
* 邮箱服务器
*/
@Value("${spring.mail.host}")
private String host;
/**
* 发邮件的人的账户
*/
@Value("${spring.mail.username}")
private String userName;
/**
* 发邮件的人的密码
*/
@Value("${spring.mail.password}")
private String password;
/**
* 发给谁
*/
@Value("${test.mail.send}")
private String toSend;
/**
* 抄送人
*/
@Value("${test.mail.cc}")
private String cc;
@Scheduled(cron = "${autoRefund.job}")
public void runTest() throws Exception {
System.out.println("----------开始执行测试用例----------");
TestNG testNG = new TestNG();
List<String> suites = new ArrayList<String>();
suites.add("src\\main\\resources\\testNG.xml");
testNG.setTestSuites(suites);
testNG.run();
//打包成zip包位置
String targetPath = "D:\\";
//项目静态文件路径
SendEmail.compressedFile("F:\\00_3IdeaProjects\\HttpClientUtils\\HttpClient\\src\\main\\resources\\static", targetPath);
List<String> fileList = new ArrayList<>();
fileList.add("D:\\static.zip");
SendEmail.entity(host, userName, password, toSend, cc, "test", "1234123412", fileList);
}
}
实际效果
控制台输出信息通过控制台日志可以看到生成的测试报告static被压缩成.zip包从一个邮件发送至另一个邮箱。
由于近期比较忙,优化未完待续更新...
- 原创不易转载请注明出处*
- 更多测试技术分享、学习资源以及一些其他福利可关注公众号:【Coding测试】获取: