python3修改HTMLTestRunner,生成有截圖的測試報告,併發送測試郵件(一)

首先思路是醬紫的。想要在測試報告後面加一列截圖信息。主要的任務javascript

  1. 得到截圖
  2. 拿到截圖地址和名稱
  3. 在HTMLTestRunner生成的表格中多加一列
  4. 在表格中將截圖地址和名稱輸入進對應的測試用例裏
  5. 最後將測試報告發送給指定的郵箱

我的認爲這個難點在於第4條。css

OK 一步一步來。先說獲取手機截圖、獲得截圖地址和名稱java

1.獲取截圖主要的是用subprocess或者os模塊調用cmd命令實現,比較簡單,具體代碼以下:shell

    def screenshot():
        imageName = str(time.time()) + '.png '  # 用時間戳定義截圖名稱
        imagepath = '//sdcard//' + imageName  #手機-保存截圖地址
        path = os.getcwd() + '\\screenshot'  # 本地-保存截圖地址
        if not os.path.exists(path):         #判斷地址是否有效,若是不存在就建立一個地址
            os.mkdir( path)
        os.system("adb shell //system//bin//screencap -p " + imagepath)
        os.system('adb pull ' + imagepath + path)
        screenshotUrl = path + '\\' + imageName  #獲取具體圖片的地址
 #       print('lustrat' + screenshotUrl  + 'luend')

以上就獲得了截圖地址:screenshotUrl和名稱:imageName測試

2.如今開始說下修改HTMLTestRunner在報告表格後增長一列。(本人對HTML和css不甚瞭解,表格仍然不甚美觀,但願大神能夠幫忙優化下表格)優化

個人思路是打開本來的測試報告,按F12查看元素,找到對應的有標誌的信息,以下圖所示:spa

能夠看到一個標誌性信息:id=header_row。而後打開HTMLTestRunner搜索header_row這個關鍵字,在對應的View下面增長一列picture。(若是HTML語音功底很好的話,直接改就行,不用我這麼麻煩了)code

以此類推,具體的修改以下:blog

    REPORT_TMPL = """
<p id='show_detail_line'>Show
<a href='javascript:showCase(0)'>Summary</a>
<a href='javascript:showCase(1)'>Failed</a>
<a href='javascript:showCase(2)'>All</a>
</p>
<table id='result_table'>
<colgroup>
<col align='left' />
<col align='right' />
<col align='right' />
<col align='right' />
<col align='right' />
<col align='right' />
</colgroup>
<tr id='header_row'>
    <td>Test Group/Test case</td>
    <td>Count</td>
    <td>Pass</td>
    <td>Fail</td>
    <td>Error</td>
    <td>View</td>
    <td>Picture</td>   #增長一列截圖<!--此處修改-->
</tr>
%(test_list)s
<tr id='total_row'>
    <td>Total</td>
    <td>%(count)s</td>
    <td>%(Pass)s</td>
    <td>%(fail)s</td>
    <td>%(error)s</td>
    <td>&nbsp</td>
    <td>&nbsp</td>   <!--此處修改-->
   
        
</tr>
</table>
""" # variables: (test_list, count, Pass, fail, error)

    REPORT_CLASS_TMPL = r"""
<tr class='%(style)s'>
    <td>%(desc)s</td>
    <td>%(count)s</td>
    <td>%(Pass)s</td>
    <td>%(fail)s</td>
    <td>%(error)s</td>
    <td>&nbsp</td>
    <td>&nbsp</td>     <!--此處修改-->
    
   
</tr>
""" # variables: (style, desc, count, Pass, fail, error, cid)

目前爲止新增一列的表格已經搭好了。圖片

難點來了。。。

內容有點多,放下一篇吧。。。

相關文章
相關標籤/搜索