CN105786787B - 基于Java的高效PDF报表测试方法 - Google Patents

基于Java的高效PDF报表测试方法 Download PDF

Info

Publication number
CN105786787B
CN105786787B CN201610113061.8A CN201610113061A CN105786787B CN 105786787 B CN105786787 B CN 105786787B CN 201610113061 A CN201610113061 A CN 201610113061A CN 105786787 B CN105786787 B CN 105786787B
Authority
CN
China
Prior art keywords
pdf
unit
java
test
data
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.)
Active
Application number
CN201610113061.8A
Other languages
English (en)
Other versions
CN105786787A (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.)
Sichuan Changhong Electric Co Ltd
Original Assignee
Sichuan Changhong Electric Co Ltd
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 Sichuan Changhong Electric Co Ltd filed Critical Sichuan Changhong Electric Co Ltd
Priority to CN201610113061.8A priority Critical patent/CN105786787B/zh
Publication of CN105786787A publication Critical patent/CN105786787A/zh
Application granted granted Critical
Publication of CN105786787B publication Critical patent/CN105786787B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/186Templates

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及计算机软件领域,提供一种基于Java的高效PDF报表测试方法,以解决目前的PDF报表开发效率较低的问题,该方法包括:通过Java Main函数将待测试PDF报表数据装配到PDF模板中;通过JUNIT编写PDF逻辑的第一单元、第二单元、第三单元、第四单元和第五单元的测试类并采用JUNIT对待测试PDF报表数据进测试;利用Java Main函数直接把PDF模板生成的二进制数据以文件的形式直接保存到本地文件系统中;按照正确的流程和真实数据验证生成的PDF报表的正确性。本发明提出的技术方案采用数据网页生成PDF报表的方法直接生成PDF本地文件,减少了开发人员在PDF生成流程上所使用的时间,提高了开发人员开发效率,节约了企业成本。

Description

