记录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);
}
}
实际效果
控制台输出信息
通过控制台日志可以看到生成的测试报告static被压缩成.zip包从一个邮件发送至另一个邮箱。
收件邮箱成功收到发送的测试报告数据下载打开测试报告数据
打开接收的测试报告,展示正常
由于近期比较忙,优化未完待续更新...
更多测试技术分享、学习资源以及一些其他福利可关注公众号:【Coding测试】获取:

记录java接口自动化模板优化的更多相关文章
- java接口自动化(一) - 接口自动化测试整体认知 - 开山篇(超详解)
简介 了解什么是接口和为什么要做接口测试.并且知道接口自动化测试应该学习哪些技术以及接口自动化测试的落地过程.其实这些基本上在python接口自动化的文章中已经详细的介绍过了,不清楚的可以过去看看.了 ...
- java接口自动化(三) - 手工接口测试到自动化框架设计之鸟枪换炮
1.简介 上一篇宏哥介绍完了接口用例设计,那么这一章节,宏哥就趁热打铁介绍一下,接口测试工具.然后小伙伴们或者童鞋们就可以用接口测试工具按照设计好的测试用例开始执行用例进行接口手动测试了.关于手动测试 ...
- 想在java接口自动化里用上Python的requests?这样做就可以了
相信现在很多的公司自动化测试重点都在接口层,因为接口测试更加接近代码底层,相对于UI自动化,接口自动化有着开发更快.覆盖更全.回报率高等优点. 接口自动化代码实现不难,本质上就是代码模拟发送请求,然后 ...
- Jmeter接口测试报告模板优化(续)
在之前的基础上又优化了一下: 1.增加了对接口响应时间段的统计,如小于0.5s的请求有多少,0.5-1s的有多少,大于1s的有多少.可以自行修改.且不同范围内的时间字体颜色不一样,便于区分. < ...
- Jmeter接口测试报告模板优化
优化后在接口报告的接口信息中,直接展示url,method,结果和响应时间,详情中展示请求和响应数据.具体如下: 模板文件 jmeter-results-detail-report_21.xsl: & ...
- 【亲测】Java 接口自动化步骤
GET请求(Maven) 一. src/main/java 1.[地址--HOST]创建并设置配置文件(后缀名.properties的文本文件):存放接口请求的host地址 2.[地址]TestBas ...
- Java接口自动化测试之集成MyBatis和MySQL (五)
pom.xml新增dependency <dependency> <groupId>org.mybatis</groupId> <artifactId> ...
- java 接口自动化测试之数据请求的简单封装
我们自己用java写接口自动化测试框架或者做个接口自动化测试平台的话,是需要自己进行相关的请求的,因此我们需要简单的封装下httpclient,我新建了一个http工具类,将get方法和post方法进 ...
- java接口自动化基础知识(二)
二.HttpClient+testNG实现对接口的测试及校验 在上面第一篇中已经实现了基础配置和测试用例数据准备,本篇文章将以登录举例进行测试执行. 这是之前login接口的代码 @Test(grou ...
- java接口自动化基础知识(一)
一.TestNG+MySQL+MyBatis实现对测试用例数据的读取 本篇文章讲解TestNG+MySQL+MyBatis+ExtentReports实现对测试用例数据的读取,下面放出所有配置文件的目 ...
随机推荐
- .NET中各种线程同步锁
编程编的久了,总会遇到多线程的情况,有些时候我们要几个线程合作完成某些功能,这时候可以定义一个全局对象,各个线程根据这个对象的状态来协同工作,这就是基本的线程同步. 支持多线程编程的语言一般都内置了 ...
- LeetCode300.最长递增子序列
LeetCode300.最长递增子序列 力扣题目链接(opens new window) 给你一个整数数组 nums ,找到其中最长严格递增子序列的长度. 子序列是由数组派生而来的序列,删除(或不删除 ...
- 什么是API?(详解)
编程资料时经常会看到API这个名词,网上各种高大上的解释估计放倒了一批初学者.初学者看到下面这一段话可能就有点头痛了. API(Application Programming Interface,应用 ...
- CSEC:香港城市大学提出SOTA曝光矫正算法 | CVPR 2024
在光照条件不佳下捕获的图像可能同时包含过曝和欠曝.目前的方法主要集中在调整图像亮度上,这可能会加剧欠曝区域的色调失真,并且无法恢复过曝区域的准确颜色.论文提出通过学习估计和校正这种色调偏移,来增强既有 ...
- mysql 8.0.18 根据.ibd文件和建库SQL恢复数据
前提:执行建库SQL,(包括建表的SQL) 1. 在mysql 的data文件夹中,找到需要恢复的DB名称,清除其文件夹下的所有文件,将待恢复的.ibd文件复制到此文件夹内 2. 执行SQL,然后查询 ...
- Cache policy
Ref: Cache Replacement Policies https://linuxhint.com/configuring-zfs-cache/ https://blog.chaospixel ...
- .NET 多版本兼容的精美 WinForm UI控件库
前言 有粉丝小伙伴在后台留言咨询有没有WinForm 控件库推荐,现在就给安排上. .NET 平台进行 Windows 应用程序开发的我们来说,找一个既美观又实用的 WinForm UI 控件库至关重 ...
- Redis 入门 - C#|.NET Core客户端库六种选择
经过前面的Redis基础学习,今天正式进入编码阶段了,进入编码阶段我们又同样面临一道多选题,选择什么客户端库?要是有选择困难症的又要头疼了.不过别担心我先头疼,今天就给大家介绍6款.NET系Redis ...
- 『面试题』WEB前端面试专题-Promise相关
题目一 const promise = new Promise((resolve, reject) => { console.log(1); resolve(); console.log(2); ...
- LeetCode 407. 接雨水 II (优先队列)
参考 优先队列的思路解决接雨水II,逐行解释 从最外圈开始不断向内遍历,如果内部的高度小于外部的高度,则证明该位置可以蓄水,否则不能,水会顺着该外圈流出去. 每次都处理外圈高度最小的那个位置 a,遍历 ...