测试中的数据统计分析的验证:python脚本+复杂SQL总结
正式從PHP開發(fā)轉(zhuǎn)到測試崗位已有1年半,中間的職業(yè)發(fā)展與所思所考應(yīng)該有1個階段的總結(jié),總結(jié)將在下一篇完成。今天就先通過在工作中實際用到的python腳本+復(fù)雜sql記錄一下自己在測試過程中做的數(shù)據(jù)驗證。
測試中經(jīng)常會遇到一些數(shù)據(jù)報表,數(shù)據(jù)統(tǒng)計的分析,這部分的測試重點在于數(shù)據(jù)統(tǒng)計的正確性,如何驗證數(shù)據(jù)的正確性,操作中大概分為以下幾個階段:
初級階段,是每個測試人員的必備功課,也是測試人員測試過程中的主要工作,只要需求理解到位,就可以完成。中級階段需要一些python編程基礎(chǔ)及SQL編寫能力。數(shù)據(jù)統(tǒng)計分析中,各種條件控制下的統(tǒng)計往往需要測試人員有編寫復(fù)雜SQL語句的能力。
python腳本生成大量數(shù)據(jù),不僅需要了解需求也需要了解具體的表結(jié)構(gòu),才能為后續(xù)SQL編寫查詢做好基礎(chǔ)準(zhǔn)備工作。這主要涉及編程能力,由于本人是開發(fā)轉(zhuǎn)測試,所以目前腳本都是在隨用隨學(xué)隨寫,基本就是接口調(diào)用,數(shù)據(jù)庫連接,數(shù)據(jù)的增刪改查工作,后續(xù)做數(shù)據(jù)統(tǒng)計分析也可以結(jié)合使用ECharts圖表,但是僅是為了做數(shù)據(jù)的驗證,再做頁面的圖表展示實在沒有必要,所以一條SQL往往能解決很多問題。
雖然測試的方法千千萬,內(nèi)卷也是日益嚴(yán)重,但是驗收交付中反饋的問題越少,才越能體現(xiàn)出一個測試人員的真實水平,靠譜是第一位的。
編寫SQL中總結(jié)一下個人常用到的一些函數(shù)及方法,這里以MySQL為例:
- GROUP BY 不對值為NULL的分組
下面是對一個新老客的數(shù)據(jù)分析,表中uid=null的為新客,后續(xù)相同uid記錄數(shù)=1的標(biāo)識為新客,相同uid記錄數(shù)>1的標(biāo)識為老客。如果只是通過GROUP BY uid,就會將所有uid=null的記錄分為一組,這時uid=null的記錄會被標(biāo)記為老客,與需求不符。
有些博主會使用GROUP BY IFNULL(uid, UUID()),我實際運(yùn)行了一下發(fā)現(xiàn)此種場景下UUID()生成的值相等,依然不符合需求統(tǒng)計,不知道是不是我的用法有誤,有知道的大神可以給與指點。
SELECT Id,uid, CASE WHEN COUNT(Id)=1 THEN 'new' WHEN COUNT(Id)>1 THEN 'old' END `status` FROM table_name WHERE DATE_FORMAT(create_date,'%Y-%m-%d')='2022-04-19' -- 時間格式的控制 GROUP BY IFNULL(uid,Id)) --有些博主使用IFNULL(uid,UUID())),但在實際應(yīng)用中我發(fā)現(xiàn)這樣使用UUID()生成的值是相同的,依然不能滿足需求判斷- 根據(jù)不同條件對數(shù)據(jù)進(jìn)行整合
下面是根據(jù)素材類型,統(tǒng)計素材的展示時長。圖片類型默認(rèn)展示5s,視頻素材根據(jù)素材的時長進(jìn)行數(shù)據(jù)統(tǒng)計。不同的數(shù)據(jù)擁有不同的素材類型,需要統(tǒng)計所有數(shù)據(jù)下素材的展示時長。
select SUM( IF(SUBSTRING_INDEX(dsm.material_mime,'/',1)='image',dap.count*5, (IF(SUBSTRING_INDEX(dsm.material_mime,'/',1)='video',dap.count*dsm.show_time,0)) )) from table_name1 dap inner join table_name2 dsm on dsm.schedule_id = dap.schedule_id where dap.ad_position IN('free1','free2','free3','free4') AND dap.opt_time between '2021-12-01 00:00:00' and '2021-12-01 23:59:59'總結(jié)
以上是生活随笔為你收集整理的测试中的数据统计分析的验证:python脚本+复杂SQL总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 3d盒子代码
- 下一篇: 一个简单有趣的微信聊天机器人