基于Java的高效PDF报表测试方法
技术领域
本发明属于计算机软件报表、网络技术领域,特别涉及一种基于Java的高效PDF报表测试方法。
背景技术
目前,随着互联网技术的发展,云端服务早已深入到了各行各业之中,也给人们提供了许多便捷的服务,其中比较有代表性的服务就是报表服务,报表服务是云服务中最重要的组成部分,也是公司、企业制定决策和数据分析最重要的依据,报表往往通过多种方式展现给用户,PDF报表是应用最广泛的的报表服务之一。然而,对于开发人员,他们在开发PDF报表的过程中,往往花费了太多的时间和精力去实现PDF报表这一功能,经过分析,造成这种情况的主原因包括以下三点:
原因一:PDF报表开发逻辑太复杂,开发人员往往耗费大量的时间去测试报表的逻辑;
原因二:需要开发一款样式美观的PDF报表往往需要开发人员不停的调整和修改PDF的样式;
原因三:PDF测试过程中耽误的时间比较多,开发人员如果要测试PDF报表,往往是先启动系统,然后进入系统,进入报表模块点击生成报表然后才能测试自己开发的报表是否满足要求,中途可能还需要开发人员登录系统等一序列的操作。而启动系统、登录系统、进入报表模块、生成报表这些过程会耽误开发人员大量时间,以一个中型应用系统来为例,这个过程大概需要花费半分钟到1分钟的时间,如果这个PDF报表开发人员从开始到报表开发完成总共需要生成100次,那么用户在这个过程上浪费的时间就是50到100分钟,如果一个系统有10个这样的报表,那么将花费开发人员的大量开发时间,严重影响了开发人员的开发效率。
发明内容
【要解决的技术问题】
本发明的目的是提供一种基于Java的高效PDF报表测试方法,以解决目前的PDF报表开发效率较低的问题。
【技术方案】
本发明是通过以下技术方案实现的。
本发明涉及一种基于Java的高效PDF报表测试方法,包括:
数据准备阶段:通过Java Main函数将待测试PDF报表数据装配到PDF模板中;
单元测试阶段:通过JUNIT编写PDF逻辑的第一单元、第二单元、第三单元、第四单元和第五单元的测试类并采用JUNIT对待测试PDF报表数据进测试,所述第一单元为通过Java导入PDF模板,所述第二单元为把数据装配到PDF模板的Header部分,所述第三单元为把数据装配到PDF模板的Body部分,所述第四单元为把数据装配到PDF的Footer部分,所述第五单元为把整个装配好的PDF转化为二进制流对外输出;
PDF本地文件生成测试阶段:利用Java Main函数直接把PDF模板生成的二进制数据以文件的形式保存到本地文件系统中;
集成测试阶段:按照正确的流程和真实数据验证生成的PDF报表的正确性。
作为一种优选的实施方式,所述单元测试阶段,通过IDE自带的JUNIT插件完成JUNIT单元测试或通过MAVEN来执行相应的JUNIT单元测试。
作为另一种优选的实施方式,所述PDF本地文件生成测试阶段,通过PdfFileUtils中的generateLocalPDF把PDF模板生成的PDF文件以二进制数据流的形式写到本地磁盘上。
【有益效果】
本发明提出的技术方案具有以下有益效果:
本发明把PDF流程的逻辑分开,采用数据网页生成PDF报表的方法直接生成PDF本地文件,减少了开发人员在PDF生成流程上所使用的时间,提高了开发人员开发效率,节约了企业成本。
附图说明
图1为本发明的实施例一提供的基于Java的高效PDF报表测试方法的原理图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的具体实施方式进行清楚、完整的描述。
图1为本发明实施例一提供的基于Java的高效PDF报表测试方法的原理图。如图1所示,该方法包括数据准备阶段、单元测试阶段和PDF本地文件生成测试阶段。
(一)数据准备阶段
通过Java Main函数将待测试PDF报表数据装配到PDF模板中。在生成PDF报表的过程中,有一个环节是Java后台从数据库中读取数据装配到PDF报表中,在本实施例中的数据准备阶段,把数据写在一个配置文件中而不是直接从数据库取数据,这样做的目的主要有两个,第一主要是模拟数据库的数据,第二是很容易构造临界点和边界值数据,比如在显示数据的时候,如果逻辑是if a==1logic 1,else if a==2logic2,else logic3,在实际的数据库中,大部分的情况下只会跳转至logic1和logic2,所以通过配置文件来构造数据,能保证能测试所有的逻辑流程。在Web中,一般会把数据库中的数据转化为Java Bean然后供其他类和方法使用,在本实施例的数据准备阶段,直接生成这些Java Bean然后给PDF逻辑使用。
(二)单元测试阶段
整个PDF生成逻辑主要有5个单元部分组成,其中第一单元为通过Java导入PDF模板,第二单元为把数据装配到PDF模板的Header部分,第三单元为把数据装配到PDF模板的Body部分,第四单元为把数据装配到PDF的Footer部分,第五单元为把整个装配好的PDF转化为二进制流对外输出,本步骤首先通过JUNIT编写PDF逻辑的第一单元、第二单元、第三单元、第四单元和第五单元的测试类,让JUNIT基本覆盖整个PDF逻辑部分。JUNIT的测试流程为:第一步:加载整个数据文件部分;第二步:利用加载的数据依次去测试编写好的5个单元的测试逻辑,如果整个测试不能通过,那么开发者就可以直接利用JUNIT的日志判断具体哪一部分逻辑有问题。在单元测试阶段,通过IDE自带的JUNIT插件完成JUNIT单元测试或通过MAVEN来执行相应的JUNIT单元测试。
(三)PDF本地文件生成测试阶段
利用Java Main函数直接把PDF模板生成的二进制数据以文件的形式直接保存到本地文件系统中。该阶段主要是方便开发者测试PDF的样式,比如PDF排版、PDF文字大小字体等内容,其主要的逻辑就是:利用数据准备阶段的时候装配到PDF整个模板中,利用JavaMain函数直接把PDF模板生成的二进制数据以文件的形式直接保存到本地文件系统中,这样直接生成PDF文件大概需要的时间为5~10S,相比开发者运行Web系统,然后登陆Web系统去生成PDF报表,本实施例中提供的这种方式要节约一部分时间。需要说明,PDF本地文件生成测试阶段,可以通过PdfFileUtils中的generateLocalPDF把PDF模板生成的PDF文件以二进制数据流的形式写到本地磁盘上。
(四)集成测试阶段
按照正确的流程和真实数据验证生成的PDF报表的正确性。当开发人员完成了整个PDF逻辑单元测试和PDF文件本地生成测试之后,通过运行起整个系统,按照用户正确的流程和真实的数据验证生成的PDF报表的正确性。
从以上实施例可以看出,本发明实施例把PDF流程的逻辑分开,采用数据网页生成PDF报表的方法直接生成PDF本地文件,减少了开发人员在PDF生成流程上所使用的时间,提高了开发人员开发效率,节约了企业成本。
需要说明,上述描述的实施例是本发明的一部分实施例,而不是全部实施例,也不是对本发明的限制。基于本发明的实施例,本领域普通技术人员在不付出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。

Claims (3)

1.一种基于Java的高效PDF报表测试方法,其特征在于包括:
数据准备阶段:通过Java Main函数将待测试PDF报表数据装配到PDF模板中;
单元测试阶段:通过JUNIT编写PDF逻辑的第一单元、第二单元、第三单元、第四单元和第五单元的测试类并采用JUNIT对待测试PDF报表数据进测试,所述第一单元为通过Java导入PDF模板,所述第二单元为把数据装配到PDF模板的Header部分,所述第三单元为把数据装配到PDF模板的Body部分,所述第四单元为把数据装配到PDF的Footer部分,所述第五单元为把整个装配好的PDF转化为二进制流对外输出;
PDF本地文件生成测试阶段:利用Java Main函数直接把PDF模板生成的二进制数据以文件的形式保存到本地文件系统中;
集成测试阶段:按照正确的流程和真实数据验证生成的PDF报表的正确性;
JUNIT的测试流程为:第一步:加载整个数据文件部分;第二步:利用加载的数据依次去测试编写好的5个单元的测试逻辑。
2.根据权利要求1所述的基于Java的高效PDF报表测试方法,其特征在于所述单元测试阶段,通过IDE自带的JUNIT插件完成JUNIT单元测试或通过MAVEN来执行相应的JUNIT单元测试。
3.根据权利要求1所述的基于Java的高效PDF报表测试方法,其特征在于所述PDF本地文件生成测试阶段,通过PdfFileUtils中的generateLocalPDF把PDF模板生成的PDF文件以二进制数据流的形式写到本地磁盘上。
CN201610113061.8A 2016-02-29 2016-02-29 基于Java的高效PDF报表测试方法 Active CN105786787B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610113061.8A CN105786787B (zh) 2016-02-29 2016-02-29 基于Java的高效PDF报表测试方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610113061.8A CN105786787B (zh) 2016-02-29 2016-02-29 基于Java的高效PDF报表测试方法

Publications (2)

Publication Number Publication Date
CN105786787A CN105786787A (zh) 2016-07-20
CN105786787B true CN105786787B (zh) 2018-07-06

Family

ID=56386762

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610113061.8A Active CN105786787B (zh) 2016-02-29 2016-02-29 基于Java的高效PDF报表测试方法

Country Status (1)

Country Link
CN (1) CN105786787B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106294128B (zh) * 2016-07-25 2019-04-23 合一网络技术(北京)有限公司 一种导出报表数据的自动化测试方法及装置
CN110008195B (zh) * 2019-04-11 2020-06-02 重庆猪八戒知识产权服务有限公司 一种动态配置html转pdf的方法、装置及系统
CN111143221B (zh) * 2019-12-28 2024-01-30 中国银行股份有限公司 一种测试方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103020032A (zh) * 2012-12-28 2013-04-03 无锡城市云计算中心有限公司 云计算系统中的报表生成方法
CN103631767A (zh) * 2012-08-21 2014-03-12 镇江雅迅软件有限责任公司 一种通用数据报表的自动生成方法
CN104461864A (zh) * 2014-11-03 2015-03-25 北京邮电大学 一种基于Eclipse插件的Java源代码缺陷检测方法及其系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040039990A1 (en) * 2002-03-30 2004-02-26 Xorbix Technologies, Inc. Automated form and data analysis tool

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103631767A (zh) * 2012-08-21 2014-03-12 镇江雅迅软件有限责任公司 一种通用数据报表的自动生成方法
CN103020032A (zh) * 2012-12-28 2013-04-03 无锡城市云计算中心有限公司 云计算系统中的报表生成方法
CN104461864A (zh) * 2014-11-03 2015-03-25 北京邮电大学 一种基于Eclipse插件的Java源代码缺陷检测方法及其系统

Also Published As

Publication number Publication date
CN105786787A (zh) 2016-07-20

Similar Documents

Publication Publication Date Title
Washizaki et al. Studying software engineering patterns for designing machine learning systems
WO2020233330A1 (zh) 批量测试方法、装置及计算机可读存储介质
Gay et al. Behavioural Types: from Theory to Tools
Asuncion et al. Software traceability with topic modeling
CN101996131A (zh) 基于xml封装关键字的gui自动测试方法及自动测试平台
CN107436762A (zh) 一种寄存器代码文件生成方法、装置和电子设备
CN105786787B (zh) 基于Java的高效PDF报表测试方法
CN103810092A (zh) 应用系统测试方法及装置
Brar et al. Differentiating integration testing and unit testing
Craigen et al. Industrial applications of formal methods to model, design and analyze computer systems
CN106997322A (zh) 用于自动化测试的方法及设备
CN106293654A (zh) Java编程题目自动评判方法及系统
Peng et al. Automatic generation of API documentations for open-source projects
Gergely et al. Differences between a static and a dynamic test-to-code traceability recovery method
Jagadamba Online subjective answer verifying system using artificial intelligence
Shi et al. Research and development of intelligent online examination monitoring system
CN102609571A (zh) 一种自动化ip验证平台
CN1936887A (zh) 基于类别概念空间的自动文本分类方法
CN104503992B (zh) 一种题库构建方法
CN109240926A (zh) 一种软件兼容性测试装置及方法
Birkmeier et al. A survey of service identification approaches-classification framework, state of the art, and comparison
Zhang et al. Introducing test case derivation techniques into traditional software development: Obstacles and potentialities
Worden et al. Simplifying HL7 version 3 messages
Li Intelligent evaluation of college students’ ideological and political education effect based on big data technology
Li et al. A first look at bug report templates on GitHub

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20160720

Assignee: Sichuan Changhong Xinwang Technology Co.,Ltd.

Assignor: SICHUAN CHANGHONG ELECTRIC Co.,Ltd.

Contract record no.: X2023980043949

Denomination of invention: Efficient PDF Report Testing Method Based on Java

Granted publication date: 20180706

License type: Common License

Record date: 20231030