PyTestReportの使用

PyTestReport詳細:

https://testerhome.com/opensource_projects/78

 

サンプルコード

#のコーディング:UTF-8 
をインポートOS、ユニットテスト、時間、HTMLTestRunner、したりするsmtplib
 から email.mime.multipart インポートのMimeMultipart
 から email.mime.text インポートします:MIMEText
 から設定をインポートreadconfig
 から pytestreport インポートテストランナー
 インポートHTMLTestRunner_jpg 


trueに現在のスクリプトファイルのパス 
= os.path.dirname cur_path(os.path.realpath(__FILE__ ))
 プリント(cur_path)
 #1 (タイプ(cur_path)の)印刷


#1 ステップ1:負荷方法には、すべてのテストケースを発見
DEF(caseName =をadd_caseケース、ルールは= テスト*のの.py ):
     「」「:すべてのテストケースロードの最初のステップ「」」
    case_path = os.path.join(cur_path、caseName) ユースケースフォルダ
    #をこれが存在しない場合をケースフォルダは、それが自動的に作成されます
    IF  ないos.mkdir(case_path):os.path.exists(case_path)
     印刷" \ 033 [31mtestケースパス:033 [0メートル%S \ "%のcase_path) 

    定義の方法を発見しますパラメータ 
    を発見= unittest.defaultTestLoader.discover(case_path、
                                                   パターン =ルール、
                                                   top_level_dir = なし)




    印刷(発見)
     を返す発見の


#のステップを:HTMLレポート生成
DEFの run_case(all_case、REPORTNAME = レポート):
     「」 ' すべてのユースケースの実装、およびテスト用のHTMLレポートに結果を書き込みます:2ステップ'' '  = time.strftime(" %Y_%M _ %% D_ H_%M_%S " 
    report_path = os.path.join(cur_path、REPORTNAME)  テストレポートフォルダ

    フォルダは、このレポートに存在しない場合、自動的に作成
    IF  ないos.mkdir(report_path):os.path.exists(report_path)
    = os.path.joinのreport_abspath(report_path、今+ "とresult.html") 


    固定とresult.html生成されたテストレポート名ジェンキンスと 
    report_abspath = os.path.join(report_pathを、" とresult.html " 



    を印刷" \ 033 [31mreportパス:\ 033 [0メートル%S "%のreport_abspath)

    FP =オープン(report_abspath、" WB 


    #1 PyTestReportテストレポート 
    を開きます(report_abspathと、' WB ' FP AS):
        ランナー = テストランナー(FP、
                            タイトル = テストのタイトル
                            説明 = テストの説明
                            冗長 = 2 
        #は機能を追加するために呼び出して、値を返します
        runner.run(all_case) 



最新のテストレポートを取得:ステップ3 
DEF (report_pathをget_report_fileを):
     「」 ' 第三段階を:最新を取得します。試験報告書'' ' 
    リスト = os.listdir(report_path)
    lists.sort(キー = ラムダのFn:os.path.getmtime(os.path.join(report_path、FN)))
     印刷(U ' 最新のテストレポートの生成:' +リスト[-1 ]) 

    最新のテストレポートファイルを検索し、生成 
    REPORT_FILE = os.path.join(report_path、リスト[-1 ])
     リターンREPORT_FILE 


#のステップ4:メールボックスにテストレポートを送信
DEFのsend_mailを(SENDER、PSW、レシーバー、SmtpServerは、REPORT_FILE、ポート) :
     '' ' 4ステップ:最新のテストレポートを送信する' '' 
    オープン(REPORT_FILE、と" RB " :F AS)
        mail_body = f.read() 

    は、メッセージ内容を定義 
    MSGを= のMimeMultipart() =ます:MIMEText(mail_body 、_subtype = ' HTML '、_CHARSETというが= ' UTF-8 ' 
    MSG [ '主題' ] = ' 自动化测试报告' 
    MSG [ " から" ] = 送信元
    MSG [ " " ] = レシーバ
    msg.attach(本体)

    添加附件 
    ATT =ます:MIMEText(オープン(REPORT_FILE、" RB ")().readを" BASE64 "" UTF-8 " 
    ATT [ " のContent-Type " = " アプリケーション/オクテットストリーム" 
    ATT [ " コンテンツの廃棄"] = "添付ファイル; ファイル名= "report.htmlを" " 
    msg.attach(ATT)

    してみてください
        SMTP = smtplib.SMTP_SSL(SmtpServerは、ポート)
     を除く
        SMTP = smtplib.SMTP()
        smtp.connect(SmtpServerは、ポート)

    用户名密码
    smtp.login (送信者、PSW)
    smtp.sendmail(送信者、受信者、msg.as_string())
    smtp.quit()
    印刷' テストレポートの電子メールが送信持っている!' 

であれば __name__ == " __main__ " 
    all_case = add_case()  1加载用例
    #のテストレポート生成経路 
    run_case(all_case)  2実施例
    最新のテストレポートファイル取得 
    = os.path.join(cur_path、report_pathを" 報告"例フォルダと 
    REPORT_FILE = get_report_file(report_path)    。3最新情報を得るためにテストレポート

    #のメールボックスの設定 
    SENDER = readConfig.sender 
    PSW = readConfig.psw 
    SMTP_SERVER = readConfig.smtp_server 
    ポート = readConfig.port 
    レシーバー = readConfig.receiver
      send_mail(差出人、PSW、受信機、SMTP_SERVER、REPORT_FILE、ポート)#4レポートを送信するための最終ステップ

 

 

生成されたテストレポート

 

おすすめ

転載: www.cnblogs.com/yrxns/p/11353663.html