项目路径说明

内容优化

优化内容

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. 2022年第一天,体验了一把wan(皖)式服务

    在新的一年到来之际, 一口君首先祝各位粉丝朋友新年快乐! 心想事成! 事业顺利! 阖家欢乐! 财源广进! 2022年的第一天,一口君带着家人去了躺马鞍山,享受了一下马鞍山的洗浴. 马鞍山桑拿虽然比不上 ...

  2. 关于Protobuf在使用中的一些注意点

    Protobuf是谷歌旗下的一款二进制序列化协议 协议的编写 在项目中新建一个xxx.proto文件 文件的格式 第一行写protobuf的版本 syntax = "proto3" ...

  3. cnetos 9 安装巨坑!!! ssh无法登录

    不管任何软件登录 或任何形式的ssh登录 仅开启了密钥的登录 没有账号密码 在安装引导设置root密码时候 下面有个复选框允许root密码ssh登录 勾选即可省略这些步骤 具体步骤: 找到合适的插入位 ...

  4. Ubuntu 设置中文

    首先安装中文语言包: sudo apt install -y language-pack-zh-hans 接下来在 ~/.zshrc 或 ~/.bashrc 中添加如下内容: export \ LAN ...

  5. unity学习笔记(一)

    组件的概念 组件:一个或多个功能的容器,类似模块,插上去就有这个功能,不查没有 存在意义: 如果太依赖继承,继承树将会特别复杂 组件化设计思想有利于维护拓展 unity内任何游戏物体必须有Transf ...

  6. Blender - 动画demo体后感

    Blender 一个非常不错的免费的3D.2D软件 超级不错 我初步的按照网上的动画教程,做了一个很简单的 不断跳动的独眼球 为什么独眼?一开始我是画了两个眼睛,结果最后总是出了点问题,没有办法cop ...

  7. Chrome 浏览器远程调试 【转】

    Chrome 浏览器按F12,可以调试JS,分析HTTP包等.但是有时候需要远程调试. 比如,某个EXE它内部嵌套了浏览器的话,可以想办法打开它的远程调试功能,然后在外部连到这个地址,就能分析它的ht ...

  8. C# WebSocket高并发通信阻塞问题

    项目上遇到使用WebSocket超时问题,具体情况是这样的,OTA升级过程中,解压zip文件会有解压进度事件,将解压进度通过进程通信传给另一进程,通信提示超时异常 小伙伴堂园发现大文件使用Zip解压, ...

  9. 最小化安装killall不可用

    最小化安装killall不可用 最小化安装Centos7.4后,发现killall命令不可用 使用了以下命令,查看软件包名: yum search killall 查找后发现应使用这个安装包 yum ...

  10. 技术实践 | 在线 KTV 实现过程(内附demo体验)

    ​ 你在线上K过歌吗? 在线K歌自2014年兴起以来,已经发展出了无比庞大的用户群体,每两人中就有就有一人体验过在线 K歌,其前景不可小觑. 如此庞大的市场规模,以及音视频技术使用门槛逐步降低的加持, ...