CN105786787B - 基于Java的高效PDF报表测试方法 - Google Patents
基于Java的高效PDF报表测试方法 Download PDFInfo
- 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
- 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
Links
- 238000010998 test method Methods 0.000 title claims abstract description 11
- 238000012360 testing method Methods 0.000 claims abstract description 45
- 238000000034 method Methods 0.000 claims abstract description 16
- 230000008569 process Effects 0.000 claims abstract description 9
- 241001269238 Data Species 0.000 claims abstract description 7
- 238000013524 data verification Methods 0.000 claims abstract description 5
- 230000010354 integration Effects 0.000 claims description 3
- 230000004913 activation Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000008676 import Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000003796 beauty Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/186—Templates
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报表测试方法。
背景技术
目前,随着互联网技术的发展,云端服务早已深入到了各行各业之中,也给人们提供了许多便捷的服务,其中比较有代表性的服务就是报表服务,报表服务是云服务中最重要的组成部分,也是公司、企业制定决策和数据分析最重要的依据,报表往往通过多种方式展现给用户,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文件以二进制数据流的形式写到本地磁盘上。
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)
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)
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)
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 |
-
2016
- 2016-02-29 CN CN201610113061.8A patent/CN105786787B/zh active Active
Patent Citations (3)
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 |