CN111221730B - 服务于网络传媒行业的接口自动化测试断言方法 - Google Patents
服务于网络传媒行业的接口自动化测试断言方法 Download PDFInfo
- Publication number
- CN111221730B CN111221730B CN202010002140.8A CN202010002140A CN111221730B CN 111221730 B CN111221730 B CN 111221730B CN 202010002140 A CN202010002140 A CN 202010002140A CN 111221730 B CN111221730 B CN 111221730B
- Authority
- CN
- China
- Prior art keywords
- data
- same
- list
- different
- result
- 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
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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
本发明公开了服务于网络传媒行业的接口自动化测试断言方法,具体包括如下步骤:101)前置判断步骤、102)元素简单判断步骤、103)元素判断步骤、104)递归解析步骤、105)列表对比步骤、106)遍历判断步骤;本发明提供了一种在保证精准到字段断言的基础上,又可以保证数据的全量断言,可以大幅提高现有断言方法的可靠性、适用性和广泛性的服务于网络传媒行业的接口自动化测试断言方法。
Description
技术领域
本发明涉及自动化测试断言领域,更具体的说,它涉及服务于网络传媒行业的接口自动化测试断言方法。
背景技术
接口自动化测试断言,就是在接口自动化测试过程中,通过编程语言将目标系统接口返回的数据,用一定标准进行校验和断言,从而输出校验结果作为测试结果。它是接口自动化测试的一部分,也是决定测试用例是否通过的主要步骤。
网络传媒行业业务系统多是服务于直播、点播等相关业务,其系统接口的返回数据多为随机或定向推荐的影视数据、直播节目单以及运营系统上编排的点播栏目信息。其主要特点是:
1、数据顺序可变性:点播栏目信息等通过运营系统编排后,接口返回的不同栏目的排序或者同一栏目下影视剧资产的排序往往会发生变化。
2、数据量大:涉及节目单或者点播栏目类的数据量较大,如一个点播栏目下一般会有上百部资产,而每部资产会由几十个字段来描述。
3、数据结构复杂,嵌套多:直播节目单或点播类相关的接口返回数据的层次复杂,分类多,导致数据结构呈多层嵌套状。如直播节目单相关接口,数据返回包含多日数据,不同频道数据,同一频道里不同时间段的数据等;又如点播类接口返回一个大栏目下的多个不同子栏目及子栏目下的不同专题下的数据。
基于以上特点,网络传媒行业系统的接口自动化,在断言方面有一定的个性化需求。目前,市场上接口自动化测试产品提供的断言功能,主要使用的方法有:
1、用接口实际返回值和预期值进行比较,当两个数据所有元素的字段名称、字段值、字段顺序均相同(完全匹配)则判断匹配成功,否则判断匹配失败;
2、用接口返回值里的字段进行匹配,如接口返回三个字段:name,age,telephone,分别获取这三个字段,并将其值和预期值进行对比,一致则匹配成功,否则匹配失败。
基于上述方法存在以下缺点:
缺点一:接口返回的结构化对象数据里嵌套有结构化对象数组(以下简称数组),数组里的字段的顺序会变化,若使用完全匹配方法,尽管进行对比的实际返回和预期的两个数组的字段数量、字段名称和字段值均相同,但由于两个数组里字段的顺序不同,导致断言结果为不同。
缺点二:为了避免完全匹配导致的上述缺点一的问题,可以采用逐个获取单个字段来进行对比的方法。但由于上述网络传媒行业业务系统接口返回数据的特点3--数据结构复杂,嵌套多,在单个字段比较时需要准确地引用多层结构里的某一字段,在做断言时,容易由于人工失误导致输入某字段的引用关系错误,或者漏设置某一字段的断言,最终导致测试结果不准确。
缺点三:由于网络传媒行业业务系统接口返回值数据量大,在逐个获取单个字段进行对比的断言设置阶段,太耗时费力,且容易出错,不利于提升测试效率。
发明内容
本发明克服了现有技术的不足,提供了一种在保证精准到字段断言的基础上,又可以保证数据的全量断言,可以大幅提高现有断言方法的可靠性、适用性和广泛性的服务于网络传媒行业的接口自动化测试断言方法。
为了解决上述技术问题,本发明的技术方案如下:
服务于网络传媒行业的接口自动化测试断言方法,具体包括如下步骤:
101)前置判断步骤:判断输入数据A和数据B是否为同一对象或同一引用,若数据A和数据B是同一对象或同一引用,则输出结果为数据A和数据B相同;若数据A和数据B不是同一对象或同一引用,则判断数据A和数据B是否都为NULL/Empty,若数据A和数据B都为NULL/Empty,则输出结果为数据A和数据B相同;若数据A和数据B只有其中一个为NULL/Empty,则输出结果为数据A和数据B不同;若数据A和数据B都不为NULL/Empty,则继续数据A和数据B的字段数量是否相等,数据A和数据B的字段数量不相等,则输出结果为数据A和数据B不同;数据A和数据B的字段数量相等,则继续判断步骤102);
102)元素简单判断步骤:获取数据A中的第一个元素设为a,在数据B中查找是否存在同名的同级元素:若在数据B中不存在同名的同级元素,则输出结果为数据A和数据B不同,若数据B中存在同名的同级元素,则将数据B中同名的同级元素设为b;
103)元素判断步骤:根据步骤102)判断元素a和元素b的数据类型,如果元素a和元素b都为基本数据类型,则直接对比,若元素a和元素b不相等,则输出结果数据A和数据B不同,若元素a和元素b相等,则获取数据A的下一个元素,继续上述步骤102)进行元素简单判断;
如果元素a和元素b都为非数组的结构化对象类型:则令数据A=a,数据B=b,并进行步骤101)的前置判断;
如果元素a和元素b数据类型不相同,则输出结果数据A和数据B不同;
如果元素a和元素b数据类型相同,且都为数组类型,进入步骤104);
104)递归解析步骤:若元素a和元素b为数组类型数据,则将其子元素分开进行比对,并继续本步骤104)进行递归解析;
105)遍历判断步骤:遍历数据A中所有元素,进行以上步骤101)至步骤104)的对比,如果数据A中每个元素都在数据B中存在同级且判断相同的,则输出结果为数据A和数据B相同。
进一步的,步骤104)若元素a和元素b为数组类型数据,则将其子元素分开进行具体比对如如下:将其子元素分别存入列表list-a和列表list-b;
判断列表list-a和列表list-b的字段数量是否相同,如果列表list-a和列表list-b的字段数量不相同,则输出结果数据A和数据B不同;如果列表list-a和列表list-b的字段数量相同,则循环获取列表list-a和列表list-b的子项,分别设为a1、b1,并令A=a1,B=b1,进入步骤101)的前置判断;如果判断结果a1和b1相同,则继续列表list-a和列表list-b的下一个子项判断;如果列表list-a和列表list-b中有一项或以上不同,则输出结果数据A和数据B不同。
本发明相比现有技术优点在于:
本发明由于使用了递归解析方法,将数组分层数据解析后,再进行逐个比较,对比市场现有的断言方法,可以有效地解决网络传媒行业具有的数据顺序可变的接口返回值的断言问题。
本发明在保证精准到字段断言的基础上,又可以保证数据的全量断言,可以大幅提高现有断言方法的可靠性、适用性和广泛性。
本发明自动遍历并获取全部元素,对各元素进行解析,加入了多种场景的断言方法,取代了单个字段校验时需要人工介入的工作,大幅提高自动化测试断言的效率,保证了可靠性、便捷性。
附图说明
图1为本发明的流程图。
具体实施方式
下面结合附图和具体实施方式对本发明进一步说明。
实施例1:
如图1所示,服务于网络传媒行业的接口自动化测试断言方法,具体包括如下步骤:
101)前置判断步骤:判断输入数据A和数据B是否为同一对象或同一引用,若数据A和数据B是同一对象或同一引用,则输出结果为数据A和数据B相同;若数据A和数据B不是同一对象或同一引用,则判断数据A和数据B是否都为NULL/Empty,若数据A和数据B都为NULL/Empty,则输出结果为数据A和数据B相同;若数据A和数据B只有其中一个为NULL/Empty,则输出结果为数据A和数据B不同;若数据A和数据B都不为NULL/Empty,则继续数据A和数据B的字段数量是否相等,数据A和数据B的字段数量不相等,则输出结果为数据A和数据B不同;数据A和数据B的字段数量相等,则继续判断步骤102);
102)元素简单判断步骤:获取数据A中的第一个元素设为a,在数据B中查找是否存在同名的同级元素:若在数据B中不存在同名的同级元素,则输出结果为数据A和数据B不同,若数据B中存在同名的同级元素,则将数据B中同名的同级元素设为b;
103)元素判断步骤:根据步骤102)判断元素a和元素b的数据类型,如果元素a和元素b都为基本数据类型,则直接对比,若元素a和元素b不相等,则输出结果数据A和数据B不同,若元素a和元素b相等,则获取数据A的下一个元素,继续上述步骤102)进行元素简单判断;
如果元素a和元素b都为非数组的结构化对象类型:则令数据A=a,数据B=b,并进行步骤101)的前置判断;
如果元素a和元素b数据类型不相同,则输出结果数据A和数据B不同;
如果元素a和元素b数据类型相同,且都为数组类型,进入步骤104);
104)递归解析步骤:若元素a和元素b为数组类型数据,则将其子元素分别存入列表list-a和列表list-b,并则继续本步骤104)进行递归解析;元素a和元素b中的所有元素递归解析完成后,继续步骤105);
递归解析方法,将数组数据A和数据B进行分层数据解析后,再进行逐个比较,对比市场现有的断言方法,可以有效地解决网络传媒行业具有的数据顺序可变的接口返回值的断言问题。
105)列表对比步骤:判断列表list-a和列表list-b的字段数量是否相同,如果列表list-a和列表list-b的字段数量不相同,则输出结果数据A和数据B不同;如果列表list-a和列表list-b的字段数量相同,则循环获取列表list-a和列表list-b的子项,分别设为a1、b1,并令A=a1、B=b1,进入步骤101)的前置判断;如果判断结果a1和b1相同,则继续列表list-a和列表list-b的下一个子项判断;如果列表list-a和列表list-b中有一项或以上不同,则输出结果数据A和数据B不同;
106)遍历判断步骤:遍历数据A中所有元素,进行以上步骤101)至步骤105)的对比,如果数据A中每个元素都在数据B中存在同级且判断相同的,则输出结果为数据A和数据B相同。自动遍历并获取全部元素,对各元素进行解析,加入了多种场景的断言方法,取代了单个字段校验时需要人工介入的工作,大幅提高自动化测试断言的效率,保证了可靠性、便捷性。
实施例2:
服务于网络传媒行业的接口自动化测试断言方法,具体包括如下步骤:
101)前置判断步骤:判断输入数据A和数据B是否为同一对象或同一引用,结果为否。再判断数据A和数据B是否都为NULL/Empty,结果数据A和数据B都不为NULL/Empty。继续判断数据A和数据B的字段数量是否相等,数据A和数据B的字段数量相等,继续判断步骤102);
102)元素简单判断步骤:获取数据A中的第一个元素success设为a,在数据B中查找是否存在同名的同级元素:结果是数据B中存在同名的同级元素success,则将数据B中同名的同级元素success设为b;
103)元素判断步骤:根据步骤102)判断元素a和元素b的数据类型,元素a和元素b都为基本数据类型,直接对比,元素a和元素b相等,继续获取数据A的下一个元素code,设为a,继续上述步骤102)进行元素简单判断,其结果也是相等。
继续获取数据A的下一个元素data,设为a,继续上述步骤102)进行元素简单判断。元素a和元素b都为非数组的结构化对象类型:则令数据A=a,数据B=b,并进行步骤101)的前置判断;A和B的字段数量相同,继续102)判断,其结果为B中存在A的同名同级元素,继续103)判断,最后判断结果为相同。
继续获取数据A的下一个元素list,设为a,继续102)进行元素简单判断,B中也存在同名同级元素list,设为b,之后进行103)元素判断步骤,结果元素a和元素b为数组类型数据。
104)递归解析步骤:元素a和元素b为数组类型数据,将其子元素分别存入列表list-a和列表list-b;(若元素a和元素b的子元素也为数组类型数据,则继续本步骤104)进行递归解析,本例中没有嵌套的数组类型数据,其实质内容相同不再说明);元素a和元素b中的所有元素递归解析完成后,继续步骤105);
递归解析方法,将数组数据A和数据B进行分层数据解析后,再进行逐个比较,对比市场现有的断言方法,可以有效地解决网络传媒行业具有的数据顺序可变的接口返回值的断言问题。
105)列表对比步骤:判断列表list-a和列表list-b的字段数量是否相同,结果是相同,于是循环获取列表list-a和列表list-b的子项,分别设为a1、b1,并令A=a1、B=b1,进入步骤101)的前置判断;如果判断结果a1和b1相同,则继续列表list-a和列表list-b的下一个子项判断;如果列表list-a和列表list-b中有一项或以上不同,则输出结果数据A和数据B不同;
106)遍历判断步骤:遍历数据A中所有元素,进行以上步骤101)至步骤105)的对比,数据A中每个元素都在数据B中存在同级且判断相同,故输出结果为数据A和数据B相同。因此,自动遍历并获取全部元素,对各元素进行解析,加入了多种场景的断言方法,取代了单个字段校验时需要人工介入的工作,大幅提高自动化测试断言的效率,保证了可靠性、便捷性。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员,在不脱离本发明构思的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明保护范围内。
Claims (2)
1.服务于网络传媒行业的接口自动化测试断言方法,其特征在于,具体包括如下步骤:
101)前置判断步骤:判断输入数据A和数据B是否为同一对象或同一引用,若数据A和数据B是同一对象或同一引用,则输出结果为数据A和数据B相同;若数据A和数据B不是同一对象或同一引用,则判断数据A和数据B是否都为NULL/Empty,若数据A和数据B都为NULL/Empty,则输出结果为数据A和数据B相同;若数据A和数据B只有其中一个为NULL/Empty,则输出结果为数据A和数据B不同;若数据A和数据B都不为NULL/Empty,则继续数据A和数据B的字段数量是否相等,数据A和数据B的字段数量不相等,则输出结果为数据A和数据B不同;数据A和数据B的字段数量相等,则继续判断步骤102);
102)元素简单判断步骤:获取数据A中的第一个元素设为a,在数据B中查找是否存在同名的同级元素:若在数据B中不存在同名的同级元素,则输出结果为数据A和数据B不同,若数据B中存在同名的同级元素,则将数据B中同名的同级元素设为b;
103)元素判断步骤:根据步骤102)判断元素a和元素b的数据类型,如果元素a和元素b都为基本数据类型,则直接对比,若元素a和元素b不相等,则输出结果数据A和数据B不同,若元素a和元素b相等,则获取数据A的下一个元素,继续上述步骤102)进行元素简单判断;
如果元素a和元素b都为非数组的结构化对象类型:则令数据A=a,数据B=b,并进行步骤101)的前置判断;
如果元素a和元素b数据类型不相同,则输出结果数据A和数据B不同;
如果元素a和元素b数据类型相同,且都为数组类型,进入步骤104);
104)递归解析步骤:若元素a和元素b为数组类型数据,则将其子元素分开进行比对,并继续本步骤104)进行递归解析;
105)遍历判断步骤:遍历数据A中所有元素,进行以上步骤101)至步骤104)的对比,如果数据A中每个元素都在数据B中存在同级且判断相同的,则输出结果为数据A和数据B相同。
2.根据权利要求1所述的服务于网络传媒行业的接口自动化测试断言方法,其特征在于,步骤104)若元素a和元素b为数组类型数据,则将其子元素分开进行具体比对如如下:将其子元素分别存入列表list-a和列表list-b;
判断列表list-a和列表list-b的字段数量是否相同,如果列表list-a和列表list-b的字段数量不相同,则输出结果数据A和数据B不同;如果列表list-a和列表list-b的字段数量相同,则循环获取列表list-a和列表list-b的子项,分别设为a1、b1,并令A=a1,B=b1,进入步骤101)的前置判断;如果判断结果a1和b1相同,则继续列表list-a和列表list-b的下一个子项判断;如果列表list-a和列表list-b中有一项或以上不同,则输出结果数据A和数据B不同。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010002140.8A CN111221730B (zh) | 2020-01-02 | 2020-01-02 | 服务于网络传媒行业的接口自动化测试断言方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010002140.8A CN111221730B (zh) | 2020-01-02 | 2020-01-02 | 服务于网络传媒行业的接口自动化测试断言方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111221730A CN111221730A (zh) | 2020-06-02 |
CN111221730B true CN111221730B (zh) | 2023-05-26 |
Family
ID=70830988
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010002140.8A Active CN111221730B (zh) | 2020-01-02 | 2020-01-02 | 服务于网络传媒行业的接口自动化测试断言方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111221730B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5701408A (en) * | 1995-07-10 | 1997-12-23 | International Business Machines Corporation | Method for testing computer operating or application programming interfaces |
JP2011154568A (ja) * | 2010-01-27 | 2011-08-11 | Nec Corp | 情報処理装置、プログラム検証方法およびプログラム |
CN106649078A (zh) * | 2015-11-02 | 2017-05-10 | 阿里巴巴集团控股有限公司 | 应用接口测试方法及装置 |
CN108491319A (zh) * | 2018-02-11 | 2018-09-04 | 广州小百合信息技术有限公司 | Web自动化测试方法及基于该方法的系统 |
CN109189679A (zh) * | 2018-08-24 | 2019-01-11 | 北京京东尚科信息技术有限公司 | 接口测试方法及系统、电子设备、存储介质 |
CN110175119A (zh) * | 2019-05-17 | 2019-08-27 | 深圳前海微众银行股份有限公司 | 一种接口的测试方法、装置、计算设备和存储介质 |
-
2020
- 2020-01-02 CN CN202010002140.8A patent/CN111221730B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5701408A (en) * | 1995-07-10 | 1997-12-23 | International Business Machines Corporation | Method for testing computer operating or application programming interfaces |
JP2011154568A (ja) * | 2010-01-27 | 2011-08-11 | Nec Corp | 情報処理装置、プログラム検証方法およびプログラム |
CN106649078A (zh) * | 2015-11-02 | 2017-05-10 | 阿里巴巴集团控股有限公司 | 应用接口测试方法及装置 |
CN108491319A (zh) * | 2018-02-11 | 2018-09-04 | 广州小百合信息技术有限公司 | Web自动化测试方法及基于该方法的系统 |
CN109189679A (zh) * | 2018-08-24 | 2019-01-11 | 北京京东尚科信息技术有限公司 | 接口测试方法及系统、电子设备、存储介质 |
CN110175119A (zh) * | 2019-05-17 | 2019-08-27 | 深圳前海微众银行股份有限公司 | 一种接口的测试方法、装置、计算设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111221730A (zh) | 2020-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110019384B (zh) | 一种血缘数据的获取方法、提供血缘数据的方法及装置 | |
CN112488769B (zh) | 广告投放测试方法、装置、设备及存储介质 | |
CN111190807B (zh) | 一种埋点测试方法及设备 | |
CN112766247B (zh) | 一种题目处理方法、装置、电子设备及计算机存储介质 | |
CN113190220A (zh) | Json文件差异化对比方法及装置 | |
CN111125199B (zh) | 一种数据库访问方法、装置及电子设备 | |
CN112882713B (zh) | 一种日志解析的方法、装置、介质及计算机设备 | |
CN117725437B (zh) | 一种基于机器学习的数据精准匹配分析方法 | |
CN111221730B (zh) | 服务于网络传媒行业的接口自动化测试断言方法 | |
CN112383828A (zh) | 一种具有类脑特性的体验质量预测方法、设备及系统 | |
CN112559369A (zh) | 一种自动化测试方法、设备和存储介质 | |
CN110188033B (zh) | 数据检测装置、方法、计算机设备及计算机可读存储介质 | |
CN113128848B (zh) | 全业务指标的数据质量监控方法、电子设备及存储介质 | |
CN115587115A (zh) | 一种数据库查询优化方法及系统 | |
CN115981901A (zh) | 一种针对交换机自动化测试的故障定位方法、设备及介质 | |
CN111581942B (zh) | 一种数据文件的比对方法 | |
CN114564501A (zh) | 一种数据库数据存储、查询方法、装置、设备及介质 | |
CN115422180A (zh) | 数据校验方法及系统 | |
CN111459817B (zh) | 一种程序执行码的检验方法及装置 | |
CN109710651B (zh) | 数据类型识别方法及装置 | |
CN110688530B (zh) | 一种json数据的处理方法及装置 | |
CN114116729B (zh) | 一种测试数据的处理方法和设备 | |
CN117077598B (zh) | 一种基于Mini-batch梯度下降法的3D寄生参数的优化方法 | |
CN113820311B (zh) | 一种基于遥感组合反演公式的水质重金属监测方法及装置 | |
CN116860861B (zh) | 一种etl数据管理系统 |
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 |