CN111782521A - 一种打印自动化测试方法及装置 - Google Patents

一种打印自动化测试方法及装置 Download PDF

Info

Publication number
CN111782521A
CN111782521A CN202010605145.XA CN202010605145A CN111782521A CN 111782521 A CN111782521 A CN 111782521A CN 202010605145 A CN202010605145 A CN 202010605145A CN 111782521 A CN111782521 A CN 111782521A
Authority
CN
China
Prior art keywords
printing
program
transaction
information
print
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010605145.XA
Other languages
English (en)
Other versions
CN111782521B (zh
Inventor
罗秉安
程灿权
郑志杰
江之深
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202010605145.XA priority Critical patent/CN111782521B/zh
Publication of CN111782521A publication Critical patent/CN111782521A/zh
Application granted granted Critical
Publication of CN111782521B publication Critical patent/CN111782521B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)

Abstract

本发明提供的一种打印自动化测试方法及装置,通过基于动态字节码处理技术对打印程序代码进行动态修改,进而截获所述打印程序的打印指令,然后解析所述打印指令生成打印信息,并根据所述打印信息进行打印自动化测试,整个打印测试不再依赖于真实的打印机,可以减少打印机的采购和使用,节省项目研发成本,同时在测试环境上通过配置启动参数的方式,对测试环境的交易程序做字节码处理技术,不改变交易程序源代码,不会影响在实际生产的程序和功能。

Description

