#转档参数设置帮助 ##一、背景 ‘KdanAuto’作为用于(半)自动化转档测试工具,用于降低重复的、需要占用大量QA 人力的工作量的工具,其App 自身的开发时间投入,也是需要纳入重点考虑。 基于未来转档、DocumentAI SDK 将会长期投入开发,相关控制参数定会持续增加, 用于同步测试的 KdanAuto 必然需要能够同步支持所新增的参数;同时 QA 用于测试的用例也必然会是随着需求增加而不断增长,相应测试项需要有更灵活的设置方式。 因此,设计了该套 【SDK新增参数 -》更新控制规则 -》App 启动加载自动配置】 控制规则,如下图: ![KdanAuto 参数规则控制流程](KdanAuto 参数规则控制流程.png) 图 1.1.1 KdanAuto 参数规则控制流程 ##二、参数控制规则文档效果及样式 注:该文档以转档 SDK1.7.0版本参数参考拟定 ###1、JPEG/PNG 格式 - SDK JPEG 格式参数信息 ![](jpeg.params.png)
图 2.1.1 SDK JPEG 格式参数信息
- 参数控制 UI 效果 ![](jpeg.png)
图 2.1.2 参数控制 UI 效果
- 参数规则属性配置 ![](jpeg.property.png)
图 2.1.3 参数规则属性配置
- 参数规则配置详情 JPEG Classs Name 快照对照测试 Class AutoTest Extention jpg Params ValueType int Property imageDpi Name Image DPI DefaultValue 216 ValueType BOOL Property isContainAnnotations Name Contain Annotations DefaultValue ###2、CSV 格式 - SDK CSV 格式参数信息 ![](csv.params.png)
图 2.2.1 SDK CSV 格式参数信息
- 参数控制 UI 效果 ![](csv.png)
图 2.2.2 参数控制 UI 效果
- 参数规则属性配置 ![](csv.property.png)
图 2.2.3 参数规则属性配置
- 参数规则配置详情 CSV Classs Name 快照对照测试 Class AutoTest Extention csv Params ValueType BOOL Property isMergeCSV Name Merge CSV DefaultValue ###3、TXT 格式 - SDK TXT 格式参数信息 ![](txt.params.png)
图 2.3.1 SDK TXT 格式参数信息
- 参数控制 UI 效果 ![](txt.png)
图 2.3.2 参数控制 UI 效果
- 参数规则属性配置 ![](txt.property.png)
图 2.3.3 参数规则属性配置
###4、HTML 格式 - SDK HTML 格式参数信息 ![](html.params.png)
图 2.4.1 SDK HTML 格式参数信息
- 参数控制 UI 效果 ![](html.png)
图 2.4.2 参数控制 UI 效果
- 参数规则属性配置 ![](html.property.png)
图 2.4.3 参数规则属性配置
###5、Excel 格式 - SDK Excel 格式参数信息 ![](excel.params.png)
图 2.5.1 SDK Excel 格式参数信息
- 参数控制 UI 效果 ![](excel.png)
图 2.5.2 参数控制 UI 效果
- 参数规则属性配置 ![](excel.property.png)
图 2.5.3 参数规则属性配置
###6、PPT 格式 - SDK PPT格式参数信息 ![](ppt.params.png)
图 2.6.1 SDK PPT 格式参数信息
- 参数控制 UI 效果 ![](ppt.png)
图 2.6.2 参数控制 UI 效果
- 参数规则属性配置 ![](ppt.property.png)
图 2.6.3 参数规则属性配置
###7、Word 格式 - SDK Word格式参数信息 ![](word.params.png)
图 2.7.1 SDK Word 格式参数信息
- 参数控制 UI 效果 ![](word.png)
图 2.7.2 参数控制 UI 效果
- 参数规则属性配置 ![](word.property.png)
图 2.7.3 参数规则属性配置
###8、RTF 格式 - SDK RTF格式参数信息 ![](rtf.params.png)
图 2.8.1 SDK RTF 格式参数信息
- 参数控制 UI 效果 ![](rtf.png)
图 2.8.2 参数控制 UI 效果
- 参数规则属性配置 ![](rtf.property.png)
图 2.8.3 参数规则属性配置
###9、PDF 格式 注:PDF -> PDF : PDF 文档对照测试,实际内部用到的转档为 PDF 转 JPEG格式,然后进行的 JPEG 图片对照 - SDK JPEG格式参数信息
![](jpeg.params.png)
图 2.9.1 SDK JPEG 格式参数信息
- 参数控制 UI 效果 ![](pdf.png)
图 2.9.2 参数控制 UI 效果
- 参数规则属性配置 ![](pdf.property.png)
图 2.9.3 参数规则属性配置
##三、参数设置规则 参数设置文件,在 Xcode 工程AdvanceSettingPropertyRules.plist 文件中,亦可直接修改位于 App 的如下配置文件中的配置: xxx//KdanAuto.app/Contents/Resources/AdvanceSettingPropertyRules.plist ### Classs - 测试类型设置 作用于具体文档的具体测试类型,目前有支持的测试类型有:AutoTest(全类型文档,自动转档及快照对照测试)、PDFCompareTest(PDF 文档,逐页快照对比测试)、StringAutoTest(TXT/RTF 文档,自动转档及字符对比测试)、StringAutoCompare(TXT/RTF 文档,字符对比测试) #### Class 类型 #####-【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 文档进行设置,支持做 【快照对照】 Classs Name 快照对照测试 Class AutoTest ![](word.class.png) 图 3.1.1 Word 格式 Classs 参数设置效果示意图 #####- 示例二 //RTF 文档支持【转档快照对照】、【转档对比测试】、【字符对比操作】 Classs Name 快照对照测试 Class AutoTest Name 字符对照测试 Class StringAutoTest Name 跨平台字符对比测试 Class StringAutoCompare ![](rtf.class.png) 图 3.1.2 RTF 格式 Classs 参数设置效果示意图 ### Extention - 结果文档格式后缀设置 对应文档类型(转档后)对照(/对比)测试的文档后缀名称,每种格式对应指定一种后缀格式名称,字符串属性值 - PDF:对应后缀 pdf - RTF:对应后缀 rtf - Word: 对应后缀 docx - PPT: 对应后缀 pptx - Excel:对应后缀 xlsx - CSV: 对应后缀 csv - HTML: 对应后缀 html - TXT:对应后缀 txt - JPEG:对应后缀 jpg - PNG:对应后缀 png - GIF:对应后缀 gif,新库暂不支持 - TIFF:对应后缀 tiff,新库暂不支持 - TGA:对应后缀 tga,新库暂不支持 - BMP:对应后缀 bmp,新库暂不支持 - JPEG2000:对应后缀jp2, 新库暂不支持 ![](all.extention.png) 图 3.2.1 Extention参数设置示意 ### Params - 转档控制参数设置 用于控制转档成各种文档过程中的转档控制参数,支持参数种类有 *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(待定) ![](bool.param.png) //plist 中对应的设置, 效果如下图 ValueType BOOL Property isMergeCSV Name Merge CSV DefaultValue ![](bool.property.png) 在 KdanAuto 参数设置界面呈现的效果 ![](bool.ui.png) ####【参数设置示例】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 ![](enum.params.png) //plist 中contentOptions属性对应的设置, 效果如下图 ValueType NSInteger Property contentOptions Name Content Options DefaultValue 2 Values Value 0 Name Only Text Value 1 Name Only Table Value 2 Name All Content //plist 中worksheetOptions属性对应的设置, 效果如下图 ValueType NSInteger Property worksheetOptions Name Worksheet Options DefaultValue 0 Values Value 0 Name EachTable Value 1 Name EachPage Value 2 Name For The Document ![](enum.property.png) 在 KdanAuto 参数设置界面呈现的效果 ![](enum.ui.png) ####【参数设置示例】int SDK 接口头文件公开的,支持外部设置的int 类型属性 如Img 格式转档,控制 图片清晰度的 DPI 参数 'imageDpi'(如下图) - 参数类型(ValueType):int - 属性(Property):imageDpi - 属性别名(Name): Image DPI (可自定) - 默认值(DefaultValue):216(待定) ![](int.params.png) //plist 中对应的设置, 效果如下图 ValueType int Property imageDpi Name Image DPI DefaultValue 216 ![](int.property.png) 在 KdanAuto 参数设置界面呈现的效果 ![](int.ui.png)