项目中想要用allure作为报告测试模板但是发现官网文档上java没有像python一样给出监听log方法
所以找了一些资料查了一下发现这种方式算是比较简单的添加日志信息的的方法 如果哪位大神有直接监听log方法 麻烦发一份到我邮箱 不胜感激 邮箱:2213097666@qq.com
/**
监听器
**/
import io.qameta.allure.Attachment;
import org.testng.ITestResult;
import org.testng.TestListenerAdapter;
public class TestFailListener extends TestListenerAdapter {
@Override
public void onTestFailure(ITestResult result) {
// takePhoto();
saveLog("123");
}
@Attachment(value = "screen shot",type = "image/png")
public byte[] takePhoto(){
/*
BaseTester 基类中的driver 无法调用driver截图只能直接截图
byte[] screenshotAs = ((TakesScreenshot)BaseTester.driver).getScreenshotAs(OutputType.BYTES);
return screenshotAs;*/
return null;
}
@Attachment()
public String saveLog(String mesg){
return mesg;
}
}
/**
自己封装的加入到附件的报文信息格式
**/
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import io.qameta.allure.Attachment;
import org.apache.commons.lang3.StringUtils;
public class TestStep {
public static void requestAndRespondBody(String URL, String Body,String Respond){
requestBody(URL,Body);
respondBody(Respond);
}
@Attachment("请求报文")
public static String requestBody(String URL, String body) {
String str=getStr(body);
if(body!=null&&!body.equals("")){
//报告展现请求报文
return URL+"\n"+str;
}else{
return URL+"\n";
}
}
@Attachment("响应报文")
public static String respondBody(String respond) {
//报告展现响应报文
return getStr(respond);
}
@Attachment("数据库断言结果")
public static StringBuffer databaseAssertResult(StringBuffer assertResult){
//报告展现数据库断言结果
return assertResult;
}
@Attachment("响应报文断言结果")
public static StringBuffer assertRespond(StringBuffer assertResult){
//报告展现数据库断言结果
return assertResult;
}
/**
* 判断字符串是否可以转化为json对象
* @param content
* @return
*/
public static boolean isJsonObject(String content) {
// 此处应该注意,不要使用StringUtils.isEmpty(),因为当content为" "空格字符串时,JSONObject.parseObject可以解析成功,
// 实际上,这是没有什么意义的。所以content应该是非空白字符串且不为空,判断是否是JSON数组也是相同的情况。
if(StringUtils.isBlank(content))
return false;
try {
JSONObject jsonStr = JSONObject.parseObject(content);
return true;
} catch (Exception e) {
return false;
}
}
/**
* 判断字符串是否可以转化为JSON数组
* @param content
* @return
*/
public static boolean isJsonArray(String content) {
if(StringUtils.isBlank(content))
return false;
StringUtils.isEmpty(content);
try {
JSONArray jsonStr = JSONArray.parseArray(content);
return true;
} catch (Exception e) {
return false;