一种打印自动化测试方法及装置
技术领域
本发明涉及计算机软件技术领域,尤其涉及一种打印自动化测试方法及装置。
背景技术
本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
目前银行有不少柜面的对客交易(譬如存取款或者转账等)是需要在正式的交易凭证纸上打印结果内容提供给客户的。但由于交易凭证的重要性,银行的软件项目的开发测试过程中,对于真实的凭证的使用是受限的,需要有非常严格的申请审批和管理流程,数量有限,经常不能满足相关项目的研发需求,测试过程中只能使用空白的纸张替代凭证进行交易结果的打印测试,容易出现测试遗漏,到了生产才发现在真实的凭证纸上的打印结果有偏差,譬如文字打印错位、没有打印完整等,引发客户投诉。
发明内容
本发明实施例提供一种打印自动化测试方法及装置,结合虚拟打印技术,截取打印的指令进行解析,结合交易凭证的图片,进行套打,记录在文件中,可以随时查阅显示模拟的打印结果,且支持自动验证和提醒打印结果存疑点(包括打印错位、打印不完整等风险),从而不需要真实凭证,也不需要真实打印,即可完成银行交易凭证打印的自动化测试,减少了项目研发过程中对银行真实凭证的倚赖,使用技术方法进行自动化测试验证,有效提升测试效率。
第一方面,一种打印自动化测试方法,包括:
基于动态字节码处理技术对打印程序代码进行动态修改,进而截获所述打印程序的打印指令;
解析所述打印指令生成打印信息,并根据所述打印信息进行打印自动化测试。
在一些实施例中,所述基于动态字节码处理技术对打印程序代码进行动态修改,包括:
修改所述打印程序的启动入口引导参数,生成待注入的字节码类文件;
读取所述字节码类文件,进而构建所述字节码类文件的构造对象,以使所述打印程序加载运行时,将所述字节码类文件注入到所述打印程序的类文件中。
在一些实施例中,所述打印信息包括:打印配置信息、打印内容以及打印内容对应的样式信息。
在一些实施例中,所述打印程序为交易打印程序,所述交易打印程序用于打印交易凭证,所述打印信息包括交易名称,所述根据所述打印信息进行打印自动化测试,包括:
根据所述交易名称从数据库中获取对应的凭证图像;
根据所述打印信息在所述凭证图像上形成打印图案;
校验所述打印图案和所述凭证图案是否完全重叠,若不完全重叠,发出预警提示。
第二方面,一种打印自动化测试装置,包括:
字节码修改模块,基于动态字节码处理技术对打印程序代码进行动态修改,进而截获所述打印程序的打印指令;
打印自动化测试模块,解析所述打印指令生成打印信息,并根据所述打印信息进行打印自动化测试。
在一些实施例中,所述字节码修改模块,包括:
注入单元,修改所述打印程序的启动入口引导参数,生成待注入的字节码类文件;
运行单元,读取所述字节码类文件,进而构建所述字节码类文件的构造对象,以使所述打印程序加载运行时,将所述字节码类文件注入到所述打印程序的类文件中。
在一些实施例中,所述打印信息包括:打印配置信息、打印内容以及打印内容对应的样式信息。
在一些实施例中,所述打印程序为交易打印程序,所述交易打印程序用于打印交易凭证,所述打印信息包括交易名称,所述打印自动化测试模块,包括:
凭证图像获取单元,根据所述交易名称从数据库中获取对应的凭证图像;
打印图像形成单元,根据所述打印信息在所述凭证图像上形成打印图案;
校验单元,校验所述打印图案和所述凭证图案是否完全重叠,若不完全重叠,发出预警提示。
第三方面,本发明实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面任一所述方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述第一方面任一所述方法的计算机程序。
综上所述,本发明提供的一种打印自动化测试方法及装置,通过基于动态字节码处理技术对打印程序代码进行动态修改,进而截获所述打印程序的打印指令,然后解析所述打印指令生成打印信息,并根据所述打印信息进行打印自动化测试,整个打印测试不再依赖于真实的打印机,可以减少打印机的采购和使用,节省项目研发成本,同时在测试环境上通过配置启动参数的方式,对测试环境的交易程序做字节码处理技术,不改变交易程序源代码,不会影响在实际生产的程序和功能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本发明实施例中提供的一种打印自动化测试方法流程示意图;
图2为本发明实施例中提供的银行凭证的结构示意图;
图3为本发明实施例中提供的银行凭证打印测试流程示意图;
图4为本发明实施例中提供的一种打印自动化测试装置结构示意图。
图5为适用于实现本发明中的打印自动化测试方法的计算机设备结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
虽然本发明提供了如下述实施例或附图所示的方法操作步骤或装置结构,但基于常规或者无需创造性的劳动在所述方法或装置中可以包括更多或者更少的操作步骤或模块单元。在逻辑性上不存在必要因果关系的步骤或结构中,这些步骤的执行顺序或装置的模块结构不限于本发明实施例或附图所示的执行顺序或模块结构。所述的方法或模块结构的在实际中的装置或终端产品应用时,可以按照实施例或者附图所示的方法或模块结构进行顺序执行或者并行执行。
图1示出了本发明实施例中一种打印自动化测试方法,具体的,包括:
S1:基于动态字节码处理技术对打印程序代码进行动态修改,进而截获所述打印程序的打印指令;
S2:解析所述打印指令生成打印信息,并根据所述打印信息进行打印自动化测试。
本发明提供的一种打印自动化测试方法,通过基于动态字节码处理技术对打印程序代码进行动态修改,进而截获所述打印程序的打印指令,然后解析所述打印指令生成打印信息,并根据所述打印信息进行打印自动化测试,整个打印测试不再依赖于真实的打印机,可以减少打印机的采购和使用,节省项目研发成本,同时在测试环境上通过配置启动参数的方式,对测试环境的交易程序做字节码处理技术,不改变交易程序源代码,不会影响在实际生产的程序和功能。
在一些实施例中,步骤S1具体包括:
S110:修改所述打印程序的启动入口引导参数,生成待注入的字节码类文件;
S120:读取所述字节码类文件,进而构建所述字节码类文件的构造对象,以使所述打印程序加载运行时,将所述字节码类文件注入到所述打印程序的类文件中。
具体而言,以银行凭证打印为例,在不改变交易程序源代码的前提下,通过配置启动参数的方式,对银行测试环境的交易程序,运行字节码处理技术,从而能在交易测试过程中,对打印程序进行动态修改,将原本发送给打印机的操作指令,进行重定向。
以Java语言为例,可以使用反射的机制做字节码修改,一种优选的方法是,引入第三方类库Javassist(JAVA programming ASSISTant),修改java的ClassLoader启动入口引导程序,从而在程序在运行时可以定义一个新类,并在JVM加载时修改类文件。参考如下示例代码:
javassist.ClassPool cp=javassist.ClassPool.getDefault();
cp.insertClassPath(new javassist.ByteArrayClassPath(name,b));
获得ClassPool对象,之后根据需要在程序中读取类文件以构造CtClass对象,并记录构造对象,就可以响应之后的访问,即获取到程序在做打印时原来要处理的方法,在程序实际运行时,实际被调起的是自定义的新的处理方法。
以银行常用的PR2打印机为例,若其包含Open打开、Close关闭、execute执行、release释放等调用方法,则首先需要定义程序会调用的方法的桥接类接口,方法名及其参数与原来的实际调用保持一致:
public final class Pr2DriverBridge{
public native int deviceOpen(...);
public native int deviceClose(...);
public native int execute(...);
public native int release(...);
}
然后具体编写各方法的实现方法,以字符串的形式,返回完整的类定义,程序拿到此类定义的字符串,再以反射的方式,解析为实际代码进行运行,即可覆盖程序原来要处理的方法。
在一些实施例中,步骤S2首先对程序调起打印机进行打印的指令进行分析,所述打印信息包括:打印配置信息、打印内容以及打印内容对应的样式信息。打印配置信息包括其调起的打印机型号种类等、具体的打印内容(打印的文字信息)和对应的打印内容对应的样式信息(文字的字体、大小、颜色、加粗、斜体、下划线等)。
例如首先分析交易实际调用的打印机型号种类,包括激光打印机、针式打印机、PR2打印机等等,对于每种不同的打印机型号,其驱动程序不同,会有不同的调用控制类,都需要匹配不同的桥接类。
之后分析交易对打印机输出的具体的打印内容,即要打印的文字信息。此类信息,以汇款交易为例,会包括交易的摘要信息,如具体的工作日期、网点号、柜员号、收款人姓名、收款人卡号、汇款金额、手续费、阅知确认事项等。
再然后分析对打印机输出的控制,包括打印机初始化指令、打印开始行、打印开始列等;以及打印内容所对应的打印内容对应的样式信息,包括文字的字体、大小、颜色、加粗、斜体、下划线等。
参考如下一行指令:
[RLTROW 0ABSCOL 43BOLDFONT]收款人姓名:张三
即是在相对行为0(即打印时的当前行)、绝对列为43的位置,以粗体的形式打印“收款人姓名:张三”的内容。
在一些实施例中,可以分析交易涉及的补充信息,譬如可能每个交易会自动生成唯一标识的交易验证码并以图片的形式进行打印,以避免被篡改的风险,那么可以分析本次交易对应的此交易验证码图片。
在一些实施例中,将打印机型号种类、打印内容分析模块122分析获得的打印文字内容、打印机输出控制指令、补充信息等,全部记录在文件中,文件名可优选地以“交易名称_柜员号_交易时间戳”等信息来命名,以便区分相关信息,也利于后续能自动加载交易对应的凭证图像,从而完成凭证图像上打印交易信息的套打显示。
在一些实施例中,所述打印程序为交易打印程序,所述交易打印程序用于打印交易凭证,所述打印信息包括交易名称,步骤S2具体包括:
S210:根据所述交易名称从数据库中获取对应的凭证图像;
S220:根据所述打印信息在所述凭证图像上形成打印图案;
具体而言,数据库中的凭证图像可以是扫描真实的凭证为图片格式,进行分析和记录,包括交易-凭证对应关系,以及凭证图像的长、宽大小,各区域(如转账交易的转出账号行、转入账号行、金额行等)的坐标位置等。一般情况下,对扫描得到的凭证图像,建立交易-凭证对应关系,并分析其凭证图像的实际长、宽大小,譬如xx申请书凭证,可分析得到其长为210mm、宽为285mm。然后对扫描得到的凭证图像,结合OCR技术,分析其图片内,各主要栏目的区域位置,如转账交易的转出账号行、转入账号行、金额行等的起始坐标位置等。然后将凭证图像、凭证区域位置信息等,全部记录在文件中,文件名可优选地以“业务名称_长_宽”等信息来命名,以便区分相关信息,也利于后续能自动加载交易对应的凭证图像,从而完成凭证图像上打印交易信息的套打显示打印图像。
在步骤S220中,打印结果记录和凭证记录,在验证查阅交易的打印结果时,自动加载交易对应的凭证的图片,进行套打,即在凭证图像上显示打印信息,同时对打印的结果在凭证上模拟打印时有无错位、打印内容有无重叠、是否打印完整,进行自动的检查和校验。
在启动打印测试结果验证时,根据记录的该交易的打印信息进行分析,获取到交易名后,根据交易-凭证对应关系,获取到凭证名称,进而对记录的对应的凭证信息进行分析,然后将凭证图像在客户端页面上显示出来,并结合要打印的文字内容及其对应的样式控制指令,在凭证图像上打印此交易的相关摘要信息,完成套打显示,同时对打印的结果在凭证中有无错位、打印内容有无重叠、是否打印完整,进行自动化的检查和校验。
根据记录的该交易的打印信息进行分析,获取得到交易名称,以及此交易的相关摘要信息,包括其要打印的文字内容及其对应的样式控制指令。
获取到交易名后,根据交易-凭证对应关系,获取到凭证名称,进而对凭证记录模块23所记录的对应的凭证信息进行分析,然后自动加载此交易对应的凭证图像,在客户端页面上,根据凭证信息(长、宽大小等)显示出来。
在客户端页面上显示了凭证图像,结合要打印的文字内容及其对应的样式控制指令,在凭证图像上打印此交易的相关摘要信息,完成套打显示。
具体步骤为,以PR2打印指令为例,首先模拟打印机的打印机头初始化完成,设置语言、字体等相关默认值,参考如下表:
Figure BDA0002560780060000071
然后将打印位置放在第0行第0列的初始位置,开始逐行打印,打印完一行后自动回车到下一行的第0列位置待开始下一行的打印。当遇到某行以如下指令内容为例:
[RLTROW 0ABSCOL 43BOLDFONT]收款人姓名:张三
首先进行断句,一对中括号内部的内容为指令,括号外面为实际打印内容。RLTROW0解析为在相对行为0(即打印时的当前行)、ABSCOL 43解析为绝对列为43的位置,以BOLDFONT即加粗的形式,其余参数默认,打印“收款人姓名:张三”的实际内容。如此不断循环,直至将所有打印信息打印显示完毕。
图2是一个在测试环境的交易完成后查看打印结果,在显示了凭证的基础上打印交易摘要内容的套打的示例图。对打印的结果在凭证中有无错位、打印内容有无重叠、是否打印完整,进行自动的检查和校验。一种优选的方法是,对于打印区域,根据凭证的长和宽,以及字体的大小,判断此打印区域会有多少行多少列,然后定义一个包含行列的二维数组char[][]pixels=new char[HEIGHT][WIDTH],覆盖此打印区域的每一行每一列坐标,譬如pixels[3][4]的值表示在此打印区域的第3行第4列要打印的文字。接着将要打印的文字内容,都记录在此数组的对应行对应列的数组单元格内,注意如果存在倍宽或者倍高的指令,则需要将此倍宽或者倍高的文字赋值到不止一个单元格内。完成赋值记录后进而在全局进行扫描判断:如果发现同行同列的同一个数组单元格内,被赋值超过一次或者要打印多次文字内容,则认为此打印信息存在重叠,需要预警提示;如果要打印的信息的格子,已经越界了此凭证图像的长或宽最大值,则认为此打印信息可能会打印不完整(没能全部打印在凭证内),需要预警提示;同时对凭证图像进行区域分割,根据OCR关键字,匹配要打印的信息,如果发现“汇款金额”的格子坐标,被包含在“收款人姓名”的区域内,则认为此打印信息可能存在错位,需要预警提示。
下面示出本发明的具体测试场景
如图3所示,本发明,一种银行交易结果凭证打印的自动化测试系统的工作流程图,其流程如下:
步骤S11:启动凭证预处理工作,对于每种凭证只需要完成一次预处理即可,不需要重复入库。首先将真实的凭证扫描成图片,并建立交易-凭证对应关系。
步骤S12:对凭证图像进行分析,使用OCR技术,获取到凭证图像的长、宽大小,各区域(如转账交易的转出账号行、转入账号行、金额行等)的坐标位置等。
步骤S13:将上述凭证图像和分析得到的数据记录入库。每种凭证对应的记录文件名可优选地以“业务名称_长_宽”等信息来命名,以便区分相关信息,也利于后续能自动加载交易对应的凭证图像,从而完成凭证图像上打印交易信息的套打显示。
步骤S21:在测试环境做交易测试。需要在环境上通过配置启动参数的方式,对测试环境的交易程序做字节码处理技术。
步骤S22:截取交易的打印指令。对程序调起打印机进行打印的指令进行分析,解析的内容包括其调起的打印机型号种类、具体的打印内容(打印的文字信息)和对应的格式控制信息(文字的字体、大小、颜色、加粗、斜体、下划线等)。
步骤S23:将上述截取的交易的打印指令,保存记录入库,每个交易记录的打印指令的文件名,可优选地以“交易名称_柜员号_交易时间戳”等信息来命名,以便区分相关信息,也利于后续能自动加载交易对应的凭证图像,从而完成凭证图像上打印交易信息的套打显示。
步骤S31:启动交易打印结果的测试。首先获取步骤S23记录的此交易的打印指令文件,并进行分析。
步骤S32:由本次的交易名称,根据交易-凭证对应关系,自动获取和加载对应的凭证文件,得到凭证图像,并显示在测试页面窗口上。
步骤S33:在凭证图像的基础上,逐行解析交易打印指令文件,将交易要打印的文字整合显示在测试页面窗口上,完成套打。
步骤S34:对交易打印的结果在凭证显示时中有无错位、打印内容有无重叠、是否打印完整,进行自动的检查和校验。
从上述场景可以知晓,本场景下的银行交易结果凭证打印的自动化测试方法,通过JAVA字节码处理技术,对测试环境的银行柜面交易的打印指令进行截取,并根据银行交易凭证的图片进行整合打印显示,自动测试验证打印结果。此方法有以下优势:
1、银行柜面交易的凭证打印的测试验证,不再依赖于真实的交易凭证,避免了因凭证不足导致的测试遗漏,也不再依赖于真实的打印机,可以减少打印机的采购和使用,节省项目研发成本。
2、支持自动化测试银行柜面交易的凭证打印的结果,保存所有交易的打印记录,并自动判断打印是否有打印错位、打印不完整等问题,减少测试人员手工测试的测试遗漏。
3、本方法是在测试环境上通过配置启动参数的方式,对测试环境的交易程序做字节码处理技术,不改变交易程序源代码,不会影响在实际生产的程序和功能。
基于相同的发明构思,本发明还提供一种打印自动化测试装置,如图4所示,包括:
字节码修改模块1,基于动态字节码处理技术对打印程序代码进行动态修改,进而截获所述打印程序的打印指令;
打印自动化测试模块2,解析所述打印指令生成打印信息,并根据所述打印信息进行打印自动化测试。
在一些实施例中,所述字节码修改模块,包括:
注入单元,修改所述打印程序的启动入口引导参数,生成待注入的字节码类文件;
运行单元,读取所述字节码类文件,进而构建所述字节码类文件的构造对象,以使所述打印程序加载运行时,将所述字节码类文件注入到所述打印程序的类文件中。
在一些实施例中,所述打印信息包括:打印配置信息、打印内容以及打印内容对应的样式信息。
在一些实施例中,所述打印程序为交易打印程序,所述交易打印程序用于打印交易凭证,所述打印信息包括交易名称,所述打印自动化测试模块,包括:
凭证图像获取单元,根据所述交易名称从数据库中获取对应的凭证图像;
打印图像形成单元,根据所述打印信息在所述凭证图像上形成打印图案;
校验单元,校验所述打印图案和所述凭证图案是否完全重叠,若不完全重叠,发出预警提示。
综上所述,本发明提供的一种打印自动化测试装置,通过基于动态字节码处理技术对打印程序代码进行动态修改,进而截获所述打印程序的打印指令,然后解析所述打印指令生成打印信息,并根据所述打印信息进行打印自动化测试,整个打印测试不再依赖于真实的打印机,可以减少打印机的采购和使用,节省项目研发成本,同时在测试环境上通过配置启动参数的方式,对测试环境的交易程序做字节码处理技术,不改变交易程序源代码,不会影响在实际生产的程序和功能。
从硬件层面来说,为了本发明提供一种用于实现所述打印自动化测试方法中的全部或部分内容的电子设备的实施例,所述电子设备具体包含有如下内容:
处理器(processor)、存储器(memory)、通信接口(Communications Interface)和总线;其中,所述处理器、存储器、通信接口通过所述总线完成相互间的通信;所述通信接口用于实现服务器、装置、分布式消息中间件集群装置、各类数据库以及用户终端等相关设备之间的信息传输;该电子设备可以是台式计算机、平板电脑及移动终端等,本实施例不限于此。在本实施例中,该电子设备可以参照实施例中的打印自动化测试方法的实施例,以及,打印自动化测试方法装置的实施例进行实施,其内容被合并于此,重复之处不再赘述。
图5为本发明实施例的电子设备9600的系统构成的示意框图。如图5所示,该电子设备9600可以包括中央处理器9100和存储器9140;存储器9140耦合到中央处理器9100。值得注意的是,该图5是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。
一实施例中,打印自动化测试方法功能可以被集成到中央处理器9100中。例如,中央处理器9100可以被配置为进行如下控制:
S1:基于动态字节码处理技术对打印程序代码进行动态修改,进而截获所述打印程序的打印指令;
S2:解析所述打印指令生成打印信息,并根据所述打印信息进行打印自动化测试。
从上述描述可知,本发明的实施例提供的电子设备,通过基于动态字节码处理技术对打印程序代码进行动态修改,进而截获所述打印程序的打印指令,然后解析所述打印指令生成打印信息,并根据所述打印信息进行打印自动化测试,整个打印测试不再依赖于真实的打印机,可以减少打印机的采购和使用,节省项目研发成本,同时在测试环境上通过配置启动参数的方式,对测试环境的交易程序做字节码处理技术,不改变交易程序源代码,不会影响在实际生产的程序和功能。
在另一个实施方式中,打印自动化测试方法装置可以与中央处理器9100分开配置,例如可以将打印自动化测试方法配置为与中央处理器9100连接的芯片,通过中央处理器的控制来实现打印自动化测试方法功能。
如图5所示,该电子设备9600还可以包括:通信模块9110、输入单元9120、音频处理器9130、显示器9160、电源9170。值得注意的是,电子设备9600也并不是必须要包括图5中所示的所有部件;此外,电子设备9600还可以包括图5中没有示出的部件,可以参考现有技术。
如图5所示,中央处理器9100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器9100接收输入并控制电子设备9600的各个部件的操作。
其中,存储器9140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器9100可执行该存储器9140存储的该程序,以实现信息存储或处理等。
输入单元9120向中央处理器9100提供输入。该输入单元9120例如为按键或触摸输入装置。电源9170用于向电子设备9600提供电力。显示器9160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器9140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器9140还可以是某种其它类型的装置。存储器9140包括缓冲存储器9141(有时被称为缓冲器)。存储器9140可以包括应用/功能存储部9142,该应用/功能存储部9142用于存储应用程序和功能程序或用于通过中央处理器9100执行电子设备9600的操作的流程。
存储器9140还可以包括数据存储部9143,该数据存储部9143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器9140的驱动程序存储部9144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通信模块9110即为经由天线9111发送和接收信号的发送机/接收机9110。通信模块(发送机/接收机)9110耦合到中央处理器9100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块9110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)9110还经由音频处理器9130耦合到扬声器9131和麦克风9132,以经由扬声器9131提供音频输出,并接收来自麦克风9132的音频输入,从而实现通常的电信功能。音频处理器9130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器9130还耦合到中央处理器9100,从而使得可以通过麦克风9132能够在本机上录音,且使得可以通过扬声器9131来播放本机上存储的声音。
本发明的实施例还提供能够实现上述实施例中的执行主体可以为服务器的打印自动化测试方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的打印自动化测试方法的全部步骤。
从上述描述可知,本发明的实施例提供的计算机可读存储介质,通过基于动态字节码处理技术对打印程序代码进行动态修改,进而截获所述打印程序的打印指令,然后解析所述打印指令生成打印信息,并根据所述打印信息进行打印自动化测试,整个打印测试不再依赖于真实的打印机,可以减少打印机的采购和使用,节省项目研发成本,同时在测试环境上通过配置启动参数的方式,对测试环境的交易程序做字节码处理技术,不改变交易程序源代码,不会影响在实际生产的程序和功能。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(装置)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种打印自动化测试方法,其特征在于,包括:
基于动态字节码处理技术对打印程序代码进行动态修改,进而截获所述打印程序的打印指令;
解析所述打印指令生成打印信息,并根据所述打印信息进行打印自动化测试。
2.如权利要求1所述的方法,其特征在于,所述基于动态字节码处理技术对打印程序代码进行动态修改,包括:
修改所述打印程序的启动入口引导参数,生成待注入的字节码类文件;
读取所述字节码类文件,进而构建所述字节码类文件的构造对象,以使所述打印程序加载运行时,将所述字节码类文件注入到所述打印程序的类文件中。
3.如权利要求2所述的方法,其特征在于,所述打印信息包括:打印配置信息、打印内容以及打印内容对应的样式信息。
4.如权利要求1所述的方法,其特征在于,所述打印程序为交易打印程序,所述交易打印程序用于打印交易凭证,所述打印信息包括交易名称,所述根据所述打印信息进行打印自动化测试,包括:
根据所述交易名称从数据库中获取对应的凭证图像;
根据所述打印信息在所述凭证图像上形成打印图案;
校验所述打印图案和所述凭证图案是否完全重叠,若不完全重叠,发出预警提示。
5.一种打印自动化测试装置,其特征在于,包括:
字节码修改模块,基于动态字节码处理技术对打印程序代码进行动态修改,进而截获所述打印程序的打印指令;
打印自动化测试模块,解析所述打印指令生成打印信息,并根据所述打印信息进行打印自动化测试。
6.如权利要求5所述的打印自动化测试装置,其特征在于,所述字节码修改模块,包括:
注入单元,修改所述打印程序的启动入口引导参数,生成待注入的字节码类文件;
运行单元,读取所述字节码类文件,进而构建所述字节码类文件的构造对象,以使所述打印程序加载运行时,将所述字节码类文件注入到所述打印程序的类文件中。
7.如权利要求6所述的打印自动化测试装置,其特征在于,所述打印信息包括:打印配置信息、打印内容以及打印内容对应的样式信息。
8.如权利要求5所述的打印自动化测试装置,其特征在于,所述打印程序为交易打印程序,所述交易打印程序用于打印交易凭证,所述打印信息包括交易名称,所述打印自动化测试模块,包括:
凭证图像获取单元,根据所述交易名称从数据库中获取对应的凭证图像;
打印图像形成单元,根据所述打印信息在所述凭证图像上形成打印图案;
校验单元,校验所述打印图案和所述凭证图案是否完全重叠,若不完全重叠,发出预警提示。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4任一所述方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1至4任一所述方法的计算机程序。
CN202010605145.XA 2020-06-29 2020-06-29 一种打印自动化测试方法及装置 Active CN111782521B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010605145.XA CN111782521B (zh) 2020-06-29 2020-06-29 一种打印自动化测试方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010605145.XA CN111782521B (zh) 2020-06-29 2020-06-29 一种打印自动化测试方法及装置

