Allure java添加日志信息

本文介绍了如何在Java项目中利用Allure报告添加日志信息,由于官方文档未提供直接监听log的方法,作者通过研究资料找到了一种简单实现方式。文章主要在接口请求工具类中运用TestStep来记录请求和响应报文。
摘要由CSDN通过智能技术生成

项目中想要用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;
   
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值