记录java接口自动化模板优化

项目路径说明

内容优化

优化内容

1.自动生成的测试报告集成至项目中,可直接通过项目访问测试报告(之前生成测试报告位于项目外,需要手动打开) 优化效果:

2.后续会增加allure测试报告集成使用(实际效果,这里是web测试使用的allure报告)

3.增加邮件发送功能(定时任务触发用例后,生成的测试报告通过邮件发送)
部分代码

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);
    }
}
​

实际效果

控制台输出信息image

通过控制台日志可以看到生成的测试报告static被压缩成.zip包从一个邮件发送至另一个邮箱。
image

收件邮箱成功收到发送的测试报告数据下载打开测试报告数据

打开接收的测试报告,展示正常

由于近期比较忙,优化未完待续更新...

源码传送门


更多测试技术分享、学习资源以及一些其他福利可关注公众号:【Coding测试】获取:
Coding测试

原文地址:https://www.cnblogs.com/CodingTest/p/13748341.html