推廣系統,有如下測試場景:
pIdList-->單品/庫存/API-->JavaBean-->redis-->FreeMarker-->xml文件-->NFS-->nginx-->合作方push/pull
推廣系統的合作方定義meta data,有JSON格式的,也有xml格式的,之前通過Python反序列化JSON文件進行檢查,對於xml可以使用xmllint進行檢查。
通過品id調用單品API獲取對象緩存至redis步驟經過多個項目測試考驗,已經比較成熟。對於新接入的項目,有一個很重要的測試環節,根據FreeMarker模板將JavaBean生成的xml進行測試,除了針對模板本身的測試,也要對基於模板生成的xml進行測試。
使用trang.jar,通過meta xml生成xsd規則文件。
java -jar trang.jar demo.xml demo.xsd
# 對於當前目錄下xml,通過xmllint配合schema進行標籤及內容類型檢查,將標準錯誤輸出重定向到文件 for i in *.xml do xmllint --noout --schema demo.xsd "$i" > _"$i".rs 2>&1 echo -n . done
mv _*.rs xmllint_rs/ cd xmllint_rs/ find . -name _*.rs -type f -size -25c -exec rm -rf {} ; echo . echo 請立即查看結果文件夾....
[root@Centos64 xmllint_rs]# cat _99964.xml.rs 99964.xml:4: parser error : Opening and ending tag mismatch: data line 3 and product_id product_id><![CDATA[20622471]]></product_id> ^ 99964.xml:30: parser error : Opening and ending tag mismatch: dataset line 2 and data </data> ^ 99964.xml:31: parser error : Extra content at the end of the document <data> ^
#################################################
[root@Centos64 xmllint_rs]# cat _99881.xml.rs 99881.xml:211: element total_comment_num: Schemas validity error : Element total_comment_num: 1,004 is not a valid value of the atomic type xs:integer. 99881.xml fails to validate
推薦閱讀: