Codecept实现前端自动化测试与邮件告警(下)

发表于:2021-7-26 09:31

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:大耳根图图    来源:掘金

  8.告警邮件
  #下载依赖
  npm install nodemailer --save
  #编写邮件发送参数
  // 引入依赖
  var nodemailer = require("nodemailer")
  // 定义发送邮件参数
  var transport = nodemailer.createTransport({
    //主机
    host: "smtp.163.com",
    // 是否使用SSL
    secureConnection: true,
    // SMTP端口号
    port: 465,
    // 发件人
    auth: {
      // 发送邮箱
      user: "@163.com",
      // 授权码
      pass: "",
    }
  })
  // 定义收件邮箱参数
  var mailOptions = {
    // 邮件昵称
    from: "",
    // 收件邮箱
    to: "",
    // 邮件标题
    subject: "码云自动化测试告警邮件",
    // 邮件内容
    text: "hello",
  }
  9.执行失败进行告警(手动)
  #进行判断,如果失败了就发送告警邮件
  // 点击登录按钮
  //I.click({css:'button, [type="submit"]'})
  let login = await tryTo(() => I.click({css: 'button, [type="submit"]'}));
  //如果失败
  if (!login) {
      // 设置告警内容
      mailOptions.text = "登录失败,详细信息请查看";
      // 发送告警邮件
      transport.sendMail(mailOptions, function(err, response) {
          if (err) {
              console.log(err);
          } else {
              console.log(response);
          }
      })
  }
  // 跳转码云开源软件页
  //I.click(SELECTORS.kyrj);
  let clickGoTo = await tryTo(() => I.click(SELECTORS.kyrj));
  //如果失败
  if (!clickGoTo) {
      // 设置告警内容
      mailOptions.text = "跳转失败,详细信息请查看";
      // 发送告警邮件
      transport.sendMail(mailOptions, function(err, response) {
          if (err) {
              console.log(err);
          } else {
              console.log(response);
          }
      })
  }
  //截图
  I.saveScreenshot("logintest.jpg")
  10.执行失败进行告警(自动)
  #安装测试报告生成依赖
  npm i mocha -D
  #安装测试报告依赖
  npm i mochawesome
  #安装压缩依赖
  npm install adm-zip
  #在codecept.conf.js配置类中添加报告参数
  mocha: {
      reporterOptions: {
        reportDir: "./output/report"
      }
  }
  #引入监听器依赖与zip打包依赖
  // 引入监听器依赖
  const { event } = require('codeceptjs');
  // 引入zip打包依赖
  var adm_zip = require('adm-zip');
  #修改邮件配置支持附件
  // 定义收件邮箱参数
  var mailOptions = {
      // 邮件昵称
      from: "@163.com",
      // 收件邮箱
      to: "@163.com",
      // 邮件标题
      subject: "",
      // 邮件内容
      text: "hello",
      attachments: [
          {
              filename: "测试报告.zip",
              path: "./output/report.zip"
          }
      ]    
  }
  #配置监听器
  //监听一旦出错,执行告警 测试失败时同步
  event.dispatcher.on(event.test.failed, (testOrSuite) => {
     //因为是失败同步执行,所以有可能报告没有生成好,所以睡5秒
     setTimeout(function() {
        //创建zip压缩包
         var zip = new adm_zip();  
         zip.addLocalFolder('./output/report');  
         zip.writeZip('./output/report.zip');    
         console.log('--- I am before test --');
         console.log(testOrSuite);
         //测试发生错误进行邮件告警
         // 设置告警内容
         mailOptions.text = "自动执行测试脚本时发生错误,具体错误报告请查看附件";
         // 设置告警标题
         mailOptions.subject = testOrSuite.title;
         //发送邮件告警
         transport.sendMail(mailOptions, function(err, response){
          if(err){
              console.log(err);
          }else{
              console.log(response);
          }
         })
      }, 5000);
  });
  #输入启动命令
  npx codeceptjs run --reporter mochawesome
  #如果执行失败就会收到对应的告警邮件。
  #解压测试报告.zip
  #打开html类型的报告即可查看详细错误信息。
  比较基本的前端自动化就告一段落了, 后面可以根据需要深入学习下,另外Codecept.js是支持移动端自动化测试,与数据Moke测试的,有兴趣的小伙伴可以深入了解下。

  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号