一 前言html
在性能測試框架開發中,須要將場景執行完成後的測試報告進行處理,彙總報告中關注的性能指標數據,而後寫入報告並郵件發送相關人員。於是,其中一個環節就是,如何從測試報告中抓取關心的各個指標數據(如,tps,響應時間,併發用戶數等)?python
二 問題分析web
LR生成測試報告時會將報告數據保存到目錄,目錄裏有相似各個指標的彙總結果,以下圖所示。但,若是想經過解析該html獲取各個指標數據,這個想法會讓你失望的!由於分析該html源碼發現,指標數據其實並不在該頁面,而是在該頁面的定義的frameset。通俗的講,就是一個頁面嵌套另外的頁面,實際數據要經過訪問內嵌頁面得到。熟悉selenium的同窗,必定清楚這類狀況,畢竟想要定位其中的元素,首先要作的操做就是switch_to_frame嘛。此處很少扯,後續會出selenium相關的系列文章。正則表達式
三 解決思路併發
通過對html源碼分析,能夠發現每一個指標數據對應存儲在Report目錄下的一個html文件,只要使用python的html解析技術獲取到,而後對數據稍加修改,增長一些標籤形式html格式的字符串,最後寫入到.html的文件便可。app
四 Python html解析技術總結框架
Python是很是擅長解析html的,方法衆多,概括如下幾種:ide
1. lxml.html源碼分析
2. BeautifulSoup性能
3. SGMLParser
4. HTMLParaer
5. Requests-HTML
6. 正則表達式
在本次實現中,採用的是 BeautifulSoup,一款用於從HTML或XML文件中提取數據的Python庫,API清晰、簡潔。其中,lr報告中的表格樣式和獲取表格數據的代碼分別以下:
lr報告的樣式表格
部分代碼以下:
五 實現效果
最後,分析場景執行結果,提取TPS、響應時間,併發用戶數等指標數據,並生成彙總報告的樣式以下:
其餘資源:
python入門課程:http://i.youku.com/weiworld521