parewise遇百萬數據跑不動?接口慢上線回歸效率低?
阿新 • • 發佈:2019-05-05
用例設計 col tle 笛卡爾積 設計 pos 結果 成本 需要
parewise遇百萬數據跑不動?
在《parewise算法性能優化》一文中,
對原來算法代碼進行了一些優化,
對於笛卡爾積後千條數據,是能滿足使用需要的。
但在實際業務中,會碰到百萬數據。
比如某接口共18個參數,每個參數均可為空,其中8個只需要單個值,10個為多選項,需要多個值。
對於多選項,我的設計是,全選+隨機n個多選(1<=n<=len-1)+空。
按照這個策略,笛卡爾積的結果就是3^8*2^10=6718464。
671萬數據!
parewise根本處理不動。
該怎麽處理?
調整用例設計。
1、為空的情況,單獨一條用例,即可以為空的,全部設置為空。parewise就不考慮為空的情況了。
3^8*2^10就變成了2^8*1^10=256,一下量級驟減。
2、視需要添加特殊的參數組合。
接口慢上線回歸效率低?
即使這樣優化了,也會產生幾十種組合。
假如接口本身響應慢,那麽腳本執行的耗時就比較長。
遇到上線前回歸,等待,是一件很痛苦的事。
該怎麽處理?
還是回到用例設計。
在開發階段,跑幾十種組合的腳本,從時間成本來看是完全可以接受的。
在上線階段,時間緊迫,就會顯得效率有些低。
而實際上,上線前回歸階段更像是一種冒煙。
是可以適當降低覆蓋度,提供效率的。
於是解決方案就是,把parewise擴展為兩種模式
def parewise(dx, mode=2):""" :param dx: :param mode: 1開發 2上線 :return: """
開發模式:就完完整整返回結果
上線模式:從結果當中,隨機返回1條用於快速冒煙
當然,如果是回歸要測修改引入,建議還是多花點時間,老老實實跑開發模式比較好。
parewise遇百萬數據跑不動?接口慢上線回歸效率低?