jenkins 发送 cucumber 'index.html'报告到电子邮件

z4bn682m  于 2023-10-17  发布在  Jenkins
关注(0)|答案(1)|浏览(144)

我用cucumber+appium创建了一个测试自动化框架。但是在执行框架后,我想通过电子邮件发送报告(/target/cucumber/index.html)作为邮件正文,但无法做到这一点。同样的事情,我做了'testng emailable-reports.html',它的工作原理就像魅力。我试过了:1。Jenkins在selenium.html上使用了“扩展邮件插件”,报告说它工作正常,但在 cucumber 上却不起作用。2.使用java邮件API(jsoup库)。
另外,当我右键单击 cucumber index.html报告,然后它显示下面的代码:-

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Cucumber Features</title>
    <link href="style.css" rel="stylesheet">
    <script src="jquery-1.8.2.min.js"></script>
    <script src="formatter.js"></script>
    <script src="report.js"></script>
  </head>
  <body>
    <div class="cucumber-report"></div>
  </body>
</html>

当我尝试与java邮件API,首先我提取html,然后试图发送html,但它发送空白报告。请帮助我如何可以发送完整的HTML报告作为电子邮件体,还包含此报告附件'屏幕截图',附件是/目标/ cucumber /文件夹的结构:-x1c 0d1x
救命啊!!
电子邮件发送代码:-

public class Email {

    public static void main(String[] args) throws IOException, SendGridException {

        FileInputStream fin=new FileInputStream(System.getProperty("user.dir")+"/src/main/resources/config.properties");
        Properties prop=new Properties();
        prop.load(fin);         


        StringBuilder path = new StringBuilder(); 

        try     
        { BufferedReader in = new BufferedReader(new FileReader(System.getProperty("user.dir")+prop.getProperty("reports"))); 
        String str; while ((str = in.readLine()) != null) 
        { path.append(str); } in.close(); } catch (IOException e) { } String content = path.toString();

        System.out.println("HTML IS :---" +path);


        SendGrid sendGrid = new SendGrid("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
        SendGrid.Email email = new SendGrid.Email();

        try {
            String[] toList ={"[email protected]","[email protected]"};
            email.addTo(toList);
        } catch (Exception e) {

            String emailTo = "[email protected]";

            email.addTo(emailTo);
        }

        email.setFrom("[email protected]");

        try {
            SMTPAPI smtpapi = email.getSMTPAPI();

            String[] cc ={"[email protected]","[email protected]"};
            email.setCc(cc);
        } catch (Exception e) {

        }
        try {// for bcc
            String[] bcc = {"",""};
            email.setBcc(bcc);
        } catch (Exception e) {

        }

        email.setSubject("Cucumber Report");
        email.setHtml(path.toString());

        SendGrid.Response response =sendGrid.send(email);
        System.out.println("Response is " +response.toString());    



    }

电子邮件正文上的预期电子邮件(随附屏幕截图):-

e0uiprwp

e0uiprwp1#

正如您所看到的,target下的cucumber文件夹包含JS和CSS文件,以及您希望作为电子邮件附件发送的index.html文件。Html文件将这些文件作为依赖项使用,因此您无法单独发送HTML文件,这就是为什么您会得到一个空白文件。
一种解决方案是压缩整个 cucumber 文件夹并作为附件发送,另一种是编写一个自定义的 Package 器,使用cucucmber.json文件创建自己的独立HTML报告。

相关问题