推广系统,有如下测试场景:
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
推荐阅读: