文本地址 點擊關註微信公眾號 wenyuqinghuai 分享提綱: 1. 問題背景 2. 代碼實現 分享提綱: 1. 問題背景 2. 代碼實現 1.問題背景 在做公司的測試的自動化測試時,覆蓋了一些開發代碼的函數,但是那些還沒有做,使用一個函數一個函數搜索的方法還是比較慢的,這裡提供一種快速找出來 ...
點擊關註微信公眾號 wenyuqinghuai
分享提綱:
1. 問題背景
2. 代碼實現
1.問題背景
在做公司的測試的自動化測試時,覆蓋了一些開發代碼的函數,但是那些還沒有做,使用一個函數一個函數搜索的方法還是比較慢的,這裡提供一種快速找出來還有那些函數沒有做的方法。
大致的思路是,完全使用shell腳本實現:
1)【搜集函數html】
將已經做了的函數,因為可以拿到url的html源碼,匹配出一個 函數集合 sourceWeb.log
2)【執行腳本獲取結果】
-- 執行腳本 sh run.sh, 裡邊做的工作是獲取開發代碼中的函數集合 local_fun.log,遍歷這些函數,沒有在文件sourceWeb.log中的就放到最終結果 result.log -- result.log 就是那些還未加到自動化測試的開發的函數
2.代碼實現
shell腳本 run.sh的代碼如下,最終生成結果是 result.log
1 #!/bin/sh 2 #以下為多行註釋 http://www.cnblogs.com/emanlee/p/3749911.html 3 :<<eof 4 【使用說明】 5 1)【搜集函數html】 6 7 將已經做了的函數,因為可以拿到url的html源碼,匹配出一個 函數集合 sourceWeb.log 8 9 2)【執行腳本獲取結果】 10 -- 執行腳本 sh run.sh, 裡邊做的工作是獲取開發代碼中的函數集合 local_fun.log,遍歷這些函數,沒有在文件sourceWeb.log中的就放到最終結果 result.log 11 -- result.log 就是那些還未加到自動化測試的開發的函數 12 eof 13 14 15 #1.獲取自動化測試已經有的函數 web_fun.log 16 function getSourceWebUrl() 17 { #{{{ 18 #獲取所在匹配行 19 grep "function_css_class” sourceWeb.url -rn |awk -F : '{printf $1+1" \n"}'>1.num.log 20 #獲取自動化系統已經有的函數 21 cat 1.num.log |xargs -I {} sed -n '{}p' sourceWeb.url >web_fun.log 22 #刪除臨時文件 23 rm 1.num.log 24 } #}}} 25 26 #2.獲取開發函數 service_fun.log 27 function getLocalFunction() 28 { #{{{ 29 grep "public function" ./ -rn|awk -F : '{printf $3" \n"}'|awk '{printf $3" \n"}'|awk -F '(' '{printf $1" \n"}'>local_fun.log 30 } #}}} 31 32 #3.獲取最後的結果(還沒有加到自動化中的函數 result.log) 33 function getLast() 34 { #{{{ 35 echo "">lastResult.log 36 #echo "@@@-----------------newStart">>lastResult.log 37 cat local_fun.log| while read line 38 do 39 #echo "File:${line}" 40 grep_res=`grep ${line} web_fun.log -rn` 41 if [ -z "$grep_res" ] 42 then 43 echo -e "\n[0未加入]${line}沒有加入自動化\n" 44 echo -e "${line}">>lastResult.log 45 else 46 echo -e "[1加入了]${line}已加入自動化" 47 48 fi 49 done 50 #排序去重 51 sort lastResult.log |uniq>result.log 52 #echo -e "@@@-------------------------newEnd\n\n">>lastResult.log 53 } #}}} 54 55 #4. 刪除中間文件 56 function rmTmpLog() 57 { #{{{ 58 #刪除臨時文件 59 rm web_fun.log 60 rm local_fun.log 61 rm lastResult.log 62 } #}}} 63 64 echo -e "start\n" 65 getSourceWebUrl; 66 getLocalFunction; 67 getLast; 68 #刪除中間文件 69 rmTmpLog; 70 echo -e "end\n"