Jenkins是一个著名的持续集成工具,在软件开发中广泛应用。在测试方面,很多项目都选用Allure来生成测试报告。为了更好地监控测试状态并能及时修复问题,我们可以通过集成电子邮件和企微通知来通知相关人员。这篇文章将为您带来Jenkins集成电子邮件、Allure和企微通知的实战案例,并使用Python代码进行演示。

一、集成电子邮件

Jenkins支持通过电子邮件通知用户构建、部署和测试状态。这种方式可以让相关人员及时看到测试报告,快速处理问题。Jenkins支持通过SMTP协议发送邮件,并可以在邮件正文中附上构建过程的详细信息和测试报告链接。

Python中实现Jenkins集成电子邮件的代码如下:

def send_email(email_address, subject, content):
     import smtplib
     from email.mime.text import MIMEText
     from email.header import Header    # 邮件设置
     host = 'smtp.domain.com'
     port = 25
     sender = 'sender@domain.com'
     password = 'password'    # 邮件内容
     message = MIMEText(content, 'plain', 'utf-8')
     message['From'] = Header("Jenkins", 'utf-8')
     message['To'] = Header(email_address, 'utf-8')
     message['Subject'] = Header(subject, 'utf-8')    # 发送邮件
     try:
         smtpObj = smtplib.SMTP(host, port)
         smtpObj.login(sender, password)
         smtpObj.sendmail(sender, [email_address], message.as_string())
         print("邮件发送成功")
     except smtplib.SMTPException as e:
         print("Error: 无法发送邮件")


在Jenkins中,我们可以通过插件管理器安装邮件通知插件。安装插件后,我们可以在项目配置中勾选 “E-mail Notification”选项,并配置好SMTP服务器等信息。在构建完成后,将会自动发送邮件通知。

二、集成Allure

Allure是一款针对测试报告生成的开源框架,可以生成美观易懂的测试报告。通过Allure,我们可以查看测试用例的运行结果,以及失败信息和错误堆栈。

Python中使用Allure生成测试报告的代码如下:

def run_test_case():
     from allure_commons.types import AttachmentType
     import allure    # 测试步骤
     with allure.step("Step 1: 执行测试用例"):
         assert True    # 添加截图
     allure.attach("Screenshot", driver.get_screenshot_as_png(), type=AttachmentType.PNG)    # 添加日志
     allure.attach("Log", "This is a log message", attachment_type=allure.attachment_type.TEXT)


在Jenkins中,我们可以通过安装 Allure 插件来集成Allure测试报告。安装插件之后,在项目中配置Allure测试报告生成的路径。当构建完成后,我们可以在Jenkins的“Build Artifacts”页面中查看测试报告。

三、集成企微通知

企微通知是企业微信提供的通知服务,通过 API 接口发送通知,能够快速地将消息推送给指定的用户或用户组。我们可以通过企微通知来实时通知相关人员测试结果并及时修复问题,提高整个团队的效率。

Python中发送企微通知的代码如下:

import requests
def send_wechat(message):
     url = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=<key>'
     headers = {'Content-Type':'application/json'}    data = {
         'msgtype': 'text',
         'text': {
             'content': message
         }
     }    response = requests.post(url, headers=headers, json=data)
     if response.status_code == 200 and response.json()['errcode'] == 0:
         print('企微通知发送成功')
     else:
         print('企微通知发送失败')


在Jenkins中,我们可以通过构建后操作,选择企微通