#转档参数设置帮助
##一、背景 ‘KdanAuto’作为用于(半)自动化转档测试工具,用于降低重复的、需要占用大量QA 人力的工作量的工具,其App 自身的开发时间投入,也是需要纳入重点考虑。
基于未来转档、DocumentAI SDK 将会长期投入开发,相关控制参数定会持续增加, 用于同步测试的 KdanAuto 必然需要能够同步支持所新增的参数;同时 QA 用于测试的用例也必然会是随着需求增加而不断增长,相应测试项需要有更灵活的设置方式。
因此,设计了该套 【SDK新增参数 -》更新控制规则 -》App 启动加载自动配置】 控制规则,如下图:
图 1.1.1 KdanAuto 参数规则控制流程
##二、参数控制规则文档效果及样式 注:该文档以转档 SDK1.7.0版本参数参考拟定
###1、JPEG/PNG 格式
参数规则配置详情
<key>JPEG</key>
<dict>
<key>Classs</key>
<array>
<dict>
<key>Name</key>
<string>快照对照测试</string>
<key>Class</key>
<string>AutoTest</string>
</dict>
</array>
<key>Extention</key>
<string>jpg</string>
<key>Params</key>
<array>
<dict>
<key>ValueType</key>
<string>int</string>
<key>Property</key>
<string>imageDpi</string>
<key>Name</key>
<string>Image DPI</string>
<key>DefaultValue</key>
<integer>216</integer>
</dict>
<dict>
<key>ValueType</key>
<string>BOOL</string>
<key>Property</key>
<string>isContainAnnotations</string>
<key>Name</key>
<string>Contain Annotations</string>
<key>DefaultValue</key>
<false/>
</dict>
</array>
</dict>
###2、CSV 格式
参数规则配置详情
<key>CSV</key>
<dict>
<key>Classs</key>
<array>
<dict>
<key>Name</key>
<string>快照对照测试</string>
<key>Class</key>
<string>AutoTest</string>
</dict>
</array>
<key>Extention</key>
<string>csv</string>
<key>Params</key>
<array>
<dict>
<key>ValueType</key>
<string>BOOL</string>
<key>Property</key>
<string>isMergeCSV</string>
<key>Name</key>
<string>Merge CSV</string>
<key>DefaultValue</key>
<false/>
</dict>
</array>
</dict>
###3、TXT 格式
###4、HTML 格式
###5、Excel 格式
###6、PPT 格式
###7、Word 格式
###8、RTF 格式
###9、PDF 格式 注:PDF -> PDF : PDF 文档对照测试,实际内部用到的转档为 PDF 转 JPEG格式,然后进行的 JPEG 图片对照
xxx//KdanAuto.app/Contents/Resources/AdvanceSettingPropertyRules.plist
作用于具体文档的具体测试类型,目前有支持的测试类型有:AutoTest(全类型文档,自动转档及快照对照测试)、PDFCompareTest(PDF 文档,逐页快照对比测试)、StringAutoTest(TXT/RTF 文档,自动转档及字符对比测试)、StringAutoCompare(TXT/RTF 文档,字符对比测试)
#####-【AutoTest】
用途:用于自动化转档到各种类型文档,再进行快照(JPEG 格式),然后将(新旧)快照(JPEG 格式)进行逐个相素对比
支持格式:支持全类型格式,PDF、RTF、WORD、PPT、Excel、CSV、HTML、TXT、JPEG、PNG、GIF、TIFF、TGA、BMP、JPEG2000
#####- 【PDFCompareTest】
用途:用于对 PDF 文档,进行逐页快照对比测试;例如,在 Windows 端用命令行工具批量执行出来的结果文档,用该工具进行对照确认
支持格式:PDF
#####- 【StringAutoTest】
用途:用于自动化转档到字符化文档(如 TXT、RTF),再将结果文档与初始字符文档进行字符对照测试
支持格式:RTF、TXT
#####- 【StringAutoCompare】
用途:用于自动化对比字符化文档(如 TXT、RTF)的结果文档和对照文档,例如在 Windows 端做 OCR 识别,然后在 Mac 端进行结果对比
支持格式:RTF、TXT
####Class 参数设置
#####- 示例一
//例如 Word 文档进行设置,支持做 【快照对照】
<key>Classs</key>
<array>
<dict>
<key>Name</key>
<string>快照对照测试</string>
<key>Class</key>
<string>AutoTest</string>
</dict>
</array>
图 3.1.1 Word 格式 Classs 参数设置效果示意图
#####- 示例二
//RTF 文档支持【转档快照对照】、【转档对比测试】、【字符对比操作】
<key>Classs</key>
<array>
<dict>
<key>Name</key>
<string>快照对照测试</string>
<key>Class</key>
<string>AutoTest</string>
</dict>
<dict>
<key>Name</key>
<string>字符对照测试</string>
<key>Class</key>
<string>StringAutoTest</string>
</dict>
<dict>
<key>Name</key>
<string>跨平台字符对比测试</string>
<key>Class</key>
<string>StringAutoCompare</string>
</dict>
</array>
图 3.1.2 RTF 格式 Classs 参数设置效果示意图
对应文档类型(转档后)对照(/对比)测试的文档后缀名称,每种格式对应指定一种后缀格式名称,字符串属性值
用于控制转档成各种文档过程中的转档控制参数,支持参数种类有 *BOOL*、*Bool*、*bool*、*size_t*、*int*、*uint8_t*、*int8_t*、*int16_t*、*uint16_t*、*int32_t*、*uint32_t*、*int64_t*、*uint64_t*、*NSInteger*、*NSUInteger*、*float*、*double*、*CGRect*、*NSRect*、*CGSize*、*NSSize*、*NSString*以及枚举值
####【参数设置示例】BOOL SDK 接口头文件公开的,支持外部设置的BOOl 类型属性
如CSV 格式转档,控制 CSV 表格是否合并的参数 isMergeCSV(如下图)
- 参数类型(ValueType):BOOL
- 属性(Property):isMergeCSV
- 属性别名(Name): Merge CSV (可自定)
- 默认值(DefaultValue):NO(待定)
//plist 中对应的设置, 效果如下图
<dict>
<key>ValueType</key>
<string>BOOL</string>
<key>Property</key>
<string>isMergeCSV</string>
<key>Name</key>
<string>Merge CSV</string>
<key>DefaultValue</key>
<false/>
</dict>
在 KdanAuto 参数设置界面呈现的效果
####【参数设置示例】NSInteger(枚举) SDK 接口头文件公开的,支持外部设置的NSInteger (枚举类型)属性
如Excel 格式转档,控制 Excel 转档的参数 'contentOptions' 和 'worksheetOptions'(如下图)
属性contentOptions相关信息:
- 参数类型(ValueType):CPDFConvertExcelContentOptions,实际是NSInteger类型
- 属性(Property):contentOptions
- 属性别名(Name): Content Options (可自定)
- 默认值(DefaultValue): 2(对应 CPDFConvertExcelContentAllContent,待定)
- 枚举值可选项(Values):
- 选项一:
- 名称(Name): Only Text(可自定)
- 参数值(Value): 0
- 选项二:
- 名称(Name): Only Table(可自定)
- 参数值(Value): 1
- 选项三:
- 名称(Name): All Content(可自定)
- 参数值(Value): 2
属性worksheetOptions相关信息:
- 参数类型(ValueType):CPDFConvertExcelWorksheetOptions,实际是NSInteger类型
- 属性(Property):worksheetOptions
- 属性别名(Name): Worksheet Options (可自定)
- 默认值(DefaultValue): 0(对应 CPDFConvertExcelWorksheetForEachTable,待定)
- 枚举值可选项(Values):
- 选项一:
- 名称(Name): EachTable(可自定)
- 参数值(Value): 0
- 选项二:
- 名称(Name): EachPage(可自定)
- 参数值(Value): 1
- 选项三:
- 名称(Name): For The Document(可自定)
- 参数值(Value): 2
//plist 中contentOptions属性对应的设置, 效果如下图
<dict>
<key>ValueType</key>
<string>NSInteger</string>
<key>Property</key>
<string>contentOptions</string>
<key>Name</key>
<string>Content Options</string>
<key>DefaultValue</key>
<integer>2</integer>
<key>Values</key>
<array>
<dict>
<key>Value</key>
<integer>0</integer>
<key>Name</key>
<string>Only Text</string>
</dict>
<dict>
<key>Value</key>
<integer>1</integer>
<key>Name</key>
<string>Only Table</string>
</dict>
<dict>
<key>Value</key>
<integer>2</integer>
<key>Name</key>
<string>All Content</string>
</dict>
</array>
</dict>
//plist 中worksheetOptions属性对应的设置, 效果如下图
<dict>
<key>ValueType</key>
<string>NSInteger</string>
<key>Property</key>
<string>worksheetOptions</string>
<key>Name</key>
<string>Worksheet Options</string>
<key>DefaultValue</key>
<real>0</real>
<key>Values</key>
<array>
<dict>
<key>Value</key>
<integer>0</integer>
<key>Name</key>
<string>EachTable</string>
</dict>
<dict>
<key>Value</key>
<integer>1</integer>
<key>Name</key>
<string>EachPage</string>
</dict>
<dict>
<key>Value</key>
<integer>2</integer>
<key>Name</key>
<string>For The Document</string>
</dict>
</array>
</dict>
在 KdanAuto 参数设置界面呈现的效果
####【参数设置示例】int SDK 接口头文件公开的,支持外部设置的int 类型属性
如Img 格式转档,控制 图片清晰度的 DPI 参数 'imageDpi'(如下图)
- 参数类型(ValueType):int
- 属性(Property):imageDpi
- 属性别名(Name): Image DPI (可自定)
- 默认值(DefaultValue):216(待定)
//plist 中对应的设置, 效果如下图
<dict>
<key>ValueType</key>
<string>int</string>
<key>Property</key>
<string>imageDpi</string>
<key>Name</key>
<string>Image DPI</string>
<key>DefaultValue</key>
<integer>216</integer>
</dict>
在 KdanAuto 参数设置界面呈现的效果