
ATMSP集成测试案例.docx
12页SP集成测试案例自助服务统一平台文档管理信息文件状态:文件标识[V]草稿当前版本:0.1[]正式发布作者:[]正在修改完成日期:密级:文档修订记录日期版本描述信息修订人1 .概述SP集成测试案例用于模拟ATM应用环境,对SP进行以交易或针对ATM的某次操作为单位的集成测试本测试案例的预期读者包括:1. SP测试人员2. ATM开发人员本文档中包含的需要测试的交易包括设备自检、管理和交易三大部分设备自检测试案例包括读卡器自检案例、CDM1检案例、CIM自检案例、SIU大闸门自检案例管理测试案例部分包括进入后维护界面,主密钥导入,加钞等交易测试案例部分包括插卡,存款,取款,改密,转账等2 .设备自检测试案例1. 读卡器自检测试案例Step1调用Reset命令对诺卡器进行复位复位参数为0复位后,必须收到复位完成事件OkStep2将卡放入诺卡器中,调用RETAIN指令卡被吞入诺卡器中,且任何情况下必须发出指令完成事件Ok2. CDM自检测试案例Step1调用Reset命令对CDMS行复位复位参数为0复位后,必须收到复位完成事件OkStep2将钞币放在出钞口,然后获取CDM犬态能够检测到CDM寸应位置有钞币OkStep3调用Retract指令,回收钞币钞币被正常回收,且SP必须发出指令完成事件Ok3. CIM自检测试案例Step1调用Reset命令对CIM进行复位。
复位参数为0复位后,必须收到复位完成事件OkStep2执行CashInStart,在收到CashInStart后查询状态必须可以查询到CashIn状态为ActiveOkStep3将钞币放在出钞口,然后获取CIM状态能够检测到CIM对应位置有钞币OkStep4调用Retract指令,回收钞币钞币被正常回收,且SP必须发出指令完成事件OkStep5执行CashInEndCashIn正常结束Ok4. SIU大闸门自检案例Step1存在大闸门查询SIU状态大闸门状态止确Step2调用指令,打开大闸门大闸门正常关闭,且SP发出执行完成事件Step3调用指令,关闭大闸门大闸门正常关闭,且SP发出执行完成事件Step4族取大闸门状态无论前两次执行结果如何,此处需要能够狄取到正确的大闸门状态Step5在大闸门关闭的前提下,打开存款模块小闸门小闸门打开,且收到SP指令执行完成事件Step6关闭存款模块小闸门小闸门关闭,且收到SP指令执行完成事件3.管理部分测试案例1 .进入后维护界面Step1将SIU的OperatorSwitch设置到Admin状态收到SIU报出的状态改变事件Ok2 .导入主密钥Step1调用键盘组件ImportKey接口导入主密钥。
this.m_Encryptor.ImportKey("TempKey",strKeyData,"CRYPT,KEYENCKEY,FUNCTIONACING",null);收到导入成功事件OnKeyImported或者导入失败事件OnOperationFailedMOkStep2调用键盘组件Crypt接口加密16个0.this.m_Encryptor.Crypt("E","ECB",strKeyName,15,null,null,strEncryptData,null);收到加密成功事件OnCryptComplete或者加密失败事件OnCryptFailed在事件OnCryptComplete中需要上报加密的结果值如是失败事件OnCryptFailed,需上报错误原因错误码Ok3 .加钞Step1调用CDM组件StartCashDispenserExchage接口收到对应完成事件OnStartCashDispenserExchageComplete或者失败事件OnOperationFailed当是OnOperationFailed事件时,需上报错误原因错误码OkStep2调用CDM组件EndCashDispenserExchange接口收到对应完成事件OnEndCashDispenserExchageComplete或者失败事件OkOnOperationFailed。
当是OnOperationFailed事件时,需上报错误原因错误码Step3调用CDM组件GetCashUnitIDsSync接口如有CIM设备,还调用了CIM组件的GetCashUnitIDsSync接口返回各个钞箱的物理ID列表OkStep4调用CDM组件GetCashUnitInfoSync接口如有CIM设备,还调用了CIM组件的GetCashUnitInfoSync接口返回钞箱信息POSITIONSTATUSTYPE等信息OkStep5调用CDMfi件SetCashUnitInfoSync接口设置钞箱信息如有CIM设备,还调用了CIM组件的SetCashUnitInfoSync接口成功设置并返回(同步)Step6如有CIM设备,则调用CIM组件SetCashAcceptorCashUnitInfo接口如没有CIM设备,侧跳过此步,直接执行Step7)收到完成事件OnSetCashAcceptorCashUnitInfoComplete或者失败事件OnSetCashAcceptorCashUnitInfoError,如是失败事件OnSetCashAcceptorCashUnitInfoError,需上报错误原因错误码。
Step7调用CDMfi件SetCashDispenserCashUnitInfo接口收到完成事件OnSetCashDispenserCashUnitInfoComplete或者失败事件OnSetCashDispenserCashUnitInfoError,如是失败事件OnSetCashDispenserCashUnitInfoError,需上报错误原因错误码Step8调用读卡器设备组件ResetBinCount接口此处还调用和设备无关的接口GetPersistantData、SetPersistantData、ClearTrans()等,主要为了清除交易信息)清除吞卡张数4 .交易部分测试案例1 .插卡流程测试插卡流程:在等待页面中调用read_raw_daTA令,等待进卡,在卡插入读卡器后,能正常读出2,3磁道数据案例如下:Step1调用诺卡器READ_RAW_DA*,输入参数为:读取2,3磁道超时时间:0等待一段时间后,插入唐卡器,则返回诺卡器执行完成事件要求:1 .当2,3磁道读取均失败时,才返回错误,否则一律返回执行成功2 .返回的数据中,应当包括已经读取到的卡片信息Step2调用Cancel卡继续留在诺卡器中,设备无动作OkStep3调用Pinpad::GetPin,输入参数为:最小值4,最大值6终止键:F8,F6,Enter激活键:全部在GetPin成功后,执行GetPinBlock,其输入参数为:密钥:主密钥Enckey:无CustomerData:前次读取到的卡号wFomat:ANSIpadchar:0xFlpsXORData:分别测试如下情况:1:密码小于4位2:密码等于4位3:密码在4-6位之间4:密码等于6位5:六试号码大丁6位终止键分别使用:F6,F8,Enter按照上述组合进行多次测试,要求输入位数限制满足XFS要求,且无论任何情况下,按终止键后,GetPin返回执行完毕。
GetPinblock后应当可以状取正确的PinblockOkStep4按照Step3的要求,调用GetPin,输入数据后,调用Cancel,使得GetPin返回-4,之后按照上述要求调用GetPinblock在GetPin被Cancel掉之后,调用GetPinblock,仍然能够状取正确的Pinblock值NGWFS_ERR_PIN_ACCESSDENIED2 .存款流程Step1调用CashInStart命令返回CashInStartComplete事件OKStep2如果应用可以控制Shutter调用OpenInShutter命令返回OpenInShutterComplete事件,Shutter打开OKStep3如果存在大闸门调用OpenVandalShield命令返回OnVandalShieldOpenCompleted事件,大闸门打开NTStep4放入钞币,调用CloseInShutter命令返回closeInShutterComplete事件,Shutter关闭OK返回成功但不关门Step5调用CashIn命令返回CashInComplete事件,返回验钞结果OkStep6调用CashInEnd命令返回CashInEndComplete事件,钞币存入钞箱Ok3 .取款流程Step1调用Denominate命令,输入参数为:金额,币种返回机芯执行完成事件。
要求:1.当逻辑够配钞成功之后返回执行成功,否则一律返回错误Step2调用Dispense()命令,输入参数为:金额,币种、超时时间(为0)1.当叠钞成功之后返回执行成功,否则一律才返回错误Step3调用Present()命令,输入参数为:超时时间(为0)1.当送钞成功之后返回执行成功,否则一律才返回错误Step4Dispense失败的,调用Reject回收钞币钞币回收成功Step5Present失败,则调用Retract回收钞币钞币回收成功4 .改密流程Step1调用Pinpad::GetPin,输入参数为:最小值4,最大值6终止键:F8,F6,Enter激活键:全部在GetPin成功后,执行GetPinBlock,其输入参数为:密钥:主密钥Enckey:无CustomerData:前次读取到的卡号wFomat:ANSIpadchar:0xFlpsXORData:分别测试如下情况:1:密码小于4位。












