Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

(作废)新的条码校验规则测试 #468

Closed
wangshunmin opened this issue Jun 10, 2019 · 8 comments
Closed

(作废)新的条码校验规则测试 #468

wangshunmin opened this issue Jun 10, 2019 · 8 comments

Comments

@wangshunmin
Copy link

wangshunmin commented Jun 10, 2019

旧版 dp2library 或 dp2libraryxe 和最新版内务配套测试,内务中系统管理窗的“条码校验”属性页的文本框应该是只读状态(表明 dp2library 或 dp2libraryxe 版本较低,配置条码校验 XML 功能无法使用)。

1.在没有配置新的 XML 校验规则的情况下,原来的 VerifyBarcode() 脚本函数功能应该正确。这样可保证新版本服务器对旧配置的用户单位环境的兼容性

2.在没有配置新的 XML 校验规则的情况下,如果原来配置了 client.cs,要测试它的正确性。包括测试条码校验功能,和条码变换功能的正确性。

3. 注意测试原来的 VerifyBarcode() 脚本函数和新的 XML 校验规则之间的关系是否正确。有 XML 校验规则的时候系统会优先使用 XML 校验规则。需要测试验证。

4.对新的 XML 校验规则,不但要测试校验功能的正确性,也要测试条码变换功能的正确性

5.要用内务的读者查询窗中的批校验读者记录功能进行测试。里面用到了读者证条码号校验的功能

6.要用内务的实体查询窗中的批校验册记录功能进行测试。里面用到了册条码号校验功能

@wangshunmin
Copy link
Author

wangshunmin commented Jun 10, 2019

(close)测试用例1
测试预期:
在没有配置新的 XML 校验规则的情况下,原来的 VerifyBarcode() 脚本函数功能应该正确。这样可保证新版本服务器对旧配置的用户单位环境的兼容性

测试结果:
dp2v3+dp2libraryxe 框架版本: 3.1.7099.32910
测试结果与测试预期相同

@wangshunmin
Copy link
Author

wangshunmin commented Jun 10, 2019

(close)测试用例2
测试预期:
在没有配置新的 XML 校验规则的情况下,如果原来配置了 client.cs,要测试它的正确性。包括测试条码校验功能,和条码变换功能的正确性

测试结果:
dp2v3+dp2libraryxe 框架版本: 3.1.7099.32910
测试结果与测试预期相同

@wangshunmin
Copy link
Author

wangshunmin commented Jun 10, 2019

(close)测试用例3

测试预期:
注意测试原来的 VerifyBarcode() 脚本函数和新的 XML 校验规则之间的关系是否正确。有 XML 校验规则的时候系统会优先使用 XML 校验规则。

测试结果:
dp2Circulation 3.4.7102.22735
dp2libraryxe 框架版本: 3.1.7102.21575
测试结果
同时配置了新旧校验码规则时,系统会只使用 XML 校验规则.

测试步骤:
启动dp2内务-功能-系统维护-系统管理窗
并选好分馆

1. 打开library.xml,在根目录root下增加<barcodeValidation>

配置某个分馆的读者证为1111-9999 的 校验规则
<range value="1111-9999" transform="..." />

2. 在脚本程序里面,配置旧的校验规则 00000001-99999999

if (StringUtil.Between(strBarcode, "00000001", "99999999") //学生

3.在常用窗口-读者窗

增加读者证为"9999"的读者,保存成功
增加读者证为"99979999"的读者,保存失败(不符合预期)

图片

4.删除library.xml里面根目录root下的<barcodeValidation> 属性

增加读者证为"9999"的读者,保存失败(符合预期)
增加读者证为"99979999"的读者,保存成功(符合预期)

@wangshunmin
Copy link
Author

wangshunmin commented Jun 10, 2019

(close)测试用例4

dp2Circulation 3.4.7108.40377

测试步骤:
启动dp2内务-功能-系统维护-系统管理窗
并选好分馆(第三中学)
1.系统维护窗-条码校验

<barcodeValidation>
    <validator location="">
        <patron>
            <CMIS />
            <range value="P0000001-P9999999" transform="result=barcode+'ALL';message='这是全局总馆的读者证条码提醒信息';" />
            <range value="R0000001-R9999999" transform=" 'R'+ barcode  " />
        </patron>
        <entity>
            <range value="T0000001-T9999999">
            </range>
        </entity>
    </validator>
    <validator location="第三中学">
        <patron>
            <CMIS />
            <range value="T000001-T999999" />
            <range value="000001-999999" transform="result='T'+barcode ;" />
        </patron>
        <entity>
            <range value="SZ001-SZ999" />
            <range value="Z001-Z999" transform="result= 'S' + barcode ;" />
        </entity>
        <transform>
	if (barcode.length == 4)
	result = "Z" + barcode;
                 else if (barcode.length == 5)
                  result = barcode;

	else
	message = '待变换的输入条码号 \''+barcode+'\' 长度不对';
        </transform>
    </validator>
</barcodeValidation>

2.保存两条读者信息

常用窗口-读者窗-
增加证条码为"000023"的读者,保存失败 符合预期
增加证条码为"T000023"的读者,保存成功 符合预期

3.保存两条册信息

常用窗口-实体查询窗-
增加册条码为"Z023"的册,保存失败 符合预期
增加册条码为"SZ023"的册,保存成功 符合预期

(注:后来新增册时,改为按馆藏地(分馆名称/馆藏地)来校验条码了,所以location不能直接写为分馆名称了。)

4.快捷出纳窗, 测试借还

.打开快捷出纳窗,选择[借],

1. 输入证条码为"000023"的读者,装载读者信息"T000023",此时提示输入册条码号

在册条码号输入框,输入"册条码Z023",提示册条码SZ023借成功
在册条码号输入框,输入"册条码SZ023",提示册条码SSZ023不存在

2. 输入证条码为"T000023"的读者,装载读者信息"T000023",此时提示

对条码号 "T000023"的进行变换时出错:待变换的条码号""长度不对

图片

修改校验规则:增加全局变换的条码长度判断,如果条码长度=7,则是原来的条码值,并让其通过.

<transform>
  if (barcode.length == 4)
  result = "Z" + barcode;
               else if (barcode.length == 5)
                result = barcode;
      else if (barcode.length == 7)
                result = barcode;
  else
      message = '待变换的输入条码号 \''+barcode+'\' 长度不对';
    </transform>

再次在快捷出纳窗(借),输入证条码为"T000023"的读者,装载读者成功

.打开快捷出纳窗,选择[还],

1. 在册条码号输入框,输入"册条码Z023",提示"SZ023"还书成功

2. 在册条码号输入框,输入"册条码SZ023",提示"SZ023"没有借出

测试结果问题:
快捷出纳窗,选择[借]
1.输入"T000023"读者证号,对条码号 "ST000023"的进行变换时出错:待变换的条码号""长度不对

测试用例4.1

<entity> 里面的transform属性
<barcodeValidation>下面元素 transform 变换规则同时存在时,哪个会生效

测试步骤:
启动dp2内务-功能-系统维护-系统管理窗
并选好分馆(第三中学2)
1.系统维护窗-条码校验

<barcodeValidation>
    <validator location="">
        <patron>
            <CMIS />
            <range value="P0000001-P9999999" transform="result=barcode+'ALL';message='这是全局总管的读者证条码错误提醒信息';" />
            <range value="R0000001-R9999999" transform=" 'R'+ barcode  " />
        </patron>
        <entity>
            <range value="T0000001-T9999999">
            </range>
        </entity>
    </validator>
    <validator location="第三中学2">
        <patron>
            <CMIS />
            <range value="P000001-P999999" transform="P" />
        </patron>
        <entity>
            <range value="Z00001-Z99999" transform="  'Z' + barcode " />
            
        </entity>
        <transform>
	 result = "X" + barcode ;
        </transform>
    </validator>
</barcodeValidation>

2.保存一条册信息
常用窗口-实体查询窗-增加册条码为"Z00001"的册,保存成功

3.快捷出纳窗, 测试transform的变换效果
由于设置了<entity> 变换和默认变换
打开快捷出纳窗,选择[还],输入"Z00001"的册,回车.
提示"册条码ZZ00001"的册不存在, 说明 里面的变换规则生效了

测试用例4.2

只有<entity> 里面的transform属性 包含变换规则

测试步骤:
启动dp2内务-功能-系统维护-系统管理窗
并选好分馆(第三中学2)
1.系统维护窗-条码校验

<barcodeValidation>
    <validator location="">
        <patron>
            <CMIS />
            <range value="P0000001-P9999999" transform="result=barcode+'ALL';message='这是全局总管的读者证条码错误提醒信息';" />
            <range value="R0000001-R9999999" transform=" 'R'+ barcode  " />
        </patron>
        <entity>
            <range value="T0000001-T9999999">
            </range>
        </entity>
    </validator>
    <validator location="第三中学2">
        <patron>
            <CMIS />
            <range value="P000001-P999999" transform="P" />
        </patron>
        <entity>
            <range value="Z00001-Z99999" transform="  'Z' + barcode " />
            
        </entity>
        <transform>
	
        </transform>
    </validator>
</barcodeValidation>

2.保存一条册信息
常用窗口-实体查询窗-增加册条码为"Z00001"的册,保存成功

3.快捷出纳窗, 测试transform的变换效果
由于设置了<entity> 变换和默认变换
打开快捷出纳窗,选择[还],输入"Z00001"的册,回车.
提示"册条码ZZ00001"的册不存在, 说明 里面的变换规则生效了

测试用例4.3

<entity> 里面无transform属性
<barcodeValidation>下面元素 transform 存在变换规则

测试步骤:
启动dp2内务-功能-系统维护-系统管理窗
并选好分馆(第三中学2)
1.系统维护窗-条码校验

<barcodeValidation>
    <validator location="">
        <patron>
            <CMIS />
            <range value="P0000001-P9999999" transform="result=barcode+'ALL';message='这是全局总管的读者证条码错误提醒信息';" />
            <range value="R0000001-R9999999" transform=" 'R'+ barcode  " />
        </patron>
        <entity>
            <range value="T0000001-T9999999">
            </range>
        </entity>
    </validator>
    <validator location="第三中学2">
        <patron>
            <CMIS />
            <range value="P000001-P999999" transform="P" />
        </patron>
        <entity>
            <range value="Z00001-Z99999"  />
            
        </entity>
        <transform>
	 result = "X" + barcode ;
        </transform>
    </validator>
</barcodeValidation>

2.保存一条册信息
常用窗口-实体查询窗-增加册条码为"Z00001"的册,保存成功

3.快捷出纳窗, 测试transform的变换效果
由于设置了<entity> 变换和默认变换
打开快捷出纳窗,选择[还],输入"Z00001"的册,回车.
提示"册条码XZ00001"的册不存在,
说明 <barcodeValidation>下面元素 <transform>的变换规则生效了

@wangshunmin
Copy link
Author

wangshunmin commented Jun 10, 2019

(close)测试用例5

(ryh注:这里的例子是用的批修改读者记录,不是目的中说的批校验读者)

要用内务的读者查询窗中的批校验读者记录功能进行测试。里面用到了读者证条码号校验的功能

内务版本:dp2Circulation 3.4.7103.17211

测试步骤

测试步骤:
启动dp2内务-功能-系统维护-系统管理窗
并选好分馆(第三中学2)

1.系统维护窗-条码校验-配置

<barcodeValidation>
    <validator location="">
        <patron>
            <CMIS />
            <range value="P0000001-P9999999" transform="result=barcode+'ALL';message='这是全局总管的读者证条码错误提醒信息';" />
            <range value="R0000001-R9999999" transform=" 'R'+ barcode  " />
        </patron>
        <entity>
            <range value="T0000001-T9999999">
            </range>
        </entity>
    </validator>
    <validator location="第三中学2">
        <patron>
            <CMIS />
            <range value="P000001-P999999" transform="P" />
        </patron>
        <entity>
            <range value="Z00001-Z99999" transform="  'Z' + barcode " />
            
        </entity>
        <transform>
	 result = "X" + barcode ;
        </transform>
    </validator>
</barcodeValidation>

2. 在dp2内务-常用窗口-读者查询窗 使用"批校验读者记录功能"

启动dp2内务,常用窗口-读者查询窗
检索到P000001的读者信息
右键该读者-批处理-快速修改读者记录
在弹出的窗口"快速修改读者记录",新增 字段名"证条码号",字段值"P0000011",
该值是不符合配置的校验规则的.此时点击[确定]按钮,返回窗口"快速修改读者记录",再次点击[确定]按钮
,提示是否要"继续修改",点击[继续修改]按钮.
此时提示修改读者记录1条,需要确认保存.
此时右键该读者 批处理-保存选定的修改
跳出提示:
保存读者记录 第三中学读者2/11 时出错: 条码号 'P0000011' 经验证发现不是一个合法的证条码号(号码 'P0000011' (馆藏地属于 '第三中学2')既不是合法的册条码号,也不是合法的证条码号)。保存操作失败。

请问是否要重试保存此记录?

图片

此时重新右键该读者-批处理-快速修改读者记录
在弹出的窗口"快速修改读者记录",新增 字段名"证条码号",字段值"P000003",符合配置的校验规则的
此时点击[确定]按钮,返回窗口"快速修改读者记录",再次点击[确定]按钮
此时提示修改读者记录1条,点击[确定]按钮
右键该读者 批处理-保存选定的修改,跳出提示框"处理完成,共保存读者记录1条".

通过符合以及不符合新校验规则 的读者证
不符合新校验规则 的读者证 保存失败
符合新校验规则 的读者证 保存成功,说明新配置的校验规则 生效了.

@wangshunmin
Copy link
Author

wangshunmin commented Jun 10, 2019

(close-没有测试结果)测试用例6
测试预期:
要用内务的实体查询窗中的批校验册记录功能进行测试。里面用到了册条码号校验功能
测试结果:
dp2v3+dp2libraryxe 框架版本: 3.1.7099.32910
测试结果

@wangshunmin
Copy link
Author

wangshunmin commented Jun 14, 2019

(close)测试用例7.1

一.使用19位读者证号码校验的时候,不能正常校验首字母
<range value="G000000000000000000-G9999999999999999ZZ" />

二.使用较短的读者证号码校验的时候,正常校验首字母
<range value="G0001-G99ZZ" />

内务版本: dp2Circulation 3.4.7115.3747

测试步骤

测试步骤:
启动dp2内务-功能-系统维护-系统管理窗
选好分馆(第三中学)

一.使用较短的读者证号码校验

1.配置条码校验
系统维护窗-条码校验-配置
复制以下代码,并保存

<barcodeValidation>
    <validator location="">
        <patron>
            <CMIS />
            <range value="P0000001-P9999999" transform="result=barcode+'ALL';message='这是全局总馆的读者证条码提醒信息';" />
            <range value="R0000001-R9999999" transform=" 'R'+ barcode  " />
        </patron>
        <entity>
            <range value="T0000001-T9999999">
            </range>
        </entity>
    </validator>
   <validator location="第三中学">
        <patron>
            <CMIS />
            <range value="G0001-G99ZZ" />
            <range value="T000001-T9999ZZ" />
            <range value="S000001-S9999ZZ" />
        </patron>
        <entity>
            <range value="SZ001-SZ999" />
            <range value="Z001-Z999" transform="result= 'S' + barcode ;" />
        </entity>
        <transform>
	if (barcode.length == 4)
	result = "Z" + barcode;
                 else if (barcode.length == 5)
                  result = barcode;
 else if (barcode.length == 7)
                  result = barcode;
				   else if (barcode.length == 19)
                  result = barcode;
	else
	message = '待变换的输入条码号 \''+barcode+'\' 长度不对';
        </transform>
    </validator>
</barcodeValidation>

2. 快捷出纳窗(借)输入"K0001"读者证号

在dp2内务-常用窗口-快捷出纳窗(借)
在证条码号文本输入框输入"K0001"(K0001的读者证不符合校验规则)
提示""K0001"不是合法的条码号 ..."

图片

二.使用19位的读者证号码校验

1.配置条码校验
系统维护窗-条码校验-配置
复制以下代码,并保存

<barcodeValidation>
    <validator location="">
        <patron>
            <CMIS />
            <range value="P0000001-P9999999" transform="result=barcode+'ALL';message='这是全局总馆的读者证条码提醒信息';" />
            <range value="R0000001-R9999999" transform=" 'R'+ barcode  " />
        </patron>
        <entity>
            <range value="T0000001-T9999999">
            </range>
        </entity>
    </validator>
   <validator location="第三中学">
        <patron>
            <CMIS />
            <range value="G000000000000000000-G999999999999999999" />
            <range value="T000001-T9999ZZ" />
            <range value="S000001-S9999ZZ" />
        </patron>
        <entity>
            <range value="SZ001-SZ999" />
            <range value="Z001-Z999" transform="result= 'S' + barcode ;" />
        </entity>
        <transform>
	if (barcode.length == 4)
	result = "Z" + barcode;
                 else if (barcode.length == 5)
                  result = barcode;
 else if (barcode.length == 7)
                  result = barcode;
				   else if (barcode.length == 19)
                  result = barcode;
	else
	message = '待变换的输入条码号 \''+barcode+'\' 长度不对';
        </transform>
    </validator>
</barcodeValidation>

2. 快捷出纳窗(借)输入"K000000000000000000"读者证号

在dp2内务-常用窗口-快捷出纳窗(借)
在证条码号文本输入框输入"K000000000000000000"(K000000000000000000的读者证不符合校验规则)
提示 证条码号为 'K000000000000000000' 的读者记录没有找到 ...

图片

(ryh注:快捷出纳窗这里的提示,表示该证条码号不存在,不是校验出错的提示,校验出错应该应是下面这种提示。)
image

Repository owner deleted a comment from wangshunmin Jan 17, 2020
Repository owner deleted a comment from wangshunmin Jan 17, 2020
@renyh renyh changed the title 新的条码校验规则测试 (作废)新的条码校验规则测试 Feb 27, 2020
@renyh
Copy link
Collaborator

renyh commented Feb 27, 2020

已将有意义的部分提取,该issue做废。

@renyh renyh closed this as completed Feb 27, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants