项目路径说明

内容优化

优化内容

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

实际效果

控制台输出信息

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

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

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

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

源码传送门


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

记录java接口自动化模板优化的更多相关文章

  1. java接口自动化(一) - 接口自动化测试整体认知 - 开山篇(超详解)

    简介 了解什么是接口和为什么要做接口测试.并且知道接口自动化测试应该学习哪些技术以及接口自动化测试的落地过程.其实这些基本上在python接口自动化的文章中已经详细的介绍过了,不清楚的可以过去看看.了 ...

  2. java接口自动化(三) - 手工接口测试到自动化框架设计之鸟枪换炮

    1.简介 上一篇宏哥介绍完了接口用例设计,那么这一章节,宏哥就趁热打铁介绍一下,接口测试工具.然后小伙伴们或者童鞋们就可以用接口测试工具按照设计好的测试用例开始执行用例进行接口手动测试了.关于手动测试 ...

  3. 想在java接口自动化里用上Python的requests?这样做就可以了

    相信现在很多的公司自动化测试重点都在接口层,因为接口测试更加接近代码底层,相对于UI自动化,接口自动化有着开发更快.覆盖更全.回报率高等优点. 接口自动化代码实现不难,本质上就是代码模拟发送请求,然后 ...

  4. Jmeter接口测试报告模板优化(续)

    在之前的基础上又优化了一下: 1.增加了对接口响应时间段的统计,如小于0.5s的请求有多少,0.5-1s的有多少,大于1s的有多少.可以自行修改.且不同范围内的时间字体颜色不一样,便于区分. < ...

  5. Jmeter接口测试报告模板优化

    优化后在接口报告的接口信息中,直接展示url,method,结果和响应时间,详情中展示请求和响应数据.具体如下: 模板文件 jmeter-results-detail-report_21.xsl: & ...

  6. 【亲测】Java 接口自动化步骤

    GET请求(Maven) 一. src/main/java 1.[地址--HOST]创建并设置配置文件(后缀名.properties的文本文件):存放接口请求的host地址 2.[地址]TestBas ...

  7. Java接口自动化测试之集成MyBatis和MySQL (五)

    pom.xml新增dependency <dependency> <groupId>org.mybatis</groupId> <artifactId> ...

  8. java 接口自动化测试之数据请求的简单封装

    我们自己用java写接口自动化测试框架或者做个接口自动化测试平台的话,是需要自己进行相关的请求的,因此我们需要简单的封装下httpclient,我新建了一个http工具类,将get方法和post方法进 ...

  9. java接口自动化基础知识(二)

    二.HttpClient+testNG实现对接口的测试及校验 在上面第一篇中已经实现了基础配置和测试用例数据准备,本篇文章将以登录举例进行测试执行. 这是之前login接口的代码 @Test(grou ...

  10. java接口自动化基础知识(一)

    一.TestNG+MySQL+MyBatis实现对测试用例数据的读取 本篇文章讲解TestNG+MySQL+MyBatis+ExtentReports实现对测试用例数据的读取,下面放出所有配置文件的目 ...

随机推荐

  1. JavaScript设计模式样例九 —— 桥接模式

    桥接模式(Bridge Pattern) 定义:是用于把抽象化与实现化解耦,使得二者可以独立变化. 目的:将抽象部分与实现部分分离,使它们都可以独立的变化. 场景:实现系统可能有多个角度分类,每一种角 ...

  2. Flutter调试debug或者打包release帧率只有60的原因

    问题描述 最近发现Flutter中引入像素较大的静态图片或者字体导致调试或者打包之后在高刷手机上帧率只有60的问题. 测试设备为小米13,可在开发者选项中直接打开帧率显示, 也可使用statsfl插件 ...

  3. 记一次 .NET某实验室自动进样系统 崩溃分析

    一:背景 1. 讲故事 前些天有位朋友在微信上联系到我,说他们的程序在客户那边崩掉了,让我帮忙看下怎么回事,dump也拿到了,那就上手分析吧. 二:WinDbg 分析 1. 哪里的崩溃 既然是程序的崩 ...

  4. springjdbc处理nvarchar

    当我们使用spring-jdbc来做持久化时(注意不是spring-data-jbc),有时候一些特殊字符存入数据库时会用到nvarchar.nvarchar2这种类型(比如存放化学式,如CO₂等), ...

  5. Spring:基于注解管理bean

    标记与扫描 注解 和 XML 配置文件一样,注解本身并不能执行,注解本身仅仅只是做一个标记,具体的功能是框架检测 到注解标记的位置,然后针对这个位置按照注解标记的功能来执行具体操作. 本质上:所有一切 ...

  6. MySQL服务端innodb_buffer_pool_size配置参数

    innodb_buffer_pool_size是什么? innodb_buffer_pool是 InnoDB 缓冲池,是一个内存区域保存缓存的 InnoDB 数据为表.索引和其他辅助缓冲区.innod ...

  7. js玩儿爬虫

    前言 提到爬虫可能大多都会想到python,其实爬虫的实现并不限制任何语言. 下面我们就使用js来实现,后端为express,前端为vue3. 实现功能 话不多说,先看结果: 这是项目链接:https ...

  8. SQL Server – 冷知识 (新手)

    前言 没有系统化学一本语言或技术, 那便会被一些冷知识坑. 这里做些记入. 变量作用域 SQL 是远古语法, 声明变量在最顶部就是一条上古法则. 如果我看见有了用这个法则写 C# 或 JS 我就会杀了 ...

  9. Listener——监听器

    Listener   

  10. 队列之ring_buffer优雅实现--附个人代码理解

    1. 下面张贴实现该队列仅需的两个头文件:ring_buffer_iterator.h 和 fifo_iterator.h ring_buffer_iterator.h 1 /* 2 * 3 * Th ...