首先思路是醬紫的。想要在測試報告後面加一列截圖信息。主要的任務javascript
我的認爲這個難點在於第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> </td> <td> </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> </td> <td> </td> <!--此處修改--> </tr> """ # variables: (style, desc, count, Pass, fail, error, cid)
目前爲止新增一列的表格已經搭好了。圖片
難點來了。。。
內容有點多,放下一篇吧。。。