CN109240933B - 一种数据表操作结果断言方法 - Google Patents
一种数据表操作结果断言方法 Download PDFInfo
- Publication number
- CN109240933B CN109240933B CN201811141797.1A CN201811141797A CN109240933B CN 109240933 B CN109240933 B CN 109240933B CN 201811141797 A CN201811141797 A CN 201811141797A CN 109240933 B CN109240933 B CN 109240933B
- Authority
- CN
- China
- Prior art keywords
- assertion
- data table
- record
- operation result
- algorithm
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种数据表操作结果断言方法。以减少测试人员的代码编写量以及提高代码可维护率。本公开提供一种数据表操作结果断言方法,包括以下步骤:根据应用场景,对数据库连接、数据表名和所需关注的数据表字段进行初始化配置;根据测试目选择相应的测试行为,其中,所述测试行为包括断言记录数或断言记录存在性、断言记录数增量、断言指定记录内容和断言新增记录内容;依据所选择的所述测试行为执行业务逻辑操作以触发数据表操作行为;以及调用相应的判断算法对业务逻辑操作结果进行判断。
Description
技术领域
本发明涉及计算机软件测试领域,尤其涉及一种数据表操作结果断言方法。
背景技术
软件测试作为软件工程中重要的一环,无论是在过去传统瀑布式开发模型中,还是在当今火爆的敏捷开发模型中,都扮演着不可或缺的作用。近来随着移动互联网行业的持续发展,CI/CD已经成为软件工程的标准配置,而CI/CD的落地则要求必须做到单元测试、集成和系统测试的自动化。
在测试自动化中,对程序或功能操作结果正确性的判断必须由测试程序来自动完成的,这需要各类断言库的支持。目前大多数断言库主要解决了程序或功能返回结果与预期结果对比判断的问题,尚未实现程序或功能对数据表操作结果正确的判断。实际测试中要达到此目标,需要由测试人员编写较多代码予以实现,处理过程较为复杂,一般包括:查询数据库,整理查询结果,利用断言库断言查询结果的正确性等步骤。该方式虽然能满足要求,但是存在如下缺点:测试人员需要编写大量的测试代码,过程繁杂,效率低下,实现步骤几乎千篇一律,形成大量重复代码,导致测试代码可维护性。
发明内容
为克服相关技术中存在的不足,本公开提供一种数据表操作结果断言方法。
本公开实施例的第一方面,提供一种数据表操作结果断言方法,包括以下步骤:
根据应用场景,对数据库连接、数据表名和所需关注的数据表字段进行初始化配置;
根据测试目选择相应的测试行为,其中,所述测试行为包括断言记录数或断言记录存在性、断言记录数增量、断言指定记录内容和断言新增记录内容;
依据所选择的所述测试行为执行业务逻辑操作以触发数据表操作行为;以及
调用相应的判断算法对业务逻辑操作结果进行判断。
可选地,选择的所述测试行为是断言记录数或记录存在性时,调用assertRowCount()判断算法对所述业务逻辑操作结果进行判断。
可选地,选择的所述测试行为是断言记录数增量时,调用init()算法重置断言对象,执行所述业务逻辑操作,调用assertRowCountDelta()判断算法对所述业务逻辑操作结果进行判断。
可选地,选择的所述测试行为是断言指定记录内容时,调用addExceptedValues()方法,以Object二维数组的方式传入预期值,其中,第一维是记录项,第二维是记录项所包含预期值,该预期值顺序与所述数据表字段顺序保持一致;调用init()算法和assertOneRecordById()判断算法对所述业务逻辑操作结果进行判断。
可选地,选择的所述测试行为是断言新增记录内容时,调用addExceptedValues()方法,以Object二维数组的方式传入预期值,其中,第一维是记录项,第二维是记录项所包含预期值,该预期值顺序与所述数据表字段顺序保持一致;调用init()算法和assertTheLastRecordById()判断算法对所述业务逻辑操作结果进行判断。
本发明的有益效果:
(1)以不超过3行代码完成一次数据表操作结果断言,简洁、高效;(2)实现了对记录数的断言;(3)实现了对记录数变化数量的断言;(4)实现了对记录存在性的断言;(5)实现了对记录内容的断言。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例示意图。
具体实施方式
在下面的详细描述中,提出了许多具体细节,以便于对本发明的全面理解。但是,对于本领域技术人员来说很明显的是,明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明的更好地理解。
下面将结合附图,对本发明实施例的技术方案进行描述。
如图1所示,本公开提供一种数据表操作结果断言方法,包括以下步骤:
根据应用场景,对数据库连接、数据表名和所需关注的数据表字段进行初始化配置;
根据测试目选择相应的测试行为,其中,所述测试行为包括断言记录数或断言记录存在性、断言记录数增量、断言指定记录内容和断言新增记录内容;
依据所选择的所述测试行为执行业务逻辑操作以触发数据表操作行为;以及
调用相应的判断算法对业务逻辑操作结果进行判断。
为能够从目标数据库查询获取数据记录的详细信息,采用Spring JdbcTemplate组件进行数据表的进行SELECT查询;为便捷地查询出数据表记录数,使用JdbcTestUtils库来查询记录数;为确保预期值输入具备良好的数据类型兼容性,使用Object二维数组来存放预期值;为将查询结果与预期值进行比较,使用assertj库来进行结果值断言。
当为了验证经过一系列业务逻辑操作后,数据表中记录数量是否与预期值相同,或者验证对数据记录执行删除业务逻辑操作后,被删除记录是否仍然存在于数据表中。选择的所述测试行为是断言记录数或记录存在性。首先执行业务逻辑操作,使用者编写测试代码执行需要测试的业务逻辑,触发数据表操作行为,然后调用assertRowCount()判断算法对所述业务逻辑操作结果进行判断,assertRowCount()判断算法需传入SQL的where语句,以及查询结果的预期值。
当为了验证经过一系列业务逻辑操作后,数据表中记录数的增减量是否与预期值相同。选择的所述测试行为是断言记录数增量。首先调用init()算法重置断言对象,然后执行业务逻辑操作,使用者编写测试代码执行需要测试的业务逻辑,触发数据表操作行为,接着调用assertRowCountDelta()判断算法对所述业务逻辑操作结果进行判断,assertRowCount()判断算法需传入SQL的where语句,以及查询结果的预期值。
当为了验证经过一系列业务逻辑操作后,指定记录的数据字段是否与预期值相同。选择的所述测试行为是断言指定记录内容。首先调用addExceptedValues()方法,以Object二维数组的方式传入预期值,其中,第一维是记录项,第二维是记录项所包含预期值,该预期值顺序与所述数据表字段顺序保持一致,然后执行业务逻辑操作,使用者编写测试代码执行需要测试的业务逻辑,触发数据表操作行为,接着调用init()算法和assertOneRecordById()判断算法对所述业务逻辑操作结果进行判断,assertOneRecordById()判断算法需传入待比较记录的ID值,ID值顺序应与传入预期值的顺序保持一致。
当为了验证向数据表新增了一条记录后,所新增的记录字段是否与预期值相同。选择的所述测试行为是断言新增记录内容。首先调用addExceptedValues()方法,以Object二维数组的方式传入预期值,其中,第一维是记录项,第二维是记录项所包含预期值,该预期值顺序与所述数据表字段顺序保持一致,然后执行业务逻辑操作,使用者编写测试代码执行需要测试的业务逻辑,触发数据表操作行为,接着调用init()算法和assertTheLastRecordById()判断算法对所述业务逻辑操作结果进行判断,该步骤无需传入任何参数。
本发明的有益效果:
(1)以不超过3行代码完成一次数据表操作结果断言,简洁、高效;(2)实现了对记录数的断言;(3)实现了对记录数变化数量的断言;(4)实现了对记录存在性的断言;(5)实现了对记录内容的断言。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。
Claims (1)
1.一种数据表操作结果断言方法,其特征在于,包括以下步骤:
根据应用场景,对数据库连接、数据表名和所需关注的数据表字段进行初始化配置;
根据测试目选择相应的测试行为,其中,所述测试行为包括断言记录数或断言记录存在性、断言记录数增量、断言指定记录内容和断言新增记录内容;
依据所选择的所述测试行为执行业务逻辑操作以触发数据表操作行为;以及
调用相应的判断算法对业务逻辑操作结果进行判断;
选择的所述测试行为是断言记录数或记录存在性时,调用assertRowCount()判断算法对所述业务逻辑操作结果进行判断;
选择的所述测试行为是断言记录数增量时,调用init()算法重置断言对象,执行所述业务逻辑操作,调用assertRowCountDelta()判断算法对所述业务逻辑操作结果进行判断;
选择的所述测试行为是断言指定记录内容时,调用addExceptedValues()算法,以Object二维数组的方式传入预期值,其中,第一维是记录项,第二维是记录项所包含预期值,该预期值顺序与所述数据表字段顺序保持一致;调用init()算法和assertOneRecordById()判断算法对所述业务逻辑操作结果进行判断;
选择的所述测试行为是断言新增记录内容时,调用addExceptedValues()算法,以Object二维数组的方式传入预期值,其中,第一维是记录项,第二维是记录项所包含预期值,该预期值顺序与所述数据表字段顺序保持一致;调用init()算法和assertTheLastRecordById()判断算法对所述业务逻辑操作结果进行判断。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811141797.1A CN109240933B (zh) | 2018-09-28 | 2018-09-28 | 一种数据表操作结果断言方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811141797.1A CN109240933B (zh) | 2018-09-28 | 2018-09-28 | 一种数据表操作结果断言方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109240933A CN109240933A (zh) | 2019-01-18 |
CN109240933B true CN109240933B (zh) | 2022-07-26 |
Family
ID=65054018
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811141797.1A Active CN109240933B (zh) | 2018-09-28 | 2018-09-28 | 一种数据表操作结果断言方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109240933B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101174240A (zh) * | 2006-11-03 | 2008-05-07 | 凌阳科技股份有限公司 | 一种软件测试管理方法及其系统 |
CN102841841A (zh) * | 2011-06-20 | 2012-12-26 | 阿里巴巴集团控股有限公司 | 一种测试中的断言处理方法及系统 |
CN107301214A (zh) * | 2017-06-09 | 2017-10-27 | 广州虎牙信息科技有限公司 | 在hive中数据迁移方法、装置及终端设备 |
CN107480046A (zh) * | 2017-07-12 | 2017-12-15 | 上海斐讯数据通信技术有限公司 | 一种自动化测试方法、装置及计算机处理设备 |
CN107678943A (zh) * | 2017-09-01 | 2018-02-09 | 千寻位置网络有限公司 | 抽象页面对象的页面自动化测试方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8762947B2 (en) * | 2010-04-01 | 2014-06-24 | Salesforce.Com, Inc. | System, method and computer program product for debugging an assertion |
US8874593B2 (en) * | 2011-07-01 | 2014-10-28 | Salesforce.Com, Inc. | Testing data silo |
CN104123397A (zh) * | 2014-08-15 | 2014-10-29 | 携程计算机技术(上海)有限公司 | Web页面的自动化测试装置及方法 |
CN105373469B (zh) * | 2014-08-25 | 2018-09-04 | 广东金赋科技股份有限公司 | 一种基于接口的软件自动化测试系统和方法 |
CN107273286B (zh) * | 2017-06-02 | 2020-10-27 | 携程计算机技术(上海)有限公司 | 针对任务应用的场景自动化测试平台及方法 |
CN107329894B (zh) * | 2017-06-21 | 2020-05-12 | 广州华多网络科技有限公司 | 应用程序系统测试方法、装置及电子设备 |
CN108415835B (zh) * | 2018-02-22 | 2019-07-30 | 北京百度网讯科技有限公司 | 分布式数据库测试方法、装置、设备及计算机可读介质 |
-
2018
- 2018-09-28 CN CN201811141797.1A patent/CN109240933B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101174240A (zh) * | 2006-11-03 | 2008-05-07 | 凌阳科技股份有限公司 | 一种软件测试管理方法及其系统 |
CN102841841A (zh) * | 2011-06-20 | 2012-12-26 | 阿里巴巴集团控股有限公司 | 一种测试中的断言处理方法及系统 |
CN107301214A (zh) * | 2017-06-09 | 2017-10-27 | 广州虎牙信息科技有限公司 | 在hive中数据迁移方法、装置及终端设备 |
CN107480046A (zh) * | 2017-07-12 | 2017-12-15 | 上海斐讯数据通信技术有限公司 | 一种自动化测试方法、装置及计算机处理设备 |
CN107678943A (zh) * | 2017-09-01 | 2018-02-09 | 千寻位置网络有限公司 | 抽象页面对象的页面自动化测试方法 |
Non-Patent Citations (1)
Title |
---|
轻量级Java EE框架下软件测试的应用研究;徐金宝等;《计算机技术与发展》;20090910(第09期);115-118 * |
Also Published As
Publication number | Publication date |
---|---|
CN109240933A (zh) | 2019-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112306855B (zh) | 接口自动化测试方法、装置、终端和存储介质 | |
CN108111364B (zh) | 一种业务系统的测试方法及装置 | |
CN111522728A (zh) | 自动化测试用例的生成方法、电子设备及可读存储介质 | |
CN110737594A (zh) | 自动生成测试用例的数据库标准符合性测试方法及装置 | |
CN111221721B (zh) | 一种单元测试案例自动化录制和执行方法及装置 | |
CN111309619A (zh) | 自动化生成测试用例的方法及装置 | |
CN114996127A (zh) | 固态硬盘固件模块智能化测试方法及系统 | |
CN109086198B (zh) | 数据库的测试方法、装置及存储介质 | |
CN110069414A (zh) | 回归测试方法及系统 | |
CN109240933B (zh) | 一种数据表操作结果断言方法 | |
CN115033434B (zh) | 一种内核性能理论值计算方法、装置及存储介质 | |
US10528691B1 (en) | Method and system for automated selection of a subset of plurality of validation tests | |
CN114880239B (zh) | 一种基于数据驱动的接口自动化测试框架及方法 | |
CN108572914B (zh) | 一种生成用于压力测试的日志的方法及装置 | |
CN100458800C (zh) | 电子电路设计的自动构建系统及自动构建方法 | |
CN115829925A (zh) | 外观缺陷检测方法、装置、计算机设备及存储介质 | |
CN108563578A (zh) | Sdk兼容性检测方法、装置、设备及可读存储介质 | |
CN114528214A (zh) | 单元测试方法和装置 | |
CN113806231A (zh) | 一种代码覆盖率分析方法、装置、设备和介质 | |
CN115437903A (zh) | 接口测试方法、装置、设备、存储介质及程序 | |
US10733345B1 (en) | Method and system for generating a validation test | |
WO2021247074A1 (en) | Resumable instruction generation | |
CN112035513A (zh) | Sql语句性能优化方法、装置、终端及存储介质 | |
CN116795723B (zh) | 链式单元测试处理方法、装置及计算机设备 | |
CN109673017B (zh) | Rru自动化测试方法和装置 |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200116 Address after: 610000 Chengdu City, Sichuan Province, China (Sichuan) Free Trade Pilot Area, No. 199 Tianfu Fourth Street, Chengdu High-tech Zone, 33 floors Applicant after: Homwee Technology Co.,Ltd. Address before: 621000 Mianyang province high tech Zone, East Hing Road, No. 35 cotton Applicant before: SICHUAN CHANGHONG ELECTRIC Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |