DigitalPlatform / dp2

Integrated Library System / 图书馆集成系统
http://digitalplatform.github.io/dp2
Apache License 2.0
106 stars 54 forks source link

测试脚本编译 #908

Open renyh opened 2 years ago

renyh commented 2 years ago

测试大纲

一. 测试内务前端所有统计方案

二. 测试服务器端脚本,需针对标准和单机版都进行测试 2.1 快捷出纳窗左侧读者装载 2.2 种册窗MARC的OPAC显示态 2.3 MARC格式校验 2.4 C#脚本校验

三. 测试opac里面的MARC显示

renyh commented 2 years ago

测试用2.1 测试快捷出纳窗左侧显示读者readerxml2html

测试目的

测试当无编译好脚本缓存时,内务快捷出纳窗读者装载区是否会实时编译脚本。

操作步骤

1)先在内务快捷窗借书界面,输入证条码号,左侧装载读者应正常显示信息。 2)然后把readerxml2html.cs改坏(在其中删掉代码,增加字符),此时再在快捷出纳窗,装载读者,因为有编译好的缓存,所以还是正常显示。 3)重启dp2library(在标准版中将实例暂停,然后启动),使得编译好缓存清掉。再在快捷出纳窗借书界面,输入证条码装载,左侧读者信息区应该报编译出错,如下图,符合预期

ConvertReaderXmlToHtml()出错(脚本程序为d:\dp2\t1\library_data\cfgs\readerxml2html.cs): 文件 'd:\dp2\t1\library_data\cfgs\readerxml2html.cs' 编译出错: ID: CS0116, Message: A namespace cannot directly contain members such as fields, methods or statements,Location: : (32,13)-(32,14),Severity: Error

4)把readerxml2html.cs改正确,不退出内务,也不重启dp2library,继续在快捷出纳窗,输入证条码装载,预期左侧读者信息区应显示正确,因为dp2设计时当无缓存时,会实时用最新代码编译配置文件代码。

测试结果

2022/1/11-1940-ryh:dp2内务测试版 3.55.8045.40515,dp2library测试版3.101.8045.40978,所有操作步骤符合预期,是实时用最新代码编译的。


2022/1/13-2058-wyc:dp2内务测试版 3.56.8048.31784,dp2library测试版3.101.8047.41203,所有操作步骤符合预期,是实时用最新代码编译的。

renyh commented 2 years ago

测试用例:2.2 种册窗MARC的OPAC显示态

测试步骤

  1. 在书目查询窗,检索一些数据
  2. 依次双击几条书目,装载到种册窗,打开OPAC显示态(左侧MARC上面),检查是否有编译报错。

测试结果

2022/1/12-1353-ryh:dp2内务测试版 3.55.8045.40515,dp2library测试版3.101.8045.40978,种册窗OPAC显示态无编译报表,符合预期。


2022/1/14-1306-wyc:dp2内务测试版 3.56.8048.38928,dp2library测试版3.101.8047.41203,种册窗OPAC显示态无编译报表,符合预期。

renyh commented 2 years ago

测试用例:2.3 MARC格式校验

测试步骤

  1. 先造一个dp2circulation_marc_verify.fltx文件,放在书目库的cfg目录下,如何造校验文件,参考:https://github.com/DigitalPlatform/dp2/issues/431
  2. 在书目查询窗,检索一些数据,双击书目,装载到种册窗,点“校”按钮,应不会有编译的错误。

测试结果

2022/1/12-1422-ryh:dp2内务测试版 3.55.8045.40515,dp2library测试版3.101.8045.40978,种册窗OPAC显示态无编译报表,符合预期。

