Cypressはテストを実行し、テストレポートを郵送します.


前言
高品質のソフトウェア配信のために、組織は自動化プロセスに移行する必要があります.手動プロセスはエラーが発生しやすく、効率が低下します.CDとdevopsを実行するチームにとって、自動化はますます重要になり、codeとreviewに集中し、他のプロセスをできるだけ自動化する必要があります.
 
Jenkins pythonスクリプト実行テストとメール送信レポート
"""
 * Create by dell on 2020/9/16
 * Author :wencheng
 *      :      To share

"""

# coding=gbk
import mimetypes
import smtplib
from email import encoders
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email.mime.text import MIMEText
import time
import zipfile
import os
import shutil


def move_file():
    origin_path = r"D:\workspace\test\cypress\screenshots"
    origin_path3 = r"D:\workspace\test\test-report.json"
    new_file_name = r"D:\workspace\test\mochawesome-report"
    shutil.move(origin_path, new_file_name)
    shutil.move(origin_path3, new_file_name)


def npx_bulid():
    command = r"cd D:\workspace\test &&npx mochawesome-merge cypress/results/*.json > test-report.json" \
              r"&&npx mochawesome-report-generator test-report.json"
    os.system(command)


def clearfile():
    shutil.rmtree(r"D:\workspace\test\cypress\results")
    shutil.rmtree(r"D:\workspace\test\mochawesome-report")


def file_tozip():
    startdir = "mochawesome-report"  #          
    file_news = 'mochawesome-report.zip'  #          
    z = zipfile.ZipFile(file_news, 'w', zipfile.ZIP_DEFLATED)  #    :    
    for dirpath, dirnames, filenames in os.walk(startdir):
        fpath = dirpath.replace(startdir, '')  #       , replace  ,         
        fpath = fpath and fpath + os.sep or ''  #           ,                   
        for filename in filenames:
            z.write(os.path.join(dirpath, filename), fpath + filename)
    print('    ')
    z.close()


def send_report():
    filepath = "mochawesome-report.zip"
    smtp_server = "smtp.exmail.qq.com"
    username = "xxxxxxx "
    password = "xxxxxxx"
    sender = 'xxxxxxx'
    # receivers = ["xxxxxxx","xxxxxxx","xxxxxxx"]  #    
    receivers = ['xxxxxxx']
    current_time = time.strftime('%Y-%m-%d-%H-%M-%S', time.localtime(time.time()))
    msg = MIMEMultipart()
    #     
    msg.attach(MIMEText("Hi,All:"
                        "
test {} " "
:http://xx.xx.xxx.xx:xxxx/" "
:admin :123456" "
xx ,.".format(current_time), 'plain', 'utf-8' )) msg['From'] = sender msg['To'] = ";".join(receivers) # list str subject = "{} ".format(current_time) msg['Subject'] = subject data = open(filepath, 'rb') ctype, encoding = mimetypes.guess_type(filepath) if ctype is None or encoding is not None: ctype = 'application/octet-stream' maintype, subtype = ctype.split('/', 1) file_msg = MIMEBase(maintype, subtype) file_msg.set_payload(data.read()) data.close() encoders.encode_base64(file_msg) # file_msg.add_header('Content-Disposition', 'attachment', filename="test.zip") # msg.attach(file_msg) try: server = smtplib.SMTP(smtp_server, 25) server.login(username, password) server.sendmail(sender, receivers, msg.as_string()) server.quit() print(" ") except Exception as err: print(" ") print(err) if __name__ == '__main__': npx_bulid() move_file() file_tozip() send_report() clearfile()

 
以上はこの文章のすべての内容で、本文の内容はみんなの学习あるいは仕事に対して一定の参考の学习の価値を持つことを望んで、もし疑问があればみんなは伝言を残して交流することができて、みんなの支持に感谢します.
詳細記事では、編集者の公衆番号に注目します.自動化テストTo share