PropertySettingGuide.md 13 KB

#转档参数设置帮助

##一、背景 ‘KdanAuto’作为用于(半)自动化转档测试工具,用于降低重复的、需要占用大量QA 人力的工作量的工具,其App 自身的开发时间投入,也是需要纳入重点考虑。

基于未来转档、DocumentAI SDK 将会长期投入开发,相关控制参数定会持续增加, 用于同步测试的 KdanAuto 必然需要能够同步支持所新增的参数;同时 QA 用于测试的用例也必然会是随着需求增加而不断增长,相应测试项需要有更灵活的设置方式。

因此,设计了该套 【SDK新增参数 -》更新控制规则 -》App 启动加载自动配置】 控制规则,如下图:

KdanAuto 参数规则控制流程 图 1.1.1 KdanAuto 参数规则控制流程

##二、参数控制规则文档效果及样式 注:该文档以转档 SDK1.7.0版本参数参考拟定

###1、JPEG/PNG 格式

  • SDK JPEG 格式参数信息 图 2.1.1 SDK JPEG 格式参数信息

  • 参数控制 UI 效果 图 2.1.2 参数控制 UI 效果

  • 参数规则属性配置 图 2.1.3 参数规则属性配置

  • 参数规则配置详情

    <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 格式

    • SDK CSV 格式参数信息 图 2.2.1 SDK CSV 格式参数信息

    • 参数控制 UI 效果 图 2.2.2 参数控制 UI 效果

    • 参数规则属性配置 图 2.2.3 参数规则属性配置

    • 参数规则配置详情

      <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 格式

      • SDK TXT 格式参数信息 图 2.3.1 SDK TXT 格式参数信息

      • 参数控制 UI 效果 图 2.3.2 参数控制 UI 效果

      • 参数规则属性配置 图 2.3.3 参数规则属性配置

      • ###4、HTML 格式

        • SDK HTML 格式参数信息 图 2.4.1 SDK HTML 格式参数信息

        • 参数控制 UI 效果 图 2.4.2 参数控制 UI 效果

        • 参数规则属性配置 图 2.4.3 参数规则属性配置

        • ###5、Excel 格式

          • SDK Excel 格式参数信息 图 2.5.1 SDK Excel 格式参数信息

          • 参数控制 UI 效果 图 2.5.2 参数控制 UI 效果

          • 参数规则属性配置 图 2.5.3 参数规则属性配置

          • ###6、PPT 格式

            • SDK PPT格式参数信息 图 2.6.1 SDK PPT 格式参数信息

            • 参数控制 UI 效果 图 2.6.2 参数控制 UI 效果

            • 参数规则属性配置 图 2.6.3 参数规则属性配置

            • ###7、Word 格式

              • SDK Word格式参数信息 图 2.7.1 SDK Word 格式参数信息

              • 参数控制 UI 效果 图 2.7.2 参数控制 UI 效果

              • 参数规则属性配置 图 2.7.3 参数规则属性配置

              • ###8、RTF 格式

                • SDK RTF格式参数信息 图 2.8.1 SDK RTF 格式参数信息

                • 参数控制 UI 效果 图 2.8.2 参数控制 UI 效果

                • 参数规则属性配置 图 2.8.3 参数规则属性配置

                • ###9、PDF 格式 注:PDF -> PDF : PDF 文档对照测试,实际内部用到的转档为 PDF 转 JPEG格式,然后进行的 JPEG 图片对照

                  • SDK JPEG格式参数信息 图 2.9.1 SDK JPEG 格式参数信息

                  • 参数控制 UI 效果 图 2.9.2 参数控制 UI 效果

                  • 参数规则属性配置 图 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 文档进行设置,支持做 【快照对照】
                    
                        <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 参数设置效果示意图

                    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, 新库暂不支持

                    图 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(待定)
                    

                    //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 参数设置界面呈现的效果