#转档参数设置帮助
##一、背景
‘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)