(200) 拼音子字段是$9
(***,a) 子字段没有内容...
(***,a) ISBN字符串内容为空
(***,a) 子字段内容长度为0应为36字符...
(***,a) 子字段内容长度为0应为13字符...
(***,a) 子字段内容长度为0应为1字符...
(***,a) 子字段内容长度为0应为11字符...
(701) 拼音子字段是$9
(702) 拼音子字段是$9
(702#2) 拼音子字段是$9
renyh commented 2 years ago

测试用例:2.3 MARC格式校验

测试步骤

  1. 先造一个dp2circulation_marc_verify.fltx文件,放在书目库的cfg目录下,如何造校验文件,参考:https://github.com/DigitalPlatform/dp2/issues/431
  2. 在书目查询窗,检索一些数据,双击书目,装载到种册窗,点“校”按钮,应不会有编译的错误。

测试结果

2022/1/12-1422-ryh:dp2内务测试版 3.55.8045.40515,dp2library测试版3.101.8045.40978,MARC格式校验无编译错误,符合预期。

(200) 拼音子字段是$9
(***,a) 子字段没有内容...
(***,a) ISBN字符串内容为空
(***,a) 子字段内容长度为0应为36字符...
(***,a) 子字段内容长度为0应为13字符...
(***,a) 子字段内容长度为0应为1字符...
(***,a) 子字段内容长度为0应为11字符...
(701) 拼音子字段是$9
(702) 拼音子字段是$9
(702#2) 拼音子字段是$9

2022/1/14-1317-wyc:dp2内务测试版 3.56.8048.38928,dp2library测试版3.101.8047.41203,种册窗OPAC显示态无编译报表,符合预期。

(011,a) 子字段没有内容...
(092,C) 子字段没有内容...
(102,b) 子字段没有内容...
(102,b) 应该全部为数字...
(102,b) 子字段内容长度为0应为6字符...
(105,a) 子字段内容长度为1应为13字符...
(200,g) 子字段没有内容...
(200) 拼音子字段是$9
(225,a) 子字段没有内容...
(225,9) 子字段没有内容...
(225,f) 子字段没有内容...
(410,a) 子字段没有内容...
(690,v) 子字段内容长度为2应为1字符...
(701,4) 子字段没有内容...
(701) 缺乏$9或$A拼音子字段
(985,c) 子字段没有内容...
(985,h) 子字段没有内容...
(985,j) 子字段没有内容...
(985,p) 子字段没有内容...
(985,r) 子字段没有内容...
(985,s) 子字段没有内容...
(985,t) 子字段没有内容...
(985,y) 子字段没有内容...
(985,z) 子字段没有内容...
renyh commented 2 years ago

测试用例:2.4 C#脚本条码校验

测试步骤

  1. 先造一个C#校验函数,如下

         //1:读者证条码
         //2:图书册条码号
         //0:条码号格式错误,表示即不属于读者证条码号,也不是图书册条码号 
         //-2:不校验
         public int VerifyBarcode(string strLibraryCodeList,
                string strBarcode,
                out string strError)
         {
             strError = "";
    
             // 总馆(即没有馆代码)的条码规则
             if (string.IsNullOrEmpty(strLibraryCodeList)==true)
             {
                 if (StringUtil.Between(strBarcode, "001", "999"))
                     return 1;
                 else if (StringUtil.Between(strBarcode, "000001", "999999"))
                     return 2;
    
             strError ="馆代码["+ strLibraryCodeList + "]:" + strBarcode + "既不是合法的证条码号,也不是合法的册码号";
              return 0;
             }
    
            strError = "馆代码["+ strLibraryCodeList + "]尚未定义条码规则";
            return -1;
    }

注意,在library.xml打开服务器校验开关,verifyBarcode="true"

  1. 册登记,输入册条码P001,全部保存,应提示不符合规则,不应有编译错误。
    条码号 'P001' 经验证发现不是一个合法的册条码号(馆代码[]:P001既不是合法的证条码号,也不是合法的册码号)

测试结果

2022/1/12-1422-ryh:dp2内务测试版 3.55.8045.40515,dp2library测试版3.101.8045.40978,C#校验函数无编译错误,符合预期。


册登记,输入册条码R0001,全部保存,应提示不符合规则,不应有编译错误。

您输入的证条码R0001格式不正确(馆代码[]:R0001既不是合法证条码号,也不是合法的册码号)。

2022/1/14-1348-wyc:dp2内务测试版 3.56.8048.38928,dp2library测试版3.101.8047.41203,种册窗OPAC显示态无编译报表,符合预期。