优化extentreports在线样式改为离线加载自己项目下的样式
主要解决extentreports在线加载失败问题
- 上篇文章介绍了通过testng编写用例后使用extentreports作为测试报告的输出。java接口自动化首篇文章介绍
由于一直根据业务写接口测试,昨天跑业务接口的时候突然extentreports在线样式加载不,就知道extentreports静态服务器挂了,这样可不行,赶紧去下载静态文件放到自己的项目中,这样才有安全感。中间改静态文件路径的时候遇到一些坑,特此记录下。
入坑记录
-
展示下extentreports加载静态文件失败报告
- 解决途径
要想不使用官方在线样式,那只能通过下载extentreports源码修改样式路径后打包jar引用到自己使用的项目中。 - 下载extentreports源码修改样式路径修改后的extentreports源码地址
第一步:把extentreports源码中的dist下的两个文件复制到自己项目的静态文件夹static下
第二步:按照下图找到需要修改源码的样式路径
extentreports的pom文件
第三步:路径修改已入坑
-
把extentreports两个静态文件路径改成自己的项目静态文件路径,但是extentreports静态文件路径试了很多方法都不能加载到,都是默认自己项目的路径。最终把路径改为自己项目路径的上一级目录才算完美解决路径加载问题:
特此记录下,但是具体为什么需要改成项目路径的上一级目录,目前不是很明白,有明白的大佬看到希望在下方留意指明下 -
再次优化:把静态文件复制到项目中
修改extentreports源码内容为:(改为访问项目中的静态文件)
第一处:head.ftl
15行:<link href='./css/extent.css' type='text/css' rel='stylesheet' />
第二处:index.ftl
97行:<script src='./js/extent.js' type='text/javascript'></script>
这样可以通过项目直接访问报告
<link href='../../HttpClient/src/main/resources/static/css/extent.css' type='text/css' rel='stylesheet' />
第一处修改:
第二处修改:
第四步: maven打包extentreports修改源码后的项目(自己项目maven依赖包与extentreports修改的maven依赖包同文件夹)
然后在maven中就可以看到已经生成修改后的jar包了
- 如果不想下载extentreports源码打包的话,也没事,小编这里把修改后的路径生成的jar包放到的某盘上,关注下方公众号,后台回复【extentreports】即可获得修改后的extentreports-java-3,15.jar,放到自己的maven依赖包com/aventstack下即可,通过pom文件引用依赖即可实现离线静态文件使用。
第五步: 最后自己的项目引用修改后的extentreports的jar即可
到这里已经把extentreports静态文件离线使用了,再也不用担心extentreports官方静态资源挂掉的情况了。
-
使用示例
已经可以正常加载自己项目下的静态文件了,完美解决。
增加IO读写操作
- 根据业务优化入参参数通过文本读取,响应结果写入文本方便后期查看
//读操作读取订单号
public void readFile(){
String filename = "G:\\testdata\\order-number.txt";
String line = null;
try {
BufferedReader in = new BufferedReader(new FileReader(filename));
String fileName="G:\\testdata\\response.txt";
BufferedWriter out=new BufferedWriter(new FileWriter(fileName));
while ((line = in.readLine()) != null) {
System.out.println(line);
// 读取参数进行核销接口并获取响应结果
String text = ty(line);
System.out.println(line+":核销返回:"+text);
// 响应结果写入文本
writeFile(line+"核销返回:"+text, out);
writeFile("--------------------------------",out);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
out.close();
in.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
- 获取响应结果
由于时间原因部分功能优化待更新...
- 更多测试技术分享、学习资源以及一些其他福利可关注公众号:【Coding测试】获取:
网友评论