Publications (2)

Publication Number Publication Date
CN111782521A true CN111782521A (zh) 2020-10-16
CN111782521B CN111782521B (zh) 2023-08-25

Family

ID=72760198

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010605145.XA Active CN111782521B (zh) 2020-06-29 2020-06-29 一种打印自动化测试方法及装置

Country Status (1)

Country Link
CN (1) CN111782521B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112597021A (zh) * 2020-12-24 2021-04-02 中国农业银行股份有限公司 基于联动打印机的银行柜面交易自动化测试方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110242566A1 (en) * 2010-04-02 2011-10-06 Krupp Louis Systems and methods for optimizing function based object operations in interpreted page description languages
CN105808266A (zh) * 2016-03-29 2016-07-27 广州华多网络科技有限公司 代码运行方法及装置
CN110399108A (zh) * 2019-08-16 2019-11-01 中国银行股份有限公司 凭证打印处理方法及装置
CN111124324A (zh) * 2019-12-27 2020-05-08 中国银行股份有限公司 凭证打印方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110242566A1 (en) * 2010-04-02 2011-10-06 Krupp Louis Systems and methods for optimizing function based object operations in interpreted page description languages
CN105808266A (zh) * 2016-03-29 2016-07-27 广州华多网络科技有限公司 代码运行方法及装置
CN110399108A (zh) * 2019-08-16 2019-11-01 中国银行股份有限公司 凭证打印处理方法及装置
CN111124324A (zh) * 2019-12-27 2020-05-08 中国银行股份有限公司 凭证打印方法及装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112597021A (zh) * 2020-12-24 2021-04-02 中国农业银行股份有限公司 基于联动打印机的银行柜面交易自动化测试方法及装置

Also Published As

Publication number Publication date
CN111782521B (zh) 2023-08-25

Similar Documents

Publication Publication Date Title
CN109784235A (zh) 纸质表单的自动录入方法、装置、计算机设备和存储介质
CN110297758A (zh) 用户界面自动化测试方法、装置及计算机可读存储介质
CN107066631A (zh) 页面的显示方法、装置及电子设备
US10140492B1 (en) Methods and systems for verifying authenticity of products
CN103488923B (zh) 一种电子签名方法、装置及系统
CN109828906B (zh) Ui自动化测试方法、装置、电子设备及存储介质
CN104704468A (zh) Web应用程序的跨系统安装
CN107077379A (zh) 一种虚拟机创建方法和装置
CN111324352A (zh) 一种应用页面的代码生成方法及相关设备
CN110309099A (zh) 接口管理方法、装置、设备及计算机可读存储介质
CN113486785A (zh) 基于深度学习的视频换脸方法、装置、设备及存储介质
CN111782521A (zh) 一种打印自动化测试方法及装置
CN104484195A (zh) 基于认证插卡的软件界面定制方法及系统
CN104462043A (zh) 一种快速自助填单系统及快速自助填单方法
CN112181417B (zh) 前端研发配置装置及方法
CN107562710B (zh) 一种图表处理装置及方法
CN113255505A (zh) 证件照片生成方法、装置、设备及存储介质
CN108874392A (zh) 用户指引界面生成方法及装置
CN111930633A (zh) 数据测试方法、平台、电子设备及存储介质
CN110706221A (zh) 图片定制化的验证方法、验证设备、存储介质及装置
CN106599637A (zh) 一种在验证界面输入验证码的方法和装置
CN114741144B (zh) 一种web端复杂表格显示方法、装置及系统
CN111931465B (zh) 基于用户操作自动生成用户手册的方法及系统
CN109460226A (zh) 测试证件图像生成方法、装置、设备及存储介质
CN112365402A (zh) 智能组卷方法、装置、存储介质及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant