我只會描述我們正在嘗試做什麼來估計發佈之間的初步性能影響。不知道這是否是最好的方法,但它適用於我們。
我們在Python/Django項目中有一堆測試。我們使用nose作爲測試跑步者。您可能知道,它有一個內置的命令行選項--with-xunit
,它將測試結果轉儲爲xUnit格式的xml文件(順便提一下,jenkins CI支持)。
每當我們做一個發佈,我們正在執行一個測試運行,併爲我們產生一個xml文件(我們將它存儲在代碼庫中)。這裏有一個部分從它:
...
<testcase classname="prj.tests.functional.services.workflow.test_getCases.GetCases" name="test_full_access_ok"
time="1.775"/>
<testcase classname="prj.tests.functional.services.workflow.test_getCases.GetCases"
name="test_illegal_assigned_flag" time="0.008"/>
<testcase classname="prj.tests.functional.services.workflow.test_getCases.GetCases" name="test_illegal_comments"
time="0.049"/>
...
正如您可能注意到,對於所有的測試用例time
屬性。所以,我們所做的只是將測試用例的執行時間與以前和當前版本(基本上是比較兩個xml文件)進行比較。
希望有所幫助。
我們的CI監控測試時間,但性能分析可能會導致測試時間大幅增加。 – oleg
當然,在運行測試時啓用/禁用配置文件切換將是謹慎的。小心分享您的解決方案? –