您好,登錄后才能下訂單哦!
一 前言
在性能測試框架開發中,需要將場景執行完成后的測試報告進行處理,匯總報告中關注的性能指標數據,然后寫入報告并郵件發送相關人員。因而,其中一個環節就是,如何從測試報告中抓取關心的各個指標數據(如,tps,響應時間,并發用戶數等)?
二 問題分析
LR生成測試報告時會將報告數據保存到目錄,目錄里有類似各個指標的匯總結果,如下圖所示。但,如果想通過解析該html獲取各個指標數據,這個想法會讓你失望的!因為分析該html源碼發現,指標數據其實并不在該頁面,而是在該頁面的定義的frameset。通俗的講,就是一個頁面嵌套另外的頁面,實際數據要通過訪問內嵌頁面獲得。熟悉selenium的同學,一定清楚這類情況,畢竟想要定位其中的元素,首先要做的操作就是switch_to_frame嘛。此處不多扯,后續會出selenium相關的系列文章。
三 解決思路
經過對html源碼分析,可以發現每個指標數據對應存儲在Report目錄下的一個html文件,只要使用python的html解析技術獲取到,然后對數據稍加修改,增加一些標簽形式html格式的字符串,最后寫入到.html的文件即可。
四 Python html解析技術總結
Python是非常擅長解析html的,方法眾多,歸納以下幾種:
